A comprehensive webhook inspection and handler generation platform with Node.js/Fastify backend and React/Vite frontend. Capture, analyze webhook requests, and automatically generate TypeScript handler functions with Zod schemas for production-ready webhook processing.
- Runtime: Node.js with TypeScript
- Web Framework: Fastify with Zod type provider
- Database: PostgreSQL with Drizzle ORM
- Validation: Zod schemas with automatic type generation
- Documentation: OpenAPI/Swagger with Scalar UI
- Tooling: Biome for formatting, tsx for TypeScript execution
- Framework: React 19 with TypeScript
- Build Tool: Vite with React plugin
- Routing: TanStack Router with file-based routing and code splitting
- State Management: TanStack Query for server state
- Styling: Tailwind CSS v4 with dark theme
- UI Components: Custom components built on Radix UI primitives
- Universal Webhook Capture: Captures all HTTP method types to
/capture/*endpoints - Request Storage: Comprehensive storage of method, pathname, IP, headers, body, and metadata
- Real-time Updates: Live webhook capture and immediate frontend updates
- Advanced Filtering: Search and filter webhooks by various criteria
- Detailed Inspection: Complete request analysis with formatted JSON responses
- Automatic TypeScript Generation: Generate production-ready webhook handler functions from captured data
- Zod Schema Validation: Automatically create Zod schemas for each webhook event type
- Multi-event Support: Handle multiple webhook events in a single generated function
- Error Handling: Built-in error handling for invalid payloads and edge cases
- Best Practices: Generated code follows latest Zod and TypeScript best practices
- Performance Optimized: Efficient validation and event routing logic
- Cursor-based Pagination: Efficient pagination for large webhook datasets
- API Documentation: Auto-generated OpenAPI docs available at
/docs - CORS Support: Enabled for all origins with common HTTP methods
- Type Safety: Full TypeScript support with Zod validation throughout
- Resizable Panel Layout: Flexible sidebar navigation with main content area
- Infinite Scrolling: Smooth browsing through large webhook datasets
- Real-time Synchronization: TanStack Query manages caching and real-time updates
- Handler Preview: Live preview of generated TypeScript code with syntax highlighting
- Code Export: Download generated handlers as .ts files
- Dark Theme: Modern dark interface with Tailwind CSS v4
# Install dependencies (requires pnpm)
pnpm install- Create
.envfile inapi/directory withDATABASE_URL - Run database migrations:
cd api && pnpm db:migrate - Optionally seed database:
cd api && pnpm db:seed
cd api
pnpm devAPI will be available at http://localhost:3333
API documentation at http://localhost:3333/docs
cd web
pnpm devFrontend will be available at http://localhost:5173
pnpm install- Install dependencies for both API and webpnpm dev- Start development server with hot reload using tsx
pnpm dev- Start development server with hot reloadpnpm start- Run production server from built filespnpm format- Format code using Biomepnpm db:generate- Generate Drizzle database migrationspnpm db:migrate- Run database migrationspnpm db:studio- Open Drizzle Studio for database managementpnpm db:seed- Seed database with initial data
pnpm dev- Start development server with hot reloadpnpm build- Build for production (TypeScript compilation + Vite build)pnpm preview- Preview production build
GET /api/webhooks- List webhooks with cursor-based paginationGET /api/webhooks/:id- Get specific webhook detailsDELETE /api/webhooks/:id- Delete a webhook
POST /api/generate-handler- Generate TypeScript handler function from selected webhooks- Supports streaming responses for real-time code generation
- Accepts multiple webhook IDs for multi-event handler creation
ALL /capture/*- Catch-all route that captures incoming webhook requests
Create a .env file in the api/ directory:
DATABASE_URL=postgresql://username:password@localhost:5432/database_name
NODE_ENV=development
PORT=3333├── api/ # Backend API service
│ ├── src/
│ │ ├── db/ # Database schemas and migrations
│ │ ├── http/ # HTTP routes and schemas
│ │ └── server.ts # Main server file
│ └── drizzle.config.ts # Database configuration
└── web/ # Frontend React application
├── src/
│ ├── components/ # React components
│ ├── routes/ # File-based routing
│ └── http/ # API schemas
└── vite.config.ts # Vite configuration
- Start both backend and frontend servers
- Send webhook requests to
http://localhost:3333/capture/your-endpoint - View captured webhooks in the web interface
- Inspect detailed request data including headers, body, and metadata