For Your Next Side Project, Make a Browser Extension

rw-book-cover

Metadata

Highlights

  • I had a strict rule for this project: no operational stress. This meant no servers, and no data storage. The tool was shipped as a purely client-side browser extension, using Twitter’s backend for search. I didn’t have my own user accounts; the extension would just send requests from the user’s browser using their authentication credentials. (View Highlight)
  • Luckily, I didn’t have too many issues, perhaps because Twitter didn’t change its core features very much while I was working on the tool. I generally tried hard to minimize the coupling of my UI and Twitter’s DOM, and did slightly fancy things in some things in service of reliability—for example, my code for detecting color themes from the site uses ranges of colors rather than exact hex values, to be resilient in case Twitter were to slightly tweak their colors. (View Highlight)

title: “For Your Next Side Project, Make a Browser Extension” author: “geoffreylitt.com” url: ”https://www.geoffreylitt.com/2023/01/08/for-your-next-side-project-make-a-browser-extension.html?utm_source=geoffreylitt&utm_medium=email” date: 2023-12-19 source: reader tags: media/articles

For Your Next Side Project, Make a Browser Extension

rw-book-cover

Metadata

Highlights

  • I had a strict rule for this project: no operational stress. This meant no servers, and no data storage. The tool was shipped as a purely client-side browser extension, using Twitter’s backend for search. I didn’t have my own user accounts; the extension would just send requests from the user’s browser using their authentication credentials. (View Highlight)
  • Luckily, I didn’t have too many issues, perhaps because Twitter didn’t change its core features very much while I was working on the tool. I generally tried hard to minimize the coupling of my UI and Twitter’s DOM, and did slightly fancy things in some things in service of reliability—for example, my code for detecting color themes from the site uses ranges of colors rather than exact hex values, to be resilient in case Twitter were to slightly tweak their colors. (View Highlight)