Live data from Hacker News

For your next side project, make a browser extension

geoffreylitt.com

181–190 of 286 posts

Re: For your next side project, make a browser extension

#181
post #160

Earlier quoted context omitted.

Thanks, didn't know all that. I put in the "legalities" part mainly because I was thinking of a similar extension to defeat Elsevier & other vultures of scientific publication. Those people might be more litigious.

> defeat Elsevier & other vultures of scientific publication That’s a great way to have your life savings drained, or worse. Don’t do it if you live anywhere where you can be nabbed by Uncle Sam. See Aaron Swartz, Alexandra Elbakyan.

Right. Not planning to.

Re: For your next side project, make a browser extension

#182
> I had a strict rule for this project: no operational stress. This meant no servers, and no data storage.

Building for someone else's app/extension store always carries some risk, and therefore operational stress. In addition to the manifest v3 concerns others have raised, there are also the random takedown notices (that arrive with zero notice, and for zero reason). It may be easy to get started building an extension, but it's certainly not without operational risk.

Re: For your next side project, make a browser extension

#184

I was enthusiastic enough about extensions that I decided to publish a book about building them: https://www.buildingbrowserextensions.com/ Browser extensions are severely underrated as a platform because they aren't sexy. For all that mobile devices have given us, so much of our work continues to be done using a desktop browser. Enhancements such as augmenting websites with widgets, supplying contextual information,…

Mobile devices support extensions to some degree now, too! iOS Safari fully supports them, so that’s millions upon millions of potential users. Unfortunately, the UI for initiating them isn’t quite as nice as the desktop, which is a big reason why we haven’t implemented our extension for iOS yet. Once Apple figures out a better install and activation workflow, then we’ll probably do it.

For those who haven't tried, the UX for initiating an extension is something like this:

1. download extension

2. open Safari and tap on puzzle piece icon on the left side of the address bar (when visible)

3. tap the newly downloaded extension

4. when prompted, give permission for it to run

5. give permission for it to run always on the current site

6. give permission for it to run on every site

I appreciate the need to secure the user's permission. But this is a super clunky way to do it. This path is especially troublesome for users with disabilities (motor issues, working memory issues, or executive function deficits in particular). And given how much people with disabilities rely on extensions to make browsers/websites accessible, this is not a trivial impact.

I run a startup whose tools are used for accessibility reasons and we have streamlined our product and onboarding in many ways based on feedback from our users with disabilities. The process Apple uses is incredibly cumbersome, and I'm sure that many users with disabilities are lost along the way.

Re: For your next side project, make a browser extension

#185
post #104

I spent some time some productivity extensions, for gmail replies[0] and quick notetaking[1]. It was a lot of fun, but like other people have mentioned, porting to and working with manifest v3 is not as nice. I've noticed also that the way Google asks for permissions from the user is done in human-understandable, but worst-case language. For example, I think there was something where I wanted access to the current ta…

Have you tried using "activeTab" permission? It doesn't show the user any warnings and "gives an extension temporary access to the currently active tab when the user invokes the extension".

https://developer.chrome.com/docs/extensions/mv3/manifest/ac...

Re: For your next side project, make a browser extension

#186
post #28

No, don't. They're not that hard to code, but both Google and Mozilla keep making changes and then bitching at you through their app stores to change your thing. I recently dropped Chrome support on an add-on because 90% of the users were on Firefox. Since it blocked some ads, I figured Google would continue to whine, and it wasn't worth the hassle.

Interesting, based on browser share I'd have expected 90% to be on Chrome instead. What's the extension (or rather, why are most on Firefox)?

I've had an extension on Firefox and Chrome for almost a decade. Chrome is 90% of our users. It's possible that FF users are more likely to install, as mentioned above, but that doesn't outweigh the sheer number of people on Chrome.

With the manifest v3 update, we're changing our freemium structure, and updating our docs. But since FF hasn't figured out all of their manifest v3 stuff, we're not able to update for that 10% of users. It's going to be confusing because our marketing material will reference the new freemium model. But it's no contest as to what we should primarily reference, since there are so few people on FF by comparison to Chrome.

Re: For your next side project, make a browser extension

#187

I try to stay away from browser extensions as much as I can, it will only bloat my browser even further. Firefox + Tampermonkey should be enough in my case. Is there anything a browser extension can do that Tampermonkey cannot?

>Is there anything a browser extension can do that Tampermonkey cannot?

Blocking ads, translating web pages, bypassing paywalls, adding features to websites (like the YouTube extension), clearing trackers, I could go on and on.

Re: For your next side project, make a browser extension

#188

Earlier quoted context omitted.

If your intentions are to only use the extension for yourself, why not just side load it?

side loaded extensions are not persisted every restart of the browser.

Only for FF; Chrome allows side-loaded extensions to persist.

Re: For your next side project, make a browser extension

#189
post #104

I spent some time some productivity extensions, for gmail replies[0] and quick notetaking[1]. It was a lot of fun, but like other people have mentioned, porting to and working with manifest v3 is not as nice. I've noticed also that the way Google asks for permissions from the user is done in human-understandable, but worst-case language. For example, I think there was something where I wanted access to the current ta…

Somewhat tangentially, I've been pushing for a popup/overlay API that allows to specify the position and size, and doesn't require any origin permissions.

https://github.com/w3c/webextensions/issues/307

Re: For your next side project, make a browser extension

#190
post #161

My favorite chrome extension pattern is state stored in background page that's communicated with injected content scripts via redux + actions. You get a crazy powerful state management model that can allow traditional web pages to feel like SPA (your extension around it at least) It's a shame manifest v3 absolutely butchers this use case because there's no long term live-state management other than opening an extensi…

Look into chrome.storage.session, they created it explicitly to allow in-memory storage for those scenarios. Not as easy as just setting a property, but good enough.

I'd be curious about latency for frequent access and the 1MB quota. I think that may make it a similar solution on the surface, but fairly limited in usage.

I was powering a fairly large amount of state, to the point we had to diff state changes due to browser message costs. It was difficult to write, but was incredibly powerful.

Post reply on HN