A meditation on three dead side projects
If you're building a side project your motivation likely fits in the overlap of two broad categories: education (and, in general, practicing the joy of your craft) and money (clout, fame, etc). The story of these three dead projects is ultimately the story of how (not) to balance these motivations depending on your goals.
On the one hand, these projects have made me into a better developer, taught me a ton, and scratched a creative itch. On the other, I've collectively sunk hundreds or thousands of hours into these projects that ultimately have no users and zero revenue. Looking back, I feel that some of this time was wasted because of my hope that a better product would attract more users without any investment in marketing or consistent attempt to bring in these users.
Litchan
Description: Litchan started out as a Reddit clone using Phoenix LiveView. The goal was a minimalist UI like Hacker News but with live updating comments, typing indicators, presence, etc. You can also sync RSS feeds to any boards (subreddits) you create.
Tech
- Elixir/Phoenix LiveView
- PostgreSQL
- Docker / Google Cloud
- TailwindCSS
Status: Dead for the most part. Because it syncs RSS feeds, this is the only side project that I actively use. The core functionality is all there, but with no users I don't see reason to keep adding refinements or QoL improvements.
What I learned Phoenix LiveView is insanely cool. A project like litchan is not going to get off the ground without a sufficient nexus of active users, which would likely require sizeable marketing investment. Sometimes building a product that only you use is ok.
QuickQ
Description: QuickQ is a knowledge base / Q&A platform for organizations with deep slack integration. Answer questions on Slack then save it to QuickQ, allowing you to search and post the answer all through Slack.
Tech
- Ruby on Rails
- Redis / Sidekiq
- React / Semantic UI
- PostgresSQL
- Docker / Google Cloud
Status: Dead.. occasionally folks will find the app on the Slack directory and try it out, but nobody is on the paid plan.
What I learned: Building a slack app can be fun, especially when it's solving a problem you've seen in your own day job. Getting traction for a B2B product like this is notoriously difficult with giants like atlassian (and to a lesser extent stack overflow). I didn't really know where to start with that.
Metachat
Description A group chat web app utilizing e2e encryption and message tagging.
Tech
- React
- OpenPGPJS
- Elixir / Phoenix Websockets
- PostgreSQL
Status Dead, aside from the occassional sign up from users who want to test it out.
What I learned Learned a ton about public key encryption, web workers, and websockets. Metachat would never have really gained users without mobile apps and a ton of other features commonly found in the free apps like Messenger, WhatsApp, etc.
~
You'll notice a common theme amongst these three. I learned a lot across a broad variety of technologies and even built a project that I use on a daily basis. But as the project came to maturity, I began investing too much time into refining the project in hopes that it would attract users, while opting only to share the product through niche channels such as hacker news, product hunt, and reddit.
What I learned ultimately is that you should be honest with yourself about your goals for a side project. If your intention is to learn, then build something that will be interesting enough to you to keep your attention, and build until you feel comfortable with the tech you've chosen. If you're looking to make money and attract users, you can't just start building something and hope the users come to it. Your goal at that point should not be to learn Rust or whatever new tech interests you, it should be to recruit as many users as possible in the smallest development time possible so you can quickly begin iterating. In that sense learning new languages or technologies is antithetical to the goal, and you're simply fooling yourself into thinking it's time well spent.