Mark Henderson 9ddbe5b7d8 feat(sentry-as-product): auto-provision per-project + AI feedback loop
Implements all 4 stages from SENTRY_AS_PRODUCT.md:

Stage 1 — Auto-provision per-project Sentry:
- New module lib/integrations/sentry.ts with idempotent
  ensureSentryProject(): creates Sentry project under shared
  vibnai org, fetches DSN, persists to fs_projects.data.sentry.
- Wired into POST /api/projects/create (provision early so DSN is
  ready before first deploy) and into applyEnvsAndDeploy in MCP
  (lazy retry + env var injection on every apps.create).
- applySentryEnvToCoolifyApp upserts NEXT_PUBLIC_SENTRY_DSN +
  SENTRY_AUTH_TOKEN onto the Coolify app, so the very first build
  inlines the DSN into the client bundle and uploads source maps.

Stage 2 — Bake into scaffolds:
- New module lib/scaffold/sentry-snippets.ts exposes canonical
  Next.js + Vite+React snippets the AI copies verbatim (keeps
  outputs deterministic across chats).
- AI system prompt updated: explicit instructions to wire Sentry
  on every new app, env vars are guaranteed available, project
  Sentry slug comes from projects_get.
- projects.get MCP response now includes `sentry: {slug, dsn,
  provisionedAt}` so the AI can substitute the slug into
  withSentryConfig({ project: <slug> }).

Stage 3 — Expose error feed to the AI:
- Three new MCP tools registered:
    project_recent_errors  — list unresolved issues
    project_error_detail   — stack trace + breadcrumbs + replay url
    project_error_resolve  — mark resolved after a verified fix
- Tenant-safe: each tool re-checks projectId belongs to caller's
  workspace before talking to Sentry.

Stage 4 — Auto-surface at chat-turn start:
- chat/route.ts pulls listRecentSentryIssues for the active
  project (last 6h, count ≥ 2 to skip noise) and appends a
  [PROJECT HEALTH] block to the system prompt. AI decides
  whether to surface a one-liner; if user's message is about a
  broken thing, AI prefers Sentry stack trace over guessing.

End state: a Vibn user's deployed app crashes for a real user →
Sentry captures with source-mapped stack trace + Session Replay →
next AI chat turn the AI knows about it and can offer a fix
without the user pasting the error.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-01 12:52:17 -07:00
2026-02-15 19:25:52 -08:00
2026-02-15 19:25:52 -08:00
2026-02-15 19:25:52 -08:00
2026-02-15 19:25:52 -08:00
2026-02-15 19:25:52 -08:00

VIBN Frontend

AI-Powered Development Platform - Track, manage, and deploy your AI-coded projects with ease.

🎨 Features

Built with Plane.so design patterns:

  • Resizable Sidebar - Collapsible sidebar with peek-on-hover
  • Dashboard Layout - Clean, modern interface following Plane's style
  • Overview Page - Project stats, recent activity, and getting started guide
  • Sessions - Track AI coding sessions with conversation history
  • Features - Plan and track product features
  • API Map - Auto-generated API endpoint documentation
  • Architecture - Living architecture docs and ADRs (Architectural Decision Records)
  • Analytics - Cost analysis, token usage, and performance metrics
  • Porter Integration - One-click deployment for AI-coded tools

🛠️ Tech Stack

  • Framework: Next.js 15 (App Router)
  • Language: TypeScript
  • Styling: Tailwind CSS
  • UI Components: shadcn/ui
  • Icons: Lucide React
  • Notifications: Sonner

🚀 Getting Started

Quick Start

# 1. Install dependencies
npm install

# 2. Setup environment variables (see SETUP.md for details)
cp .env.template .env.local
# Edit .env.local with your Firebase credentials

# 3. Start development server
npm run dev

Open http://localhost:3000

📖 For detailed setup instructions, see SETUP.md

Build

npm run build
npm start

📁 Project Structure

vibn-frontend/
├── app/
│   ├── (dashboard)/
│   │   └── [projectId]/
│   │       ├── layout.tsx          # Main dashboard layout
│   │       ├── overview/page.tsx   # Dashboard home
│   │       ├── sessions/page.tsx   # AI coding sessions
│   │       ├── features/page.tsx   # Feature planning
│   │       ├── api-map/page.tsx    # API documentation
│   │       ├── architecture/       # Architecture docs
│   │       └── analytics/page.tsx  # Cost & metrics
│   ├── layout.tsx                  # Root layout
│   └── page.tsx                    # Home redirect
├── components/
│   ├── sidebar/
│   │   ├── resizable-sidebar.tsx   # Resizable sidebar wrapper
│   │   └── project-sidebar.tsx     # Sidebar content
│   └── ui/                         # shadcn/ui components
└── lib/
    └── utils.ts                    # Utility functions

🎯 Routes

  • /[projectId]/overview - Project dashboard
  • /[projectId]/sessions - AI coding sessions
  • /[projectId]/features - Feature planning
  • /[projectId]/api-map - API endpoint map
  • /[projectId]/architecture - Architecture documentation
  • /[projectId]/analytics - Cost and metrics

📊 Components

Resizable Sidebar

Based on Plane's sidebar pattern:

  • Drag-to-resize (200px - 400px)
  • Collapse/expand button
  • Peek-on-hover when collapsed
  • Smooth transitions

Dashboard Pages

All pages follow consistent patterns:

  • Header with title and actions
  • Content area with cards
  • Responsive layout
  • Empty states with CTAs

🔄 Next Steps

  1. Connect to Database - Wire up PostgreSQL data
  2. Build API Routes - Create Next.js API routes for data fetching
  3. Real-time Updates - Add live session tracking
  4. Porter Integration - Implement deployment workflows
  5. Authentication - Add user auth and project management

🎨 Design System

Following Plane.so patterns:

  • Clean, minimal interface
  • Consistent spacing and typography
  • Subtle animations
  • Dark mode support (via Tailwind)
  • Accessible components (via shadcn/ui)

📝 Notes

  • Built for Porter hosting deployment
  • Designed for AI vibe-coded project management
  • Real data integration coming next
  • Backend API in /vibn-backend folder

Status: Frontend scaffolded and running Next: Connect to PostgreSQL database and build API layer

Description
No description provided
Readme 349 MiB
Languages
HTML 45.8%
TypeScript 30%
JavaScript 10.9%
Python 7.6%
CSS 4.7%
Other 0.9%