Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.

Carmy - Meal Planner, Recipe Manager & Nutrition Tracker

Carmy is a comprehensive meal planning application that helps users track their nutrition goals, manage recipes, and plan meals throughout the week.

Features

  • Daily Goals Tracking: Monitor nutritional goals including calories, protein, carbs, and fat
  • 7-Day Calendar: Weekly meal planning view anchored to the current week (Sunday start)
  • Recipe Management: Create, edit, view, and delete recipes with detailed ingredients
  • Nutrition Tracking: Track nutritional information for planned meals

Project Structure

├── backend/
│   ├── index.ts             # Main Hono server
│   ├── database/
│   │   ├── migrations.ts    # Database schema
│   │   └── queries.ts       # Database queries
│   └── routes/
│       ├── goals.ts         # Nutrition goals API
│       ├── meals.ts         # Meals API
│       └── recipes.ts       # Recipes API
├── frontend/
│   ├── index.html           # Main HTML template
│   ├── index.tsx            # React app entry point
│   ├── components/
│   │   ├── App.tsx          # Main app component with navigation
│   │   ├── DailyGoals.tsx   # Daily goals section
│   │   ├── WeeklyCalendar.tsx # 7-day calendar
│   │   ├── RecipeManager.tsx # Recipe management container
│   │   ├── RecipeList.tsx   # Recipe list view
│   │   ├── RecipeForm.tsx   # Recipe creation/editing form
│   │   └── RecipeView.tsx   # Recipe detail view
│   └── style.css            # Styles
└── shared/
    └── types.ts             # Shared TypeScript types

Recipe Management

Users can create and manage recipes with the following features:

  • Recipe Details: Name, serving size, and optional URL link
  • Ingredients: Each ingredient has:
    • Name (required)
    • Quantity (required, supports decimals)
    • Unit (required, e.g., "cups", "tablespoons", "grams")
    • Description (optional, e.g., "sifted", "chopped")

The app features a tabbed interface:

  • Dashboard: Daily nutrition goals and weekly meal calendar
  • Recipes: Recipe management (list, create, edit, view, delete)

Getting Started

The application runs on a Hono backend with a React frontend. The main entry point is backend/index.ts.