Frontend for the Mycel knowledge engine. Chat UI, Admin Dashboard, and Landing Page built with React 19, TypeScript, and Tailwind CSS v4.
| App | Purpose | Design | Status |
|---|---|---|---|
| Chat | Conversational interface for knowledge contributors | Mobile-first, WhatsApp-like | 🔜 In development |
| Admin | Schema management, knowledge browsing, documents | Desktop-first, data-dense | ✅ Implemented |
| Landing | Project showcase and marketing | Responsive, mostly static | 📋 Planned |
The core product. Contributors talk to Mycel like they would to a curious friend. The system listens, asks follow-up questions, and structures knowledge in the background — the user never sees the complexity.
For power users and administrators. Browse collected knowledge, manage domain schemas, configure system behavior, view generated documents, and monitor schema evolution.
Public-facing project page explaining what Mycel does and why it matters.
| Layer | Technology |
|---|---|
| Build | Vite + Turborepo |
| UI | React 19 + TypeScript |
| Styling | Tailwind CSS v4 + shadcn/ui |
| Server State | TanStack Query v5 |
| Routing | TanStack Router v1 |
| API Client | openapi-typescript + openapi-fetch |
| Auth | Firebase Auth (GCP Identity Platform) |
| Hosting | Firebase Hosting |
| Monorepo | pnpm workspaces |
mycel-web/
├── apps/
│ ├── chat/ # Chat UI (Vite + React)
│ ├── admin/ # Admin Dashboard (Vite + React)
│ └── landing/ # Landing Page (Vite + React)
├── packages/
│ ├── api-client/ # Generated OpenAPI types + fetch wrapper
│ ├── auth/ # GCP Identity Platform SDK wrapper
│ └── ui/ # Shared design tokens (Tailwind v4 @theme), components (shadcn/ui)
├── docs/
│ ├── adr/ # Architecture Decision Records
│ └── plans/ # Implementation plans
├── turbo.json
├── pnpm-workspace.yaml
└── openapi.json # API spec (copied from backend)
- Node.js 20+
- pnpm 9+
pnpm install
pnpm build# Copy example env files for each app
cp apps/chat/.env.example apps/chat/.env
cp apps/admin/.env.example apps/admin/.env
# Edit .env files — set at minimum:
# VITE_API_BASE_URL=http://localhost:8080 (or your Cloud Run URL)
# VITE_FIREBASE_* variables# Start all apps
pnpm dev
# Start a specific app
pnpm dev --filter=chat
pnpm dev --filter=admin
pnpm dev --filter=landingWhen the backend OpenAPI spec changes:
# Copy the updated openapi.json from the backend repo
cp ../mycel/openapi.json ./openapi.json
# Regenerate TypeScript types
pnpm generate:api-typespnpm test # Run tests
pnpm lint # ESLint
pnpm typecheck # TypeScript type checkingThe backend API documentation is available at:
- Interactive UI:
{API_BASE_URL}/docs(Scalar API Reference) - Raw spec:
{API_BASE_URL}/openapi.json
Each app deploys independently to Firebase Hosting:
# Deploy a specific app
firebase deploy --only hosting:chat
firebase deploy --only hosting:admin
firebase deploy --only hosting:landingSee ADR-001: Frontend Architecture for the full architectural decision record covering the monorepo structure, tech stack choices, and deployment strategy.
- Mycel Backend — AI engine, API, infrastructure
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
MIT License — see LICENSE for details.