Image/item discovery and curation platform with behavioral intelligence, editorial magazine system, virtual try-on, and AI-powered item detection.
| Path | Role |
|---|---|
packages/web |
Next.js 16 app (main product UI) |
packages/shared |
Shared TypeScript types, Supabase queries, hooks |
packages/mobile |
Expo 54 React Native app |
packages/api-server |
Rust (Axum) — HTTP API, gRPC client to the AI service |
packages/ai-server |
Python (uv) — inference, metadata, gRPC server (legacy repo: decoded-ai) |
decoded-monorepo/
├── packages/
│ ├── web/ Next.js 16 — frontend app
│ ├── shared/ Shared types, hooks, Supabase queries
│ ├── mobile/ Expo 54 — React Native app
│ ├── api-server/ Rust/Axum — REST + gRPC client to AI
│ └── ai-server/ Python — inference, gRPC (uv)
├── turbo.json Turborepo task orchestration
├── bunfig.toml bun config
└── package.json Workspaces root (bun + thin wrappers for api/ai-server)
| Layer | Stack |
|---|---|
| Frontend | Next.js 16.2, React 19.2, TypeScript 5.9, Tailwind CSS 3.4, Zustand 5, React Query 5 |
| API | Rust, Axum 0.8, SeaORM 1.1, tokio, Meilisearch |
| AI / gRPC | Python 3.11+, uv, FastAPI, gRPC, Redis, ARQ (see packages/ai-server) |
| Database | Supabase (PostgreSQL), Cloudflare R2 (storage) |
| Mobile | Expo 54, React Native |
| Build | Turborepo, bun 1.3+, Node.js 22 LTS |
| Testing | Playwright (web), cargo test (api-server), pytest (ai-server) |
| Linting | ESLint 10, Prettier 3.6, cargo clippy / flake8 where configured |
git clone https://github.com/decodedcorp/decoded.git
cd decoded
bun installcp packages/web/.env.local.example packages/web/.env.local
# Edit .env.local with your Supabase credentials
bun run dev
# or: bun run dev:webcd packages/api-server
cp .env.example .env # or .env.dev — see package docs
cargo build
cargo runFrom repo root: bun run dev:api-server (uses cargo watch).
Legacy aliases: bun run dev:backend / bun run build:backend → same as *:api-server.
cd packages/ai-server
uv sync
uv run python -m src.mainFrom repo root: bun run dev:ai-server (requires uv on PATH).
Backend stack (Docker) — api + ai + Meilisearch + Redis + SearXNG in one Compose: packages/api-server/docker/stack/README.md, scripts/deploy-backend.sh.
AI package docs: packages/ai-server/README.md.
just 설치 후 모노레포 루트에서:
just local-deps # Docker 의존 서비스 기동 (Meilisearch, Redis 등)
just local-be # API + AI 서버 로컬 실행 (로그: .logs/local/api.log, ai.log)
just local-fe # Next.js 프론트엔드 실행
just local-deps-down # 의존 서비스 중지
just local-help # 온보딩 안내로컬 개발 순서:
just local-deps— Meilisearch 등 의존 서비스 Docker로 기동just local-be— API 서버(Rust) + AI 서버(Python) 로컬 프로세스로 실행- 별도 터미널에서
tail -f .logs/local/api.log/tail -f .logs/local/ai.log로 로그 확인 just local-fe— 프론트엔드 실행
Ctrl+C로 local-be 종료 시 API/AI 프로세스 자동 정리.
bun run dev # JS packages via Turborepo
bun run dev:api-server # Rust API (cargo watch)
bun run dev:ai-server # Python AI (uv)
bun run build # Production build (Turborepo)
bun run lint # Lint tasks where defined
bun run deploy:backend -- dev up --build # multi-container stack (see docker/stack README)Image discovery, editorial magazine, VTON, social actions, admin, design system v2.0, OAuth via Supabase.
Inference, link/image metadata, editorial pipelines, gRPC. uv Python project; not published to npm.
REST API, SeaORM, Meilisearch, R2, JWT, OpenAPI. Cargo workspace; package.json exists only for Turborepo scripts.
Types, Supabase client/queries, hooks for web and mobile.
Expo 54 React Native.
- CLAUDE.md — short map (rules, links)
- AGENT.md — Korean agent entry point
- docs/agent/ — route/API/hook/design-system inventories for agents
- docs/BACKEND-ONBOARDING.md — API server in the monorepo
- packages/api-server/docker/stack/README.md — Docker Compose stack (api, ai, meili, redis, searxng), deploy script
packages/api-server/— Rust API docs, ADRs,AGENTS.mdpackages/ai-server/README.md— AI service architecture and Docker
- Web:
packages/web/.env.local.example - API:
packages/api-server/.env.example(copy to.env/.env.devas needed) - AI:
packages/ai-server/.env.exampleand.dev.env(see.gitignorein that package)
Workflow .github/workflows/telegram-notify.yml posts to Telegram on push to main, new PRs (opened), new issues (opened), and manual workflow_dispatch. Add these repository secrets: TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID.
Private