Purple Beets

Purple Beets: When Your Recipe App Has an Identity Crisis

Purple Beets·EP 3·3:52·April 15, 2026

Will built a recipe management app that can't decide if it's called Purple Beets or Eggplant, features neo-brutalist design, and has more documentation than some Fortune 500 companies.

0:00
3:52

What shipped

56 commits
0 PRs

Transcript

Host

Welcome to Code2Cast! I'm diving into Purple Beets, a recipe management app that's having the most delightful identity crisis I've ever seen.

Guest

Oh this is good. The package.json says 'eggplant', there's an eggplant-logo.jpg file, all the CSS variables are prefixed with '--eggplant-', but the project is called Purple Beets. Pick a vegetable, Will!

Host

And speaking of Will - this is a 56-commit solo project for him and Jess to plan meals together. But he's treating it like he's building the next Facebook. There's a file called FUNKY_THEME.md that's longer than most startup pitch decks.

Guest

Wait, FUNKY_THEME.md? Please tell me there's a detailed manifesto about typography choices.

Host

Oh, it's beautiful. Quote: 'BOLD & SQUARE - LOUD & ENERGETIC - VIBRANT COLORS - HARD SHADOWS - UPPERCASE.' He documented the entire evolution from 'soft and round' to 'neo-brutalist aesthetic' with 4px black borders on everything. This man wrote a thesis on making his recipe app look like a 90s Geocities site.

Guest

The commit history is pure gold though. Recent commits include 'Update landing page emoji for testing' and 'Update main tagline copy for A/B testing.' He's A/B testing emojis for his two-person household!

Host

But here's what's actually genius - the architecture is surprisingly sophisticated. Next.js 16, custom Remote Claude integration for AI recipe editing, household-based sharing, voting systems for meal planning, and future Kroger grocery automation. The Prisma schema has 340 lines defining everything from vote sessions to chat messages.

Guest

And there's a comment in the ratings table that says 'gettingSome Boolean? // Is he getting some later?' with a winking emoji. This man is documenting his love life in the database schema!

Host

The best part? He built a custom TypeScript client for streaming NDJSON responses from Claude API, complete with async generators and session management. For a recipe app! Most companies are still struggling with basic CRUD operations and Will's over here implementing distributed AI chat systems.

Guest

Let's talk about the design system. He has centralized design tokens, animation variants, and something called 'componentStyles.button.funky' in the codebase. The landing page uses Framer Motion animations with tactile button interactions that make shadows reduce on hover to simulate pressing.

Host

And somehow, despite all this beautiful over-engineering and identity confusion, I actually want to use this app. The feature set is legitimately compelling - AI recipe editing with natural language, swipe voting for weekly meal planning, automatic grocery list generation. It's like Tinder for meal planning but with the personality of a graphic design student's final project.

Guest

Will, if you're listening - please never change. Your UPPERCASE documentation, your eggplant-purple confusion, your 'gettingSome' boolean - it's all perfect. This is what happens when you give a good developer too much time and not enough oversight. Pure chaos, but the good kind.

Host

Purple Beets: where enterprise-grade architecture meets comic book aesthetics meets questionable database field names. It's running on port 4005, because apparently even the port number couldn't commit to a vegetable theme. Check it out, laugh at the documentation, but seriously - Will knows what he's doing.

Share