Building something useful and sharing it with the world is one of the joys of being a developer. That’s why I’m thrilled to introduce Ashpez, an open-source, full-stack food delivery application I created using Next.js 14 and Payload CMS. It’s a responsive, feature-packed app that handles everything from ordering food to managing restaurants—all in one place. Whether you’re a developer looking for a practical project to explore, a business owner dreaming of a custom food delivery platform, or just a curious tinkerer, Ashpez is here for you to dive into. Oh, and here’s a cool bonus—it comes with a Figma file packed with a ready-to-go design
Food Delivery, Simplified
Ashpez is user-facing app where people can register, browse menus, order food, and track their deliveries. On the other, it’s a powerful admin panel where restaurant owners can manage their menus and orders, while admins oversee the whole system. It’s fully responsive, meaning it looks great on your phone or desktop, and it’s built with modern tools to keep things fast and flexible.
Why Next.js and Payload CMS?
I chose Next.js 14 (recently upgraded to 15) because it’s a powerhouse for full-stack development. The App Router, built-in i18n for multilingual support, and seamless server-side rendering made it perfect for a dynamic app like this. Plus, its ecosystem—think TanStack Query for data fetching, Jotai for state management, and ShadCN for gorgeous UI components—let me focus on features instead of reinventing the whee
For the backend, Payload CMS stole the show. It’s a flexible, TypeScript-friendly CMS that integrates beautifully with Next.js. Paired with MongoDB, it handles everything from user authentication to restaurant data with ease. No need for a bulky custom backend—Payload gives me an admin panel and API out of the box, which I’ve tailored to support multivendor food delivery.
What’s Under the Hood?
Here’s a taste of what Ashpez offers:
- Client Features: Sign up, log in, order food, track deliveries, and view your order history—all with real-time updates and a responsive design.
- Admin Panel: Manage restaurants, assign owners, tweak menus, and update order statuses. It supports roles like Admin (full control), Restaurant Owner (their own domain), and Guest (view-only).
- Tech Highlights: Next.js 14, Payload CMS, MongoDB, GraphQL, TanStack Query, Jotai, Zod with react-hook-form, and Tailwind via ShadCN. It’s SEO-friendly, accessible (A11Y), and multilingual-ready with next-intl.
- Multivendor Support: One platform, many restaurants—perfect for a scalable food delivery network.
Check it out on GitHub.
Try It Out Yourself
Want to see it in action? The live demo here, with the admin panel at /admin
. Use these guest accounts to poke around _(just don’t log into both client and admin in the same browser session—check the docs for why):
- Guest 1: guest1@gmail.ru / guest123
- Guest 2: guest2@gmail.ru / guest456
Let’s Cook Up Something Great
Head to the repo, try the demo, and let me know what you think. Got a feature in mind? Found a bug? Open an issue or send a PR—I’d love to see where we can take this together.
Bon appétit, and happy coding!
Top comments (0)