Skip to content

mulkatz/mycel-web

Mycel Web

Mycel Web

Frontend for the Mycel knowledge engine. Chat UI, Admin Dashboard, and Landing Page built with React 19, TypeScript, and Tailwind CSS v4.

CI Version License: MIT Status: Active Development

Apps

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

Chat UI

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.

Admin Dashboard

For power users and administrators. Browse collected knowledge, manage domain schemas, configure system behavior, view generated documents, and monitor schema evolution.

Landing Page

Public-facing project page explaining what Mycel does and why it matters.

Tech Stack

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

Project Structure

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)

Getting Started

Prerequisites

  • Node.js 20+
  • pnpm 9+

Install & Build

pnpm install
pnpm build

Environment Setup

# 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

Development

# Start all apps
pnpm dev

# Start a specific app
pnpm dev --filter=chat
pnpm dev --filter=admin
pnpm dev --filter=landing

API Types

When 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-types

Running Tests

pnpm test            # Run tests
pnpm lint            # ESLint
pnpm typecheck       # TypeScript type checking

API Documentation

The backend API documentation is available at:

  • Interactive UI: {API_BASE_URL}/docs (Scalar API Reference)
  • Raw spec: {API_BASE_URL}/openapi.json

Deployment

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:landing

Architecture

See ADR-001: Frontend Architecture for the full architectural decision record covering the monorepo structure, tech stack choices, and deployment strategy.

Related

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

License

MIT License — see LICENSE for details.

About

Frontend for Mycel — Chat UI, Admin Dashboard, and Landing Page built with React 19, TypeScript, and Tailwind CSS v4

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages