The core, solved
Orders with a state machine in the database, idempotency, payments captured on delivery, and brand isolation enforced by PostgreSQL itself.
Source code and documentation · multi-tenant
Source code and documentation of a delivery platform ready to adapt to your brand: backend, admin panel and an Android customer app. For delivery operators, franchises and entrepreneurs who want to launch their own service.
“Aurea” is the working name of the demo. The brand is not part of the sale: you bring your own.

The opportunity
Building the backend, tenant isolation, payments, an allergen-aware menu, an admin panel and a mobile app from scratch is a long project. This platform hands you that core already built and tested, so you can spend your effort on what is really yours: your brand, your restaurants and your operation.
Orders with a state machine in the database, idempotency, payments captured on delivery, and brand isolation enforced by PostgreSQL itself.
Each tenant configures its brand, languages, currency, taxes and fleet model without touching code. The demo tenant is only an example.
Every piece ships with its verified status and its documented gaps. What does not exist is stated, further down.
What's included
A monorepo with everything needed to run locally in about 30 minutes and keep developing.
NestJS, PostgreSQL with PostGIS and an outbox worker. Per-tenant OIDC login, with mandatory MFA for staff.
43 OpenAPI operationsOverview, orders, venues and menus with allergens, a brand editor with live WCAG contrast, settings and modules.
Next.jsLogin, restaurants, allergen-aware menu, cart, address, checkout and order tracking, in Spanish and English.
Kotlin · ComposePaymentIntent with manual capture on delivery, and payment sync in case the webhook is late. Tested against a mock of the SDK, not real Stripe. Stripe Connect is in the design, not implemented.
Test modeBrand, domains, currency, taxes, zones, modules and fleet model (employees or independent fleet) are data. Two demo tenants included.
RLS in PostgreSQLAPI tests validated against the contract, oasdiff against breaking changes, gitleaks, OSV and a licence policy on every change.
GitHub ActionsSession, catalogue, cart, checkout, payment and orders ported from Android, tested on Linux against real API responses. No screens.
68 testsBuyer guide, deployment guide, Google Play and App Store publishing (written, not executed) and Stripe test mode.
In SpanishWhat each piece is, and how far it goes, is in the “Scope” section. What is listed here works with demo data.
The app in action
Screenshots from a real walkthrough recorded on an Android emulator, with the demo tenant and a simulated payment provider. Scroll and the screen changes.

Login and sign-up against each brand's identity provider (OIDC). In the demo, against the development IdP.

A list with “open” or “closed” written out in text, never colour alone.

Categories and dishes, with allergens in words and a fixed notice that the declaration comes from the restaurant.

Sizes and extras with minimums and maximums. “Contains” and “May contain” are visible before adding.

One restaurant at a time, per-dish notes and a subtotal. Switching restaurant asks you to confirm emptying the cart.

Totals calculated by the API. Before paying, price, allergens and withdrawn dishes are reconciled.

In the demo, a simulated payment provider. Stripe PaymentSheet is integrated, not tested with a real card.
A walkthrough of the customer app: sign-in, restaurants, an allergen-aware menu, customising a dish, cart, total and simulated payment.
Promotional video with the app recorded on an Android emulator, with fictional data and simulated payment. Not a real phone. It loads only when you play it. (1.6 MB)
Differentiator
Allergens are not an optional field: they are part of the data model and of the interface.
The platform does not claim to comply with any regulation. It lets you configure these decisions; validating them with your advisers in each country where you operate is the operator's responsibility.
San Marzano tomato, fior di latte and basil
Contains: cereals containing gluten, milk
May contain: mustard
Allergen information is declared by the restaurant. If you have a severe allergy, check with the restaurant before ordering.
Architecture and quality
A modular monolith with tenant isolation in the database itself and a chain of checks on every change.
Transparency
We say it before you ask. This is what does not exist and what has not been tested.
The full, detailed list is in the documentation you receive (operator summary and known gaps).
Roadmap and additional development
These phases are pending. They are not part of the sale; they can be completed as additional development by agreement, with a separate quote.
The logic is already built and tested (68 tests). The interface and building and testing in Xcode are missing.
Logic done · interface pendingRestaurant app (Partner), with real-time order reception.
PendingRider app (Rider), with order assignment and tracking, for both fleet models.
PendingReal-time location, push, email and SMS.
PendingA complete admin panel and finance.
PendingSecurity, load testing, accessibility, observability and a complete demo.
PendingNo dates or prices here: they are agreed case by case. Nothing in this section is included in the sale.
Ask about additional developmentThe handover
The exact terms are settled in the sales contract: ownership and assignment of the code (including code produced with AI tools) and third-party licences. After that, the documented path is:
Frequently asked questions
No. There are no users, real orders or revenue. Everything was tested with demo data. It is the base for you to launch the service.
No. You need infrastructure, Stripe, Apple, Google and identity accounts, legal texts, and to test the apps with your own accounts. The buyer guide lists the steps.
The iOS logic is built and tested on Linux (68 tests), but there are no SwiftUI screens and it has not been compiled with Xcode. Completing it is additional development.
No. “Aurea” is the working name of the demo and is not part of the sale. You receive the source code and documentation; you choose, check and register your own brand.
Each tenant's brand (colours, name, typefaces) is edited in the panel, with WCAG contrast checked. The Android app does not read that brand yet: its colours, name and icon are changed by hand in the code.
The platform does not claim to comply with any regulation. It lets you configure the decisions, and the operator must validate them with their advisers. In Spain and the EU, the independent fleet model carries a high risk of being reclassified as employment and requires prior legal advice.
NestJS, PostgreSQL with PostGIS, Next.js, Kotlin with Jetpack Compose, Swift for the iOS logic and OpenAPI 3.1. All with permissive licences enforced in CI.
Yes, as additional development by agreement and with a separate quote: iOS, restaurant and rider apps, live tracking, finance and hardening.
Contact
Tell us who you are and what you are looking for. We will reply with the exact scope and next steps. No commitment.
Also by phone or WhatsApp: +34 614 622 559