Jordi Enric

Software Engineer at Supabase logoSupabasebuilding Zenblog

Based in Mallorca, Spain.

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