Morningbrew
A specialty coffee journal, roaster map, and community brew database: built end-to-end as a solo designer-developer.
A specialty coffee journal, roaster map, and community brew database, built end-to-end as an independent product to turn personal brewing logs into shared community data.
Why I Built This
I design enterprise software for a living: route optimization, field service management, and systems where implementations span months and the buyer rarely touches the interface.
Morningbrew works the other way around. A user arrives, interacts with the tool, and determines within two minutes whether it fits their workflow: no sales calls, no demos, and no scheduled onboarding.
I wanted to take a product from initial architecture through production deployment. The build covers the database schema, authentication, custom data modeling, hosting infrastructure, and interface copy.
The project centers on specialty coffee. I brew pour over daily, track beans in a structured database, and wanted a direct way to share grind settings with friends who buy from the same roasters.
The Problem
Most coffee enthusiasts track their beans across disconnected tools: a Notion database for roasters and origins, a notes app for grind settings, pinned maps for cafes, and saved social posts for recommendations. The data remains fragmented, difficult to query, and locked to private accounts.
Existing utilities like Beanconqueror offer deep technical tracking, but focus on offline single-user logging without a public layer. They lack interactive maps, public user profiles, and shared recipe data for the same beans.
Morningbrew formalizes a common behavior: coffee enthusiasts maintaining personal databases and sharing grind settings with friends. The product turns that manual habit into an indexed public resource.
Design Decisions
Logs and recipes are separate entities
The data model separates private purchase data from public brewing variables. Coffee logs record purchase details: roaster, origin, purchase date, price, and package weight. Recipes record the extraction method: grinder model, grind setting, dose, water volume, pour duration, rating, flavor notes, and extraction scores.
This architecture enables community sharing while preserving privacy. Purchase history and pricing stay private to the individual account. Extraction recipes remain public, giving other brewers who buy the same beans a calibrated baseline.
Combining logs and recipes into a single object breaks community utility when users want to publish extraction recipes without disclosing pricing or order history.
The map is the growth mechanism
Coffee recommendations happen locally and organically: someone asks for recommended roasters in Berlin or specialty cafes in Hamburg. A single public map link provides the answer, showing curated roasters, visited cafes, and individual ratings without requiring an account to browse.
The map provides an immediate reason for users to share the link with other brewers.
Voice: specific and grounded
The interface copy speaks directly to daily coffee brewers. It references specific roasters like Coffee Collective, Friedhats, and La Cabra, and states concrete settings like “Comandante at 24 clicks” rather than generic descriptions. The audience weighs coffee to the tenth of a gram and needs a tool that reflects precise extraction parameters.
Design quality as a differentiator
Specialty coffee tools often prioritize data capture over visual clarity. Morningbrew uses a custom design system built with semantic tokens, full light and dark mode support, and structured typography. Every component is built directly without third-party component libraries to match the precision of the brewing routine.
Product Strategy
Morningbrew applies standard product frameworks to an independent build: the AARRR funnel, defined conversion KPIs, freemium unit economics, and a product-led growth model based on natural recommendation patterns.
Product-led growth by design
Growth loops are integrated into core product features.
The interactive map serves as the primary acquisition hook. When users share cafe and roaster recommendations, the destination is an open, browsable map that requires no registration.
Public indexes drive search discovery. The beans catalog, cafe directory, and roaster index are indexed for search engines. Queries for specific origins, processing methods, or local roasters land on structured directories before prompting for sign-up.
Brewing recipes drive user retention and discovery. Logging an extraction recipe publishes a baseline for the next person brewing the same coffee. Community brewing data accumulates directly from individual user logs.
Taste profiles create switching costs. As brewing logs accumulate, the platform tracks extraction preferences: origin varieties, grind ranges on specific hardware, and preferred roasters.
Growth framework
| Lever | Strategy | State |
|---|---|---|
| Acquisition | Public guides for search discovery, open maps and indexes as shareable entry points | Guide infrastructure deployed, public index pages live |
| Activation | Onboarding checklist, structured empty states, sensible profile defaults | Shipped. Time-to-first-log target: under 5 minutes |
| Retention | Taste pattern insights, recipe correlations, community extraction comparisons | Data layer deployed, visualization interface planned |
| Referral | Shareable map URLs, public profile pages, embeddable recipe cards | Public URLs live, contextual sharing prompts planned |
| Revenue | Freemium tier. Free: 20 logs, baseline metrics. Paid: unlimited logs, advanced analytics, data export | Specified, scheduled for 50+ active users |
What Is Built
The product is live at morningbrew.cc with an active user base.
Core Product: Coffee journal with structured extraction logging. Shared recipe database with tasting notes, flavor tags, and quality ratings. Public beans and cafe directory. Curated roaster index with photo galleries and community ratings. Interactive Mapbox map with marker clustering. User dashboard with profile management and guided onboarding.
Community and Moderation: Photo upload pipeline with user consent controls and administrative moderation. Community submission and review workflow. Content reporting tools.
Admin and Operations: Administrative dashboard for account management, content curation, waitlist approval, and invite distribution. Transactional email infrastructure with delivery logs and direct unsubscribe handling. Typed event analytics tracking over 40 distinct user actions.
| Roasters | 40+ |
| Coffees cataloged | 100+ |
| Cafes mapped | 12+ |
| Database migrations | 49 |
| Component files | 76 |
| Test files | 88 |
| Design system | Custom, zero UI library dependencies |
Stack: Next.js 16, TypeScript, Tailwind CSS 4, Supabase (Postgres, Auth, Storage, Row Level Security), Mapbox GL JS, Cloudflare Workers via OpenNextJS, Umami Cloud, Vitest, Playwright, GitHub Actions CI/CD.
What I Learned
Designing across enterprise and direct-to-consumer models sharpens product judgment. Enterprise platforms prioritize multi-stakeholder procurement and long adoption cycles. Direct-to-consumer products require immediate clarity and self-directed onboarding. Building both in parallel reinforces core usability principles.
Scope discipline matters regardless of project size. Schema architecture, competitive positioning, interface copy, information architecture, and analytics design require the same rigor on an independent project as on an enterprise engagement. The primary difference is sole accountability for every architectural trade-off.
Production deployment reveals requirements mockups never capture. Taking an interface from design files to a live environment requires handling database migrations, authentication edge cases, network latencies, responsive layouts, and background jobs. The substantive design work lives in those implementation details.
What Is Next
- Insights Interface: Visualizing extraction correlations, taste preferences, and community benchmarks from existing database models.
- Open Registration: Transitioning from waitlist access to open account creation.
- Brew Guides: Publishing 10 structured extraction guides using the completed content architecture.
- Expanded Community Features: Aggregating extraction data across multiple brewers and enabling taste-based bean discovery.
Independent designer and developer. Product strategy, data architecture, interface design, and front-end implementation.
Live at morningbrew.cc. Source on GitHub.