A modern e-commerce application built with Rust backend and Next.js frontend, managed as a monorepo using Nx.
This project follows a clean architecture pattern with clear separation of concerns:
- Backend: Rust with Axum web framework, SQLite database, and async/await patterns
- Frontend: Next.js 15 with React 19, TypeScript, Tailwind CSS, and Radix UI components
- Monorepo: Managed with Nx for efficient development workflows
ec-rust-ts/
βββ app/
β βββ backend/ # Rust backend (Axum + SQLite)
β βββ frontend/ # Next.js frontend (React + TypeScript)
βββ package.json # Root package.json with workspace scripts
βββ nx.json # Nx configuration
- Node.js >= 18.0.0
- Rust (latest stable version)
- pnpm (recommended package manager)
- Clone the repository:
git clone <repository-url> cd ec-rust-ts
- Install dependencies:
pnpm install
pnpm dev
Frontend only:
pnpm frontend:dev
Backend only:
pnpm backend:dev
pnpm build
pnpm frontend:build pnpm backend:build
pnpm dev- Start all applications in development modepnpm build- Build all applicationspnpm test- Run all testspnpm lint- Lint all applications
pnpm frontend:dev- Start frontend development serverpnpm frontend:build- Build frontend for productionpnpm frontend:start- Start frontend production serverpnpm frontend:lint- Lint frontend code
pnpm backend:dev- Start backend development serverpnpm backend:build- Build backend for productionpnpm backend:test- Run backend testspnpm backend:watch- Watch mode for backend development
- Framework: Axum (Rust web framework)
- Database: SQLite with SQLx
- Runtime: Tokio (async runtime)
- Serialization: Serde
- Framework: Next.js 15 with App Router
- Runtime: React 19
- Styling: Tailwind CSS
- UI Components: Radix UI
- Icons: Lucide React
- Monorepo: Nx
- Package Manager: pnpm
- Linting: ESLint
- Type Checking: TypeScript
For detailed architecture information, see the backend documentation.
This project is licensed under the MIT License - see the LICENSE file for details.