← Back to blog

Building FERM: A Laboratory for Fermentation

ProjectsFERM
FERMNext.jsProj

I've been working on FERM, a web application that treats fermentation tracking like the scientific process it is. The core concept is simple but deliberate: once you start a batch of kimchi, you can't go back and change the ingredients—you can only observe, learn, and adjust next time. This same philosophy of immutability shapes every aspect of the platform.

What Makes FERM Different

FERM isn't another recipe app chasing likes or trying to crown the "best ferment." Instead, it's designed as a research tool for anyone serious (or semi-serious) about fermentation. The platform includes batch tracking, detailed note-taking, photo documentation, and timeline views—everything you need to understand what went right or wrong with each ferment.

The social features reflect the collaborative nature of fermentation culture. Users can fork their own previous batches or experiments from others, creating variations and iterations. There's no numerical rating system because fermentation isn't about perfection. A "failed" batch that turned too sour or developed unexpected flavors might be exactly what someone else needs to see. We appreciate the process and the thinking behind each experiment, not just the successful outcomes.

The Technical Foundation

The application runs on a modern stack: Next.js 15, Tailwind CSS 4, Drizzle ORM with Neon for the database, Resend for transactional emails, and Uploadthing for image handling. The aesthetic deliberately evokes an old research laboratory—vintage, focused, and purposeful.

Building with immutability as a first principle proved to be the most challenging aspect of development. Every feature decision had to account for the fact that once data is recorded, it becomes part of the permanent record. No editing past batches, no deleting failed experiments. It's a constraint that goes against typical CRUD patterns, but I believe it will pay off in creating more honest, useful fermentation records.

Current Status and What's Next

FERM is live and ready for experimentation. Users can create public or private ferments, track multiple batches simultaneously, and explore what others are brewing, pickling, and culturing.

The platform is functional but evolving. I'm documenting the development process and looking at potential features that align with the laboratory research aesthetic and immutable design philosophy.

Try It Out

If you're interested in fermentation or just curious about building applications with unconventional constraints, I'd love your feedback. Create a batch, fork an experiment, or just explore how immutability changes the way we document creative processes. Visit [ferm.gfek.se](https://ferm.gfek.se) and let me know what you think.