Full-stack monorepo template with Rust + Next.js, powered by the meta orchestrator.
Unified CLI for all development tasks, real-time log streaming, and parallel execution across a Rust API and React applications.
Docs · Examples · Install · What it does · Architecture
This repo is a template for new Rust + Next.js projects. rust-v2 is its successor; for new projects, use rust-v2 and refer to this repo only for the meta orchestrator (available as a standalone crate on crates.io).
A monorepo is a single repository containing multiple services and applications. This template brings together a Rust API server (using Axum), two Next.js applications (marketing and product), and a unified orchestration CLI (meta) that starts all of them in a Tmux session with color-coded, filterable logs.
| Orchestrator | Meta CLI: start all servers with meta dev, watch specific projects, build for production |
| API server | Axum (Rust) with Clean Architecture, 4-layer design, OpenAPI documentation |
| Frontend apps | Next.js 15 with React 19, Tailwind CSS, TypeScript—both marketing and application UIs |
| Package manager | Bun (JavaScript) and Cargo (Rust), with Turborepo build orchestration |
| Real-time logs | Color-coded, filterable output from all processes in one terminal window |
bun install # Install all dependencies
cargo install monorepo-meta # Install meta orchestrator, or: cargo binstall monorepo-meta
meta dev # Start all dev servers in TmuxFor existing projects, docs/meta/STANDALONE.md shows how to integrate meta independently.
| Start all servers | meta dev starts the API, marketing site, and product app in a Tmux session with monitored logs |
| Filter and watch logs | Real-time color-coded output from each process, filterable by project or severity; each process in its own Tmux pane |
| Build for production | meta build --prod compiles the Rust API and Next.js apps; zero-warning binaries, ~6 MB API binary and optimized frontend bundles |
| Run tests | meta test runs all test suites (Rust unit tests, TypeScript checks, Playwright E2E) |
| Parallel execution | Bacon watches Rust code and hot-reloads during development; Turborepo parallelizes TypeScript builds and linting |
rust-v1/
├── apps/
│ ├── api/ Rust API server (Axum, 4-layer Clean Architecture)
│ ├── web/ Next.js marketing site
│ └── app/ Next.js product application
├── packages/ Shared TypeScript and Rust libraries
│ ├── ui/ React component library (Tailwind)
│ ├── supabase/ Database client wrapper
│ ├── analytics/ PostHog integration
│ └── ...
├── tooling/
│ ├── meta/ Meta orchestrator (standalone crate: monorepo-meta)
│ ├── typescript/ Shared TypeScript config
│ └── e2e/ Playwright end-to-end tests
├── docs/ Project documentation
├── meta.toml Meta configuration
└── turbo.json Turborepo build config
Existing monorepo tools handle either the build graph or process orchestration, but not both with zero config:
- Turborepo orchestrates builds but leaves you to start dev servers manually or via shell scripts
- npm/yarn workspaces and Bun workspaces provide package resolution but no build or process management
- Tmux needs scripting to coordinate multi-process starts and logging
- Lerna focuses on publishing, not development
Meta combines build awareness (Turborepo for TypeScript, Bacon for Rust) with unified process orchestration (Tmux panes, real-time logs, unified CLI) in ~5 MB with zero configuration.
- Meta: early release. Core features are stable; watch mode for tests is planned for v0.3.0
- TypeScript apps only for dev workflows; Bun is used, but the template works with npm and yarn too
- Rust toolchain required for the API; if you only need the frontend,
meta dev -p web appruns only Next.js - Tmux or screen required for
meta dev(not available in headless environments; use individualbun devandcargo runinstead)
MIT