The Pillar
Week 1 was all about giving this thing a real start. I'd been thinking about it for a while if it is worth the time? Turns out, it didn't matter because I just like building software. Couldn't get the domain I wanted (domain squatters beat me by a few hours), but found a solid alternative. Set up professional email, claimed social handles, and picked green and orange (as every food/recipe app does) for branding.
These small wins made Bite feel less like a side project and more like a problem I am solving in my own world.
Building Production-Ready
Next.js 16 is the perfect tool to ride this storm out. Clerk handles auth because rolling your own in 2026 is masochism. Built a proper relational database with Drizzle ORM and Neon Postgres (chose them cos' they sound fun and is free).
Takes longer to set-up upfront, but I've learned that cutting corners always come back to haunt you later. Also threw in Gemini 1.5 Flash (why not?) for future AI features since I've been wanting to work with AI in a project.
Shipping
By the end of Week 1, Bite is live, actually deployed and working. We can sign up with email or Google, create recipes with structured ingredients and instructions, view collection, and click into full recipe details.
Protected routes, type-safe queries, the whole flow from auth to database just works. It's very minimal at its core, but it's real. The best part? Runs entirely free. The only cost I had to incur is a few bucks for getting the domain. Honestly, since I started coding 10 years ago, the barrier to shipping real products has never been this lower.

Bite database schema
Technical Decisions
Production database: Could've used JSON fields for ingredients/instructions, but built proper relational tables (recipes → ingredients, instructions, tags). More work now, zero regret later.
Clerk over rolling auth: Their free tier (10k users) is generous and the DX is awesome. It was such a breeze setting up the auth, and the best part — takes care of the entire auth and management lifecycle from session to security.
Gemini over GPT: Gemini 1.5 Flash is permanently free, and I think I trust Gemini with images more,and should have a solid accuracy for recipe parsing. So it was an easy choice.
Cloudflare DNS over Vercel*: Extra setup time, but free email forwarding and better long-term control (all-in-one dashboard).
Thoughts
Doing the boring stuff first takes time. I spent some time on DNS, env variables, and database schemas so that I'm not re-engineering things later, and not trying to end up with technical debt by Week 3.
Small gotchas like deployment 404'd due to landing page needed auth logic, but we keep rolling. Server Actions in Next.js are surprisingly good. No API routes and can be called from anywhere. Type-safe and way less boilerplate.
Week 1 felt slow with no flashy UI to show. But having auth, database, and deployment done means Week 2 is pure features, not infrastructure fights.
Also, documenting as I build helps. Writing this forced me to articulate some design decisions, and making decisions feel less random and more intentional.