VITE + React + Shuttle (Axum) + Supabase + AIGen Integrated Template
Akatsuki is a development template specialized for fastest 0β1 phase launch, enabling you to integrate AI features as naturally as breathing.
Important
For First-Time Users: This project has an important "constitution."
Before starting development, please read AGENT.md to understand the design philosophy and rules (especially workspace/ and library management).
- AIGen Built-in: API endpoints for image generation and Img2Img are integrated from the start.
- Monorepo Structure:
packages/are linked with NPM Workspaces. - Unified Environment:
.tool-versionsand.nvmrcensure consistent Node.js and Rust versions. - Supabase Integration: Utilizes a shared
Supabase-devenvironment for development teams.
| Domain | Technology |
|---|---|
| Frontend | VITE + React + Tailwind CSS |
| Backend | Shuttle + Axum (Rust) |
| Database | Supabase (PostgreSQL) |
| Repository | Monorepo (NPM Workspaces) |
Get started with development in just 3 steps!
Please install the following tools. See docs/setup.md for details.
- Node.js v20.x or higher (
nvm useorasdf install) - Rust & Cargo (
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh) - Shuttle CLI (
cargo install cargo-shuttle) - Supabase CLI (
npm install -g supabase) β Often forgotten!
The akatsuki CLI provides all development commands. Install via Homebrew (recommended) or Cargo:
# Homebrew (macOS/Linux)
brew tap ynishi/akatsuki
brew install akatsuki
# Or build from source
cargo install --path packages/akatsuki-cli# Clone with your app name (example: my-awesome-app)
git clone https://github.com/ynishi/akatsuki.git my-awesome-app
cd my-awesome-app
npm installCreate a new project on Supabase Dashboard.
- Click "New Project"
- Enter project information (Save the Database Password)
- Click "Create new project"
- Note down the following from Settings > API:
- Project URL (e.g.,
https://xxxxx.supabase.co) - Anon Key (the
anonpublickey)
- Project URL (e.g.,
See docs/setup.md for details.
Once you have your Supabase project ready, run:
akatsuki setup initThis single command handles everything! It automatically:
- π¦ Sets project name & description (updates package.json)
- π Cleans Git history (initializes as new repository)
- β Checks all prerequisites (Node.js, Rust, Shuttle, Supabase CLI)
- π Prompts for Supabase information (Project URL, Anon Key, Database Password)
- π Auto-generates
.envfiles for Frontend and Backend - π Links to your Supabase project
- ποΈ Applies database migrations (tables, RLS policies, triggers)
- β‘ Deploys Edge Functions (ai-chat, generate-image, etc.)
- π Shows Secrets configuration guide
- π Verifies Backend compilation
- π Creates initial Git commit
That's it! Start the development servers and check your app:
# Both servers at once
akatsuki dev # Frontend: http://localhost:5173, Backend: http://localhost:8000
# Or run them separately
akatsuki dev frontend # Frontend only
akatsuki dev backend # Backend onlyYou can check the setup status at any time with:
akatsuki setup checkFor manual setup or detailed instructions, refer to docs/setup.md.
akatsuki/
βββ README.md # (This file) Quick Start
βββ AGENT.md # [MUST READ] Design philosophy, architecture, all rules
βββ package.json # Monorepo root configuration
βββ .tool-versions # Version management for asdf/mise
βββ .nvmrc # Node.js version specification for nvm
βββ packages/
β βββ app-frontend/ # Frontend (VITE + React)
β β βββ src/
β β βββ .env # Frontend environment variables (not in Git)
β β βββ package.json
β βββ app-backend/ # Backend (Shuttle + Axum)
β βββ src/
β βββ .env # Backend environment variables (not in Git)
β βββ .env.example # Environment variables sample
β βββ Cargo.toml
βββ docs/ # Official documentation (guides, design docs, etc.)
βββ workspace/ # (Not in Git) Personal workspace
| File/Directory | Role |
|---|---|
README.md |
(This file) Quick Start |
AGENT.md |
[MUST READ] Design philosophy, architecture, all rules |
packages/app-frontend/ |
Vite + React frontend application |
packages/app-backend/ |
Shuttle + Axum backend API |
docs/ |
Team's official knowledge (guides, design docs) |
workspace/ |
(Not in Git) Personal workspace (notes, drafts) |
All development operations are managed through the akatsuki CLI:
akatsuki dev # Start both frontend & backend
akatsuki dev frontend # Frontend only (localhost:5173)
akatsuki dev backend # Backend only (localhost:8000)akatsuki build # Build both frontend & backend
akatsuki build frontend # Frontend production build
akatsuki build backend # Backend release buildakatsuki check # Run all type checks
akatsuki check frontend # Frontend (tsc --noEmit)
akatsuki check backend # Backend (cargo check)
akatsuki check admin-cli # Admin CLI (cargo check)akatsuki lint # Run all linters
akatsuki lint frontend # Frontend (eslint)
akatsuki lint backend # Backend (cargo clippy)
akatsuki lint admin-cli # Admin CLI (cargo clippy)
akatsuki lint --fix # Auto-fix issuesakatsuki fmt # Format all code
akatsuki fmt frontend # Frontend (prettier)
akatsuki fmt backend # Backend (cargo fmt)
akatsuki fmt admin-cli # Admin CLI (cargo fmt)akatsuki preflight # Run fmt + lint + check + test (all)
akatsuki preflight frontend
akatsuki preflight backend
akatsuki preflight admin-cliakatsuki test # Run all tests
akatsuki test frontend # Frontend tests (vitest)
akatsuki test backend # Backend tests (cargo test)akatsuki db push # Push migrations to remote database
akatsuki db migration-new <name> # Create new migration file
akatsuki db status # Show database status
akatsuki db link # Link to Supabase projectakatsuki function new <name> # Create new edge function
akatsuki function deploy [name] # Deploy edge function(s)akatsuki deploy # Deploy both frontend & backend
akatsuki deploy frontend # Frontend deployment (not configured yet)
akatsuki deploy backend # Backend deployment to Shuttleakatsuki design new <name> # Create new VibeCoding design document
akatsuki design list # List design examples
akatsuki design use # Copy example design
akatsuki setup check # Check setup status
# Preview server (still uses npm for workspace-specific commands)
npm run preview:frontend # Preview frontend buildMain endpoints provided by the Backend:
- GET
/health- Check server status
- POST
/api/aigen/text-to-image{ "prompt": "A beautiful sunset over the ocean", "model": "stable-diffusion-xl", "width": 1024, "height": 1024 }
- POST
/api/aigen/image-to-image{ "source_image_url": "https://example.com/image.png", "prompt": "Convert to anime style", "model": "stable-diffusion-xl", "strength": 0.75 }
See packages/app-backend/README.md for details.
- Design Philosophy and Rules: Please read
AGENT.md - Backend Details:
packages/app-backend/README.md - Deployment Guide:
docs/guide/(coming soon)
- Shared Supabase-dev Environment: Teams (1-2 members) share the development Supabase project
- Utilize workspace/: Save personal notes and drafts in
workspace/(not in Git) - Monorepo Management: Place shared components in
packages/
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
Start your best 0β1 development experience with Akatsuki! π