A Next.js + Tailwind CSS workspace with a glassmorphic UI, an interactive canvas, and an AI chatbot sidebar. Built with TypeScript and the App Router.
- Glassmorphic UI: Clean, frosted-glass aesthetic using Tailwind.
- Interactive Canvas: Render and manage components with save/load.
- Saved Components: Persist, list, and reuse canvas items.
- AI Chat: Chatbot sidebar backed by an agent API route.
- Orchestration: Message bus and multi-agent coordination utilities.
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- AI SDKs:
ai,@ai-sdk/openai
dev: Start the Next.js dev serverbuild: Create a production buildstart: Run the production serverlint: Lint the project
npm installnpm run devThen open http://localhost:3000.
npm run build
npm startapp/
globals.css
layout.tsx
page.tsx
PreloadLibs.tsx
api/
agent/
route.ts
components/
Canvas.tsx
CanvasWithSavePanel.tsx
ChatbotSidebar.tsx
DynamicCanvasRenderer.tsx
SavedComponentsPanel.tsx
context/
CodeContext.tsx
SavedComponentContext.tsx
lib/
agents.ts
messageBus.ts
multiAgentOrchestrator.ts
useSavedComponents.ts
types/
babel-standalone.d.ts
- Canvas & Renderer:
Canvas.tsx,DynamicCanvasRenderer.tsxfor drawing and dynamic component rendering;CanvasWithSavePanel.tsxpairs the canvas with a save UI. - Saved Components:
SavedComponentsPanel.tsxanduseSavedComponents.tsmanage persistence and retrieval. - Chatbot:
ChatbotSidebar.tsxprovides the UI; the API lives inapp/api/agent/route.ts. - Orchestrator & Bus:
multiAgentOrchestrator.tsandmessageBus.tscoordinate agent workflows and events. - Contexts:
CodeContext.tsx,SavedComponentContext.tsxshare state across the app.
- Tailwind setup is defined in
tailwind.config.tsand global styles inapp/globals.css. - TypeScript config lives in
tsconfig.json; Next.js config innext.config.ts. - If you use the VS Code task, a background
devtask is available.
- Shared guidance lives in
lib/designLanguage.tsand is injected into coding agents. - Use the following classes for consistent visuals:
- Panels:
.panel-steel,.panel-steel-soft,.panel-frosted-glass - Buttons:
.button-steel - Inputs:
.input-steel - Layout:
w-full h-full,rounded-2xl/rounded-3xl, responsive spacing
- Panels:
- Theme awareness: the page sets
data-themetodayornight; global CSS adapts accordingly. - The canvas wraps generated components with
.panel-steel-softfor cohesion.
MIT