Starting Reread

Day one for a new side project

I jot down a lot of ideas. I write in iAWriter and and sync it with iCloud. The iCloud folder is a sprawl of folders upon folders with half baked, unvalidated product ideas. When I'm looking for a new side project, I pick ideas that excite me. Often ideas that are weird, and barely useful get picked but they spark joy in the builder in me.

Reread comes straight out of the Unicode runes in one of those note files. While the concept has evolved a bit, the core of it is simple: A place to re-read impactful ideas.

Have you seen how some articles keep resurfacing on social media or HackerNews? You may have a few articles you keep recommending friends. Upon rediscovering an article you read months ago, have you ever felt the impact it had the first time you read it, and how useful rereading it is to you even now? I've felt that many times, with articles like Willingness to look stupid, and In defense of Idleness. Reread is a place where storing, rediscovering and sharing such impactful ideas is easy.

Earlier attempts

This is not the first time I’m building reread. I got sick with covid a few months ago, and during my quarantine, I played around with Remix to build a quick MVP of reread. I enjoyed building with Remix. I then deployed it on fly.io which was also pretty impressive. However, I wasn’t happy with the end result. After the MVP, I realised I hadn’t built the schema too well in a hurry to 'just ship it'. Small issues like sharing links (I’ll explain more in another post soon) was clunky to code and permissions etc were a bit of a mess. None of those were unfixable problems, but I decided to start from scratch. Typical engineer urge, but side projects are supposed to be decadent, so I gave in.

The new stack

I want to run reread for a year to validate the idea. I want to be able to run it for a few more years economically if I’m the only person who likes using it. I need it to be cheap to run, while still being pretty low maintenance.

I have a decade or so worth of experience in JavaScript across the stack, but have recently been smitten with Go, so the backend will be Go. I would’ve loved to use Remix again because it’s the best fullstack framework for building apps, but it wont work with Go, unfortunately.

I don’t want to mess around too much with setting up front-end JavaScript, so will be using Next.js. I’m unsure if this will come back to bite me because it's not designed to be used like I intend to, but we'll see. If things get too complicated, I'll move back to CRA (Create React App) and spend a few years configuring it.

In terms of hosting, the backend will be hosted in a tiny box within Digital Ocean. The main reason I'm interested in Digital Ocean for this project is their managed Postgres support. I don't have the technical chops (or willingness) to operate Postgres yet, so for now I'll let someone who know it well to run it for me. It's the most expensive part of the hosting, at $15 per month, but for now it makes sense to me. I considered Fly.io again, but their Postgres is unmanaged and that scares me for now. I know, I know, I'll never learn until I try, but not yet.

For the front-end, I'll package everything up and push it to Netlify. It's really awesome and I use it for all of my front-end needs.

Onwards

That's where I am with reread right now. Lots of decisions were made, but the starts of projects are usually like this. Good news is, now that I have an idea about the stack, and where the deployment will be, I'll start creating the projects and work on making local development easy. Stay tuned for the next post, and hope you'll join me in my journey on creating full stack projects like reread publicly. Tweet at me at @aplaindev if you have questions / feedback / suggestions.