Jordi Enric

Frontend at Supabase logoSupabase

Back

April 1, 2024

Building zenblog

Building zenblog

I've been building zenblog for months now and it's pretty much 99% there.

I could've done it in way less time but I don't spend much time on it every day to be honest. Just 4/8 hours every week. Mostly on the weekends. Anyway here's a list of things I wish I had done differently.

Consider teams and collaboration

I started by creating a really simple platform where you could log in, create your blog, fetch content from your website, and that was it. I started using it and hated that I had to create several accounts. I ended up refactoring most of it. Keeping it really simple there

Just use supabase

I started using supabase and clerk and managing the integration was a waste of time to be honest. I "saved" some time because clerk had those cool react components but I ended up just writing some forms and migrating away from clerk. Also clerks pricing is too expensive compared to supabase auth.

Disclaimer: I work at supabase now, but all of this happened months before I joined.

If I were to start again I'd just use supabase auth.

Migrations suck

I'm a frontend dev so I'm not great with database stuff. I've had some problems with migrations that have taken days to fix. I should've used Prisma or Drizzle but I wanted to keep the stack as simple as possible.

So, with migrations I wish I had added more stuff to the stack, unlike with my previous point where I wish I hadn't used clerk.

Use a starter template

Supastarter and Makerkit come to mind and there are others (but these two seem to be the most mature ones) I'd have saved 60/100hours.

Share more WIP

Zenblog has 200+ people in the email list for early access and 80 github stars at the moment. I probably could've gotten 3 or 4 times that many people interested by just sharing more wip stuff on twitter. That's why I'm writing this post :)

Do less, but better

I worked on features like teams, collaboration, analytics before launching and having a single user. Eventually scrapped those but the time was (kinda) wasted.

Conclusion

I think the hardest part of software development is not the software development part, but doing the whole process and shipping something.

Simplification of what I mean:

Phase 1 of shipping

  • Deciding what you're actually gonna build

  • Deciding how you're gonna build it

  • Building it

Phase 2 of shipping

  • Sharing it

  • Getting feedback

  • Deciding what you do next

I'm pretty good at phase 1. But many times, instead of doing phase 2, I overengineered phase 1 until I burn out.

Have a good one.

Back to all posts