Discoverly is a swipe-first food discovery and ordering platform that helps users discover restaurants, explore meals, and complete purchases through a seamless mobile and web experience.
The platform combines a modern food discovery experience with Stellar-powered checkout, enabling fast, affordable, and transparent payment flows between customers and restaurants.
Discoverly is built around making food discovery more engaging by replacing traditional search-heavy restaurant browsing with an intuitive recommendation-driven experience.
Discoverly makes finding food simple and engaging through a swipe-first interface.
Users can:
- browse restaurants and meals,
- swipe through food recommendations,
- discover new restaurants,
- save preferences,
- interact with personalized suggestions,
- move directly from discovery to checkout.
The goal is to make choosing food feel more like discovery than searching.
The mobile app is the main customer-facing experience.
Users can:
- create and manage accounts,
- explore restaurants,
- view food listings,
- discover meals through swiping,
- manage preferences,
- place orders,
- complete payments,
- track purchase activity.
The mobile experience is optimized for quick interactions and everyday food discovery.
The web application provides restaurants with the tools they need to manage their presence on Discoverly.
Restaurants can use the dashboard for:
- restaurant onboarding,
- profile management,
- menu creation and updates,
- food item management,
- order management,
- customer activity insights,
- payment tracking,
- business operations.
The web dashboard acts as the operational layer of the platform, allowing restaurants to manage the content and experiences customers interact with.
Discoverly uses Stellar as the payment infrastructure for transactions between customers and restaurants.
The Stellar integration enables:
- fast payment settlement,
- low transaction costs,
- wallet-based checkout,
- transaction verification,
- transparent payment history.
Stellar allows Discoverly to build a modern payment experience while keeping blockchain complexity behind the scenes.
Discoverly is built using a full-stack TypeScript architecture.
| Area | Technology |
|---|---|
| Mobile Application | Expo + React Native + TypeScript |
| Web Dashboard | React + TypeScript |
| Backend API | Node.js + Express + TypeScript |
| Database | MongoDB + Mongoose |
| Blockchain | Stellar |
| File Storage | AWS S3 |
| Architecture | Mobile + Web + API + Blockchain Service |
discoverly/
│
├── backend/ # Express API implementation
│
├── mobile/ # Customer mobile application
│
├── web/ # Restaurant dashboard application
│
├── docs/
│ └── adr/ # Architecture decision records
│
└── legacy/
└── nest-backend/ # Archived legacy backend (read-only)
backend/
The backend provides the central API layer for Discoverly.
Responsibilities include:
- authentication,
- user management,
- restaurant management,
- food discovery APIs,
- menu data,
- order workflows,
- payment coordination,
- upload handling,
- Stellar transaction communication.
The backend uses Express, TypeScript, and MongoDB with Mongoose for data modeling.
mobile/
The mobile application provides the customer experience.
Built with Expo and React Native, it handles:
- food discovery,
- swipe interactions,
- restaurant browsing,
- meal selection,
- checkout,
- payment interactions,
- user preferences.
The mobile app is designed around fast and simple customer interactions.
web/
The web application provides restaurant-facing functionality.
The dashboard allows restaurants to manage their Discoverly presence and operations.
Planned capabilities include:
- restaurant onboarding,
- restaurant profile management,
- menu management,
- food item uploads,
- availability updates,
- order management,
- analytics,
- payment history.
The web app is focused on helping restaurants operate efficiently while providing accurate data for the customer discovery experience.
Discoverly uses Stellar as the payment layer powering checkout.
The blockchain integration handles:
- wallet operations,
- payment creation,
- transaction submission,
- transaction confirmation,
- payment tracking.
The Stellar layer is separated from the core application logic to keep the system modular and easier to maintain.
The backend includes a media upload service for restaurant and food assets.
Current endpoint:
POST /api/uploadRequest:
- Content Type:
multipart/form-data - File field:
file - Maximum size:
5MB
Storage:
AWS S3
Required configuration:
backend/.env.example
Install:
- Node.js
- npm
- Docker (optional)
- Expo tooling
- MongoDB (or Docker)
From the repository root:
npm run bootstrapcd backend
cp .env.example .env
npm run devcd web
cp .env.example .env
npm run devcd mobile
cp .env.example .env
npm run startFrom root:
docker-compose up --buildHealth check:
curl http://localhost:5000/api/healthMajor technical decisions are documented in:
docs/adr/
These cover:
- system architecture,
- technology choices,
- backend patterns,
- Stellar integration decisions,
- scalability considerations.
Discoverly aims to transform food discovery from a manual search experience into an engaging recommendation platform.
The roadmap focuses on:
- Swipe-based food discovery.
- Personalized recommendations.
- Restaurant digital presence.
- Restaurant management tools.
- Seamless checkout.
- Stellar-powered payments.
- A complete food discovery ecosystem.
The long-term vision is to create a platform where customers discover food naturally and restaurants build stronger digital relationships with their customers.
apps/
api/ # Express + TypeScript modular monolith (auth API)
web/ # Next.js + TypeScript web app (login / create account)
mobile/ # Expo + React Native + TypeScript foundation
packages/
shared/ # Shared types & validation schemas (zod)
stellar/ # Placeholder scaffold for future Stellar integration
.github/workflows/ # CI for each package
docs/ # Architecture, environment, testing, contributing
Each package's own README has package-specific details: apps/api, apps/web, apps/mobile.
- Node.js 20+
- npm 10+
- MongoDB (only required to run the API outside of tests — tests use an in-memory database)
From the repository root:
npm installThis installs dependencies for every workspace (apps/*, packages/*).
apps/api and apps/web depend on @discoverly/shared. Build it once
after installing (and whenever you change it):
npm run build -w @discoverly/sharedcp apps/api/.env.example apps/api/.env
npm run dev -w @discoverly/apiThe API listens on http://localhost:5000 by default and exposes:
POST /api/auth/registerPOST /api/auth/loginGET /api/auth/me(requiresAuthorization: Bearer <token>)GET /api/health
cp apps/web/.env.example apps/web/.env
npm run dev -w @discoverly/webVisit http://localhost:3000/login or http://localhost:3000/register.
cp apps/mobile/.env.example apps/mobile/.env
npm run start -w @discoverly/mobileThis launches Expo. The mobile app currently contains only the project foundation (no screens yet).
# everything
npm run test --workspaces --if-present
# individually
npm run test -w @discoverly/api
npm run test -w @discoverly/web
npm run test -w @discoverly/mobileSee docs/testing.md for details.
- Architecture — modular monolith, package boundaries, conventions
- Environment Setup — required environment variables
- Testing Guide — running and writing tests, CI expectations
- Contributor Guide — coding standards and workflow
License information will be added before release.