Feedback requested: One browser extension or two?
Background
About two years ago, @moecki and I collaborated on a browser extension for Steem curation. I always intended to make it open source, but I had a mental block against writing the README file, so I never did (until this weekend... more on that later). This extension colors posts on condenser web sites that have token burning associated with them, either from post promotion or from beneficiary rewards. I've been using it for the entire two years (and I assume @moecki has too), but it's been housed in a private repo. See these posts for background:
- 20220529 - Programming Diary #6: A barebones browser extension for Steem curation
- 20220530 - Programming Diary #7: Browser extension updates to activate when scrolling and show color gradients
- 20220815 - Upgrade Browser Extension for promoted/burnsteem Posts
Then, on Friday and Saturday, I collaborated with ChatGPT to throw together another browser extension. I posted about this new one on Saturday in Introducing "Steem Follower Checker": A new Open Source browser plugin and opened up the github repo in Steem Follower Checker.
As a result of that effort, I learned that ChatGPT is really good at writing README files, so I finally posted a README file for the original Steem Curation Extension and opened it up to the public. (Please try it out and let me know if you have any feedback!)
This morning, however, it occurred to me that these don't really need to be two separate extensions at all. It could be one extension with a popup module and a web "scraping" (content) module. So, I decided to see how hard that would be.
With guidance from ChatGPT, it turned out to be fairly simple. It only took about an hour, and here's what the combined plugin looks like in action:
Post promotion
Beneficiary rewards
What now?
So now, I'm faced with an unanticipated decision. Do I want to maintain two separate browser extensions or just one for both of these two purposes?
Options
Here are the options, as I see them:
- Maintain two independent browser extensions, one for each purpose.
- Provide one browser extension that accomplishes both purposes
- Provide three browser extensions, two that accomplish the independent purposes and one that combines them.
- Provide one browser extension that is configurable so that the user can choose whether to activate either or both modules.
I asked ChatGPT about how to implement option 4, and it seems like it should be achievable, so that's my current leading candidate. But, I want to see what the community thinks?
The main drawback I see to option 4 is that it requires the browser to load extraneous code if either module will not be used.
So, a question for anyone who might be interested in trying out one or both of these extensions, If you were going to run any of the above 4 browser extension choices, which one would you prefer?
ChatGPT analysis
After reading my draft blog post, here's what ChatGPT says:
Given the context and options presented in your blog post, option 4 seems like the best choice. Here’s why:
User Flexibility: A single, configurable browser extension allows users to customize their experience according to their needs. They can choose to activate either or both modules, providing a tailored experience without needing to install multiple extensions.
Ease of Maintenance: Maintaining one extension is generally simpler than maintaining multiple ones. Bug fixes, updates, and new features can be implemented in one codebase, reducing the workload and potential for discrepancies.
Resource Efficiency: For users, having one extension means less memory and processing usage compared to running multiple extensions. This is especially beneficial for those with limited system resources.
Unified User Experience: A combined extension offers a more seamless user experience. Users won't need to switch between extensions or manage multiple installations, making it more convenient and intuitive.
Community Feedback: Since you've already determined that option 4 is achievable and it's your leading candidate, it's likely a solid approach that balances functionality with user control. This option is also conducive to gathering consolidated feedback from the community, which can help in further improving the extension.
In summary, providing a single, configurable browser extension (option 4) is the most user-friendly and efficient approach, benefiting both the users and the developers.
With additional prompting, ChatGPT also suggested this:
Modular Extension System
Create a single base extension with optional downloadable modules or plugins for additional functionality. This way, users can install the base extension and then choose which modules they want to add. This approach combines the flexibility of option 4 with the modularity of separate extensions.
Pros:
- Users can customize their extension by adding only the modules they need.
- Easier to manage and update individual modules.
- Reduces the initial download size of the extension.
Cons:
- More complex to develop initially due to the need for a system to manage modules.
- Potential for compatibility issues between modules.
But I think that's more than I want to take on right now, so I might just keep that in mind for future enhancements.
Feedback requested
So, please let me know: (1.) Are you likely to consider using either/both of these browser extensions; and (2.) Which of the above 4 options would be your preference? Recapping, here are the options again:
- Maintain two independent browser extensions, one for each purpose.
- Provide one browser extension that accomplish both purposes
- Provide three browser extensions, two that accomplish the independent purposes and one that combines them.
- Provide one browser extension that is configurable so that the user can choose whether to activate either or both modules.
Thanks in advance for your feedback!
Addendum
BTW, if you're not voting for @moecki as a witness, please consider adding him. With his contributions to the ecosystem, including the above-referenced browser plugin, he should clearly be ranked above #58, particularly above all disabled witnesses:
Thank you for your time and attention.
As a general rule, I up-vote comments that demonstrate "proof of reading".
Steve Palmer is an IT professional with three decades of professional experience in data communications and information systems. He holds a bachelor's degree in mathematics, a master's degree in computer science, and a master's degree in information systems and technology management. He has been awarded 3 US patents.
Pixabay license, source
Reminder
Visit the /promoted page and #burnsteem25 to support the inflation-fighters who are helping to enable decentralized regulation of Steem token supply growth.
As a minimalist, I would prefer option 1 in my case.
I only have 2 extensions permanently active, Steem Keychain and the Curation Extension. I only load all other extensions when needed.
Maybe I don't understand the Follower Checker extension well enough yet, but I don't think it needs to be active all the time.
Quick question: When @moecki published his post about the Curation Extension, I installed it and still use it today. As far as I can see, it works perfectly. Moecki has v0.0.2 and you are now at v0.0.6 - is there a difference and should I better install your version?
Thanks for the feedback! I was not expecting that anyone would prefer option 1, but I do understand your reasoning. I'll definitely keep this in mind. This is actually pushing me a little bit towards option 3, so I can hopefully meet everyone's desires. As I think about it, I'd probably only have to maintain the separate manifest.json files - which don't change much, and I could simply maintain the javascript files in one location and put automation in place to keep them in sync. One challenge, though is that @moecki's suggestion from here would be more difficult, and I agree that it would be valuable.
There's probably not much of a difference. I think I was a little too eager with changing the version number as I continue learning my way around the git command line. Most of the "version" changes had to do with housekeeping because I confused myself by having two copies on my local hard drive. I think the only real differences are some added documentation and additional permissions to let it run on the condenser dev site from @the-gorilla.
I wish it was one extension (option 4).
Upvoted. Thank You for sending some of your rewards to @null. It will make Steem stronger.
Even though I haven't used this extension, I strongly believe that it has so much benefits that one should not ignore