A full-stack decentralized advertising platform built on the Stellar blockchain, enabling transparent and automated ad campaigns with on-chain payments settled in XLM or USDC.
# Start all services with Docker
docker compose up -d
# Access the application
Frontend: http://localhost:3000
Backend: http://localhost:3001# Prepare for deployment
./scripts/render-deploy.sh
# Follow the deployment guide
# See: RENDER_CHECKLIST.md- QUICKSTART.md — Get started in 5 minutes
- DOCKER_RUNNING.md — Local Docker setup
- DEVELOPMENT.md — Development workflow
- RENDER_CHECKLIST.md ⭐ Start here for deployment
- RENDER_QUICKSTART.md — 10-minute deployment guide
- RENDER_DEPLOYMENT.md — Comprehensive guide
- DEPLOYMENT_SUMMARY.md — All deployment options
- ARCHITECTURE.md — System architecture
- RENDER_ARCHITECTURE.md — Deployment architecture
- BACKEND_PRODUCTION_READINESS.md — Backend features
- TESTING_GUIDE.md — Complete testing guide
- PRODUCTION_CHECKLIST.md — Production readiness
- DOCUMENTATION_INDEX.md — All documentation organized by role and task
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Frontend │────────▶│ Backend │────────▶│ MongoDB │
│ (Next.js) │ API │ (NestJS) │ Data │ (Database) │
└─────────────┘ └──────┬──────┘ └─────────────┘
│
▼
┌─────────────┐
│ Stellar │
│ (Blockchain)│
└─────────────┘
- Create and manage ad campaigns
- On-chain escrow for campaign funds (Soroban smart contracts)
- Real-time analytics and reporting
- Wallet-based authentication (Freighter, LOBSTR, xBull, Rabet)
- Automated payments to publishers
- Monetize websites and apps
- Track earnings in real-time
- Easy SDK integration
- Direct payments to Stellar wallet
- Detailed analytics
- Secure JWT + Wallet authentication
- Stellar Soroban smart contracts for escrow
- Automated payment processing
- Real-time interaction tracking
- Modern, responsive UI (Celina design system)
- Docker containerization
- Cloud-ready deployment
- Framework: Next.js 15 (App Router)
- Styling: Tailwind CSS
- Wallet: Freighter, LOBSTR, xBull, Rabet (Stellar extensions)
- State: React Hooks
- HTTP: Fetch API
- Framework: NestJS
- Database: MongoDB with Mongoose
- Authentication: JWT + Stellar Wallet signature
- Blockchain: Stellar SDK (
@stellar/stellar-sdk) - Validation: class-validator
- Language: Rust
- Framework: Soroban (Stellar's smart contract platform)
- Network: Stellar Testnet / Mainnet
- Containerization: Docker
- Hosting: Render.com
- Database: MongoDB Atlas
- Blockchain: Stellar
adryx/
├── apps/
│ ├── backend/ # NestJS API
│ │ ├── src/
│ │ │ ├── modules/ # Feature modules
│ │ │ ├── schemas/ # MongoDB schemas
│ │ │ └── main.ts # Entry point
│ │ └── Dockerfile
│ ├── frontend/ # Next.js app
│ │ ├── src/
│ │ │ ├── app/ # App router pages
│ │ │ ├── components/
│ │ │ ├── hooks/
│ │ │ └── lib/
│ │ └── Dockerfile
│ └── contracts/ # Soroban smart contracts
├── packages/ # Shared SDKs
├── scripts/ # Helper scripts
├── docker-compose.yml # Local development
└── render.yaml # Render deployment
- Node.js 20+
- Docker & Docker Compose
- Stellar CLI (
stellar) for smart contracts - MongoDB Atlas account (for production)
- Render account (for hosting)
- Clone the repository
- Run
docker compose up -d - Access frontend at http://localhost:3000
- Follow RENDER_CHECKLIST.md
- Deploy takes ~40 minutes
- Free tier available ($0/month)
- Production tier: $23/month
NODE_ENV=production
MONGODB_URI=mongodb+srv://...
JWT_SECRET=<random-secret>
STELLAR_NETWORK=testnet
STELLAR_HORIZON_URL=https://horizon-testnet.stellar.org
STELLAR_CONTRACT_ID=<soroban-contract-id>
CORS_ORIGIN=<frontend-url>NEXT_PUBLIC_API_URL=<backend-url>/api/v1
NEXT_PUBLIC_STELLAR_NETWORK=testnet
NEXT_PUBLIC_STELLAR_HORIZON_URL=https://horizon-testnet.stellar.org
NEXT_PUBLIC_STELLAR_CONTRACT_ID=<soroban-contract-id>POST /api/v1/auth/register— Register userPOST /api/v1/auth/login— Login with emailPOST /api/v1/auth/wallet-login— Login with Stellar wallet
GET /api/v1/campaigns— List campaignsPOST /api/v1/campaigns— Create campaignGET /api/v1/campaigns/:id— Get campaignPATCH /api/v1/campaigns/:id— Update campaign
GET /api/v1/stellar/info— Get wallet infoPOST /api/v1/stellar/create-campaign— Create on-chain campaign escrowPOST /api/v1/stellar/pay-publisher— Process paymentPOST /api/v1/stellar/claim-earnings— Claim publisher earnings
GET /api/v1/analytics/advertiser/dashboard— Advertiser statsGET /api/v1/analytics/publisher/dashboard— Publisher stats
# Backend tests
cd apps/backend
pnpm test
# Frontend tests
cd apps/frontend
pnpm test
# Smart contract tests
stellar contract test- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
MIT License — see LICENSE file
- Documentation: Check the docs folder
- Issues: Create a GitHub issue
- Deployment Help: See RENDER_DEPLOYMENT.md
- Core platform functionality
- Stellar wallet integration (Freighter, LOBSTR, xBull, Rabet)
- Docker containerization
- Render deployment guides
- Soroban smart contract deployment
- Mobile SDK
- Advanced analytics
- Governance token
- Backend: Production Ready
- Frontend: Production Ready
- Smart Contracts: In development (Soroban/Stellar)
- Docker: Running
- Documentation: Complete
- Create campaigns with budget and targeting
- Automatic escrow via Soroban smart contract on Stellar
- Real-time budget tracking
- Performance analytics
- Automated payment distribution in XLM or USDC
- On-chain verification via Stellar transactions
- Failed payment retry mechanism
- Transaction history on Stellar Expert
- Simple SDK integration
- Multiple ad formats
- Real-time earnings tracking
- Instant withdrawals to any Stellar wallet
- JWT authentication
- Stellar wallet signature verification
- CORS protection
- Rate limiting
- Input validation
- All features included
- Services spin down after 15 min
- Perfect for testing
- Cost: $0/month
- No spin-down
- Better performance
- Custom domain support
- Cost: $23/month
- Live Demo: Coming soon
- Documentation: This repository
- Block Explorer: Stellar Expert
Built with Stellar, Next.js, and NestJS.