A fun web app for friends to share and discover restaurant recommendations. Never wonder where to eat next! Built with SolidJS, Vite, Tailwind CSS, Convex, Formisch, and Valibot.
- Node.js (Latest stable version recommended)
- pnpm (Package manager)
- Convex account and project (see Convex docs)
.env.localfile configured (see Environment Setup below)
Clone the repository
git clone git@github.com:krake747/next-bite.git
cd next-biteInstall dependencies
pnpm installCopy the example environment file and configure your Convex deployment:
cp .env.example .env.localEdit .env.local with your Convex deployment details (get these from your Convex dashboard):
# Used by Convex CLI for development/deployment
CONVEX_DEPLOYMENT=your-deployment-name
# Used by the application at runtime
VITE_CONVEX_URL=https://your-deployment.convex.cloud
VITE_CONVEX_SITE_URL=https://your-deployment.convex.siteSet the required Convex environment variables for authentication:
# Required for backend authentication (convex/auth.ts)
npx convex env set CONVEX_SITE_URL "https://your-deployment.convex.site"
# Required for Better Auth
npx convex env set BETTER_AUTH_SECRET "$(openssl rand -base64 32)"Create a Google Cloud project and enable the following APIs:
- Maps JavaScript API - Required for displaying maps
- Places API - Required for restaurant autocomplete
Create an API key and add it to your .env.local:
VITE_GOOGLE_MAPS_API_KEY=your-google-maps-api-keyNote: For Advanced Markers to work, you need a Map ID. For testing, you can use DEMO_MAP_ID.
For production, create a Map ID in Google Cloud Console (Maps Management).
The app includes a Luxembourg location bias for autocomplete suggestions.
Start Convex backend dev server (syncs to your cloud dev project)
pnpm run convex:devIn another terminal, start the frontend development server
pnpm devOpen http://localhost:5173 in your browser.
pnpm dev- Start frontend development serverpnpm convex:dev- Start local Convex dev server (syncs to cloud dev)pnpm convex:deploy- Deploy Convex to productionpnpm build- Build for productionpnpm preview- Preview production buildpnpm fmt- Format codepnpm lint- Lint code
This project is licensed under the MIT License - see the LICENSE file for details.
Feel free to open issues and pull requests to contribute to this project. Any contributions you make are greatly appreciated!
Made with ❤️ for food lovers who love trying new bites 🍝. Built with SolidJS.