Build in public: Tweton behind the scenes
What inspired my browser plugin and how I built it in public
Hey everyone! š
Hereās what could be interesting for you in this newsletter:
How Iām writing tweets? Without actively thinking or forcing myself to write, and how Iām writing many of them. What inspired Tweton?
How I built Tweton? (#buildinpublic, tech stack)
Building in public experience - would I do it again?
Following Louie Bacajās and Chris Wongās advice from Newsletter Launchpad, Iāll try to turn my newsletter publishing into a weekly habit.
If this is super annoying to you, feel free to unsubscribe.
But if you stick around, you wonāt regret it because Iāll follow a single rule:
Give.
It sounds cliche, but I feel itās hard to deliver.
I had to give a great deal of thought to this structure, so the whole issue doesnāt look like a big promotion for my browser extensions - let me know if I succeeded!
What youāll read here is not a re-formatted version of my blog posts or tweets.
I hope it brings something potentially valuable into your inbox.
How do I write tweets?
The idea for my first #buildinpublic project, Tweton, came because I was unsatisfied with the current solutions for a problem I often encounter when writing lots of tweets:
Writing tweets in bulk.
I write tweets in a way taught by ghostwriters on Twitter - seriously, look at a live session from ghostwriters such as OneJKMolina. Theyāre super-efficient at this.
Basically, they open a note-taking app, such as Notes, or take a notebook and write tweets as they scroll their timeline and see something that resonates with them.
They tweet what they are thinking while reading another tweet.
Donāt forget Twitter is saying the same thing in thousands of different ways.
The best time for me to come up with tweets is usually while:
reading a tweet
replying to a tweet
Itās pretty rare that out of nowhere, or while looking at a blank screen, I go:
āaha, this should be a tweetā.
I use my feed and my replies as my idea generator.
So first, I tried this workflow with the macOS Notes app.
I wrote every tweet inside the same note. I used dashes to visually separate tweets from each other. It wasnāt the best tool for this job because I couldnāt organize separate tweets, and opening a new note for each tweet seemed too much work.
I needed something inside Twitter so I didnāt have to leave the browser and the app.
This is how the idea of a browser plugin that embeds into Twitter was born.
How I built Tweton
I built the entire thing in public, from the very first screen:
Until the first few releases of the extension
Iām also compiling everything I learn into a series of blog posts.
If interested, you can follow the series here: https://akoskm.com/series/cross-browser-extension.
It starts with an introduction to the challenges of building cross-browser extensions in the current state of web browsers.
The second and the third posts are already fully-fledged browser extensions (thereās a GitHub repository at the end of each post).
In the fourth post in December, Iāll show you how to make a plugin similar to Tweton.
Letās talk tech!
The backend is Supabase. Iām using the free tier of it, which will be enough for some time, Iām sure.
On the front end, Iām using Vite, TypeScript, and React with TailwindCSS.
Iām a long-time Webpack user so doing this with Vite added even more complexity to the already complicated process of cross-browser extension building.
But to spare you from the details, I built a template repository that you can fork and start building your cross-browser plugin right now:
https://github.com/akoskm/vite-react-tailwindcss-browser-extension-simple
Building in public - should you do it?
Absolutely! Iāve got feature ideas and landing page suggestions from people who followed the journey of building this plugin.
The entire thing was built between October 12 and November 1.
The whole #buildinpublic experience was soo good that I had to do it again.
Next week I will share details about the other project I started in November, beginneritjobs.com - a job board for beginners in IT that I built with NextJS 13.
Please let me know if any of this was helpful to you.
You can always reply to these emails, and Iāll answer too!
Thank you for reading.
- Akos