Skip to content

Repository files navigation

RecipeAtlas

Vibe-coded recipe workspace for creating ingredients, drag-and-drop steps, countdown timers, and completion tracking in one place. Built with React, Bun, Convex, and Tailwind so recipes stay easy to manage while cooking without losing your flow.

Stack

  • web: React + Vite + Tailwind + Convex

Features

  • CRUD recipes
  • email/password login with Convex + Better Auth
  • private recipes scoped to the signed-in user, with invited editor access
  • public recipe sharing with read-only access for other viewers
  • multi-user recipe collaboration for ingredients, steps, timers, and completion progress
  • CRUD ingredients with per-ingredient unit conversion
  • CRUD ordered recipe steps
  • Drag-and-drop ordering for ingredients and steps
  • Recipe-specific countdown timers on steps
  • Step started and completed timestamps

Requirements

  • Bun
  • Convex account and deployment URL
  • Git Bash recommended for local dev on Windows

Local setup

  1. Clone the repository and move into the project root:
git clone <your-repo-url>
cd RecipeAtlas
  1. Install dependencies:
bun install
  1. Create a local web env file:
cp .env.example web/.env.local
  1. Set VITE_CONVEX_URL in web/.env.local to your Convex deployment URL. If you want to set it explicitly, also add VITE_CONVEX_SITE_URL with the matching .site URL.

  2. Start Convex dev once to configure or attach the project:

cd web
bunx convex dev
  1. Configure Better Auth for your Convex deployment:
cd web
npx convex env set BETTER_AUTH_SECRET <generate-a-random-secret>
npx convex env set SITE_URL http://localhost:5173

If you want other devices on your local network to use the app, set SITE_URL to the LAN address they will open and allow both origins during development:

cd web
npx convex env set SITE_URL http://192.168.1.15:5173
npx convex env set TRUSTED_ORIGINS http://localhost:5173,http://192.168.1.15:5173

Then have other devices open http://192.168.1.15:5173. Passkeys will not work over plain HTTP on a LAN IP, so use email/password for network testing unless you add HTTPS.

Run locally

Start Vite and Convex dev together with hot reload:

bun run dev

Or run them separately from the root:

bun run dev:web
bun run dev:convex

Local URLs:

  • web: http://localhost:5173
  • Convex dashboard/deployment: provided by Convex during setup

Useful commands

Install all dependencies:

bun install

Run all tests:

bun run test

Run frontend tests:

bun run test:web

Run frontend build:

cd web
bun run build

Run frontend preview:

cd web
bun run preview

Environment

Root env example:

VITE_CONVEX_URL=https://your-deployment.convex.cloud
VITE_CONVEX_SITE_URL=https://your-deployment.convex.site

Notes

  • Reset all steps also clears started/completed state and resets local countdown timers.
  • Recipe timers persist per recipe in local browser storage, so navigating away and back keeps the active countdown for that recipe.
  • Ingredient unit conversion is per ingredient row.
  • Signed-in users see their own private and public recipes. Signed-out users only see public recipes.

About

Vibe-coded recipe workspace for creating ingredients, drag-and-drop steps, countdown timers, and completion tracking in one place. Built with React, Bun, Fastify, PostgreSQL, and Tailwind so recipes stay easy to manage while cooking without losing your flow.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages