A "comprehensive" meal planning application built with React, TypeScript, and Tailwind CSS. This project helps users manage recipes, plan meals on a calendar, track nutritional intake for multiple participants, and generate shopping lists.
The entire application was vibe-coded using a mixture of Cursor, JetBrains Junie, and (regrettably) sometimes GitHub Copilot when I burned my other credits and was desperate. I mostly built this in order to supplement a personal training regimen without having to have yet another subscription for something like MyFitnessPal.
I do not recommend deploying this application in a public environment as zero code has been checked by a human. :)
- Recipe Management: Create, edit, and search recipes with detailed nutritional information, ratings, and favorites
- Weekly Planner: Plan meals for the week with batch cooking support and leftover tracking
- Multi-Week Cook Plan: Track batch cooking across weeks, including transferred leftovers and manual usage
- Monthly Overview: Calendar view of planned meals with daily nutritional totals and participant progress
- Shopping List: Automatically aggregated ingredients from the weekly plan with unit conversion
- Ingredient Management: Centralized ingredient definitions with aliases, store sections, container sizes, and unit conversions
- Participant Tracking: Manage multiple participants with custom nutritional goals and live progress
- Recipe Filtering: Advanced filtering by category, tag, rating, and cooking history
- Authentication & Authorization: JWT-based auth with role-based access control (Viewer / Editor / Admin)
- Admin Panel: User management, registration control, and application settings
- Dark Mode: Full dark mode support
- Unit System: Switch between metric, imperial, or both
├── prompt-pantry-app/ # React frontend + Express backend
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── contexts/ # React context providers
│ │ ├── hooks/ # Custom React hooks
│ │ ├── styles/ # Design tokens
│ │ └── utils/ # Helper functions
│ ├── server/ # Express route modules & data access
│ ├── serverFactory.js # Express app factory
│ └── test/ # Vitest test suite
├── schemas/ # JSON Schema definitions
├── data/ # Data storage (JSON files)
├── documentation/ # Documentation
- Frontend: React 18, TypeScript, Tailwind CSS
- Build Tool: Vite 7
- Backend: Express.js 5
- Validation: AJV (JSON Schema)
- Testing: Vitest, Testing Library
- Linting: ESLint 9 (flat config)
- Node.js (v18 or higher)
- npm
-
Navigate to the
prompt-pantry-appdirectory:cd prompt-pantry-app -
Install dependencies:
npm install
npm run devThis starts the Vite dev server on http://localhost:5173 and the Express API on http://localhost:3001.
npm test # run once and exit
npm run test-interactive # watch mode
npm run test:coverage # with coverage reportContributions are welcome. AI-assisted contributions are fine — please review and understand any generated code before submitting.
See documentation/development/contributing.md for the full contributing guide, including the PR process, version bumping, and the pre-push hook behavior.
See documentation/ for full docs, including architecture, API reference, component details, setup guides, and the project roadmap.
PromptPantry © 2026 by Kyle Salitrik is licensed under CC BY-NC-SA 4.0.
To view a copy of this license, visit https://creativecommons.org/licenses/by-nc-sa/4.0/
