MeadTools is an all-in-one mead, wine, and cider recipe-building calculator. It aims to have everything you need to build a recipe in one place, providing accurate estimates for volumes of fruit so you don't have to do a bunch of extra calculations.
- MeadTools
- Recipe Builder: Create, save, and manage your recipes.
- Extra Calculators: Various tools for calculations related to fermentation.
- User Accounts: Save recipes, manage preferences, and more.
- Public Recipe Sharing: Share recipes with other users.
- Wireless Hydrometer Integration: Connect Wireless Hydrometer devices to track fermentation data.
- API Access: API documentation is available at the /api route.
MeadTools runs locally using Next.js 16, PostgreSQL, and Docker for a consistent development environment.
The recommended setup uses a Dockerized Postgres database and a one-command bootstrap script so new developers can get up and running quickly.
- Node.js (latest LTS recommended)
- npm
- Docker Desktop (must be running)
This is the fastest and safest way to get MeadTools running locally.
git clone https://github.com/ljreaux/meadtools-nextjs-migration
cd meadtoolsnpm installnpm run dev:setupThis command will:
- Create .env.local from .env.example if it doesn’t exist
- Start PostgreSQL via Docker
- Wait for the database to become healthy
- Push the Prisma schema
- Seed the database with test data
- Optionally pull translations from i18nexus (if a key is present)
npm run dev- App: http://localhost:3000
- Prisma Studio opens automatically
If you prefer to run steps individually:
npm run db:up
npx prisma db push
ALLOW_DB_RESET=true npx prisma db seed
npm run devMeadTools uses PostgreSQL locally via Docker.
- The database is fully disposable
- No local PostgreSQL installation is required
- Schema is managed via prisma db push
- Seed data is deterministic and safe-guarded
To completely wipe and reseed the local database:
npm run db:resetWARNING: This deletes all local data.
The command is protected by an environment guard and will not run against production databases.
MeadTools uses i18nexus for translation management.
- Translations are loaded from local JSON files under locales/
- No API key is required to run the app
If you have access to i18nexus:
- Add your key to .env.local
I18NEXUS_API_KEY=your_key_here- Run:
npm run dev:i18nThis will:
- Pull translations
- Listen for updates
- Update local locale files automatically
- Next.js 16
- React 19
- TypeScript
- Prisma
- PostgreSQL (Dockerized for local development)
- NextAuth (Google auth optional; recommended disabled in dev)
- Custom Auth (access + refresh token strategy)
- ShadCN UI / Radix UI
- Tailwind CSS
- i18next + react-i18next
- i18nexus (optional for translation sync)
- MDX (for lightweight content pages like release notes)
Contributions are welcome.
- Fork the repository
- Create a feature branch
- Commit your changes
- Open a pull request
- Follow existing code style (default Prettier config)
- Document new features
- Test changes locally before submitting
This repo supports lightweight content pages written in MDX (Markdown + React components).
- MDX files are used for simple content like release notes.
- Currently, the only MDX page in the app is the 3.5 release notes, and it is English-only.
- MDX supports GitHub-flavored Markdown and can render React components as needed.
Notes:
- Existing routes will not be overwritten
- Be careful about file/route naming to avoid conflicts
This project is licensed under the MIT License.
Join the community on Discord to discuss features, get help, and contribute:
MeadTools is also live here.