Visual workflow automation builder with AI, trigger and integration nodes, backed by durable background execution.
Nodebase is a full-stack workflow automation platform built with Next.js (App Router), React and TypeScript. Users design automations visually on a node-based canvas, connecting triggers (manual, HTTP, Google Forms, Stripe events) to actions (AI model calls, Discord, Slack) and running them reliably through a durable background job engine, with full execution history and encrypted credential storage.
- Visual workflow editor built on a node-based canvas, supporting drag-and-drop nodes and connections between steps
- Multiple trigger types: manual trigger, HTTP request, Google Form submissions, Stripe events
- AI nodes powered by multiple providers (OpenAI, Anthropic, Google Gemini)
- Integration nodes for Discord and Slack notifications
- Encrypted credential storage per integration, reusable across workflows
- Durable background execution engine with real-time status updates as workflows run
- Full execution history with status (running / success / failed), errors and step output
- Authentication via email plus GitHub and Google OAuth
- Subscription/billing management
- Error tracking and monitoring
| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router), React 19, TypeScript |
| Workflow canvas | React Flow (@xyflow/react) |
| API layer | tRPC + TanStack Query |
| Background jobs | Inngest (durable execution + realtime) |
| AI integration | Vercel AI SDK (OpenAI, Anthropic, Google Gemini) |
| Database | PostgreSQL with Prisma ORM |
| Auth | Better Auth (email + GitHub/Google OAuth) |
| Billing | Polar |
| Error tracking | Sentry |
| Styling / UI | Tailwind CSS, Radix UI, shadcn-style component library |
graph LR
U[User]
subgraph Nodebase["Nodebase (Next.js App)"]
UI["Workflow Editor (Node Canvas)"]
API["tRPC API Layer"]
FN["Background Execution Functions"]
end
subgraph Data["Data & Storage"]
DB[("PostgreSQL via Prisma")]
end
subgraph External["External Services"]
Auth["Auth (Email, GitHub, Google)"]
AI["AI Providers (OpenAI, Anthropic, Gemini)"]
Integrations["Discord & Slack"]
Triggers["Google Forms & Stripe"]
Billing["Billing Provider"]
Sentry["Monitoring (Sentry)"]
end
U -->|Sign in| Auth
U -->|Build workflow| UI
UI --> API
API --> DB
Triggers -->|Trigger event| FN
API -->|Trigger run| FN
FN -->|Read workflow graph| DB
FN -->|Call model| AI
FN -->|Send message| Integrations
FN -->|Record execution & output| DB
FN -.->|Realtime status| UI
API -->|Manage subscription| Billing
UI -.->|Errors & traces| Sentry
FN -.->|Errors & traces| Sentry
- Users sign in (email or GitHub/Google OAuth) and build automations visually on the workflow canvas, connecting trigger, AI and integration nodes.
- Workflow definitions (nodes, connections, positions) are persisted through a type-safe API layer backed by PostgreSQL via Prisma.
- A workflow run starts either from a manual action in the UI or from an external trigger, such as an HTTP request, a Google Form submission, or a Stripe event.
- Each run is executed as a durable background function, which reads the workflow graph, resolves the node execution order and calls the appropriate step: an AI provider, or an integration such as Discord or Slack.
- Execution progress and results are streamed back to the editor in real time and persisted as an execution record, including status, errors and output for later inspection in the execution history.
- Credentials required by nodes are stored encrypted and only decrypted at execution time inside the background job.
src/
├── app/ # Next.js App Router routes
├── components/ # Shared UI components
├── config/ # App-wide configuration
├── features/
│ ├── auth/ # Sign in / sign up
│ ├── credentials/ # Encrypted credential management
│ ├── editor/ # Workflow canvas (nodes, connections, node selector)
│ ├── executions/ # Execution history & status
│ ├── subscriptions/ # Billing
│ ├── triggers/ # Trigger-specific UI (Google Form, Stripe, etc.)
│ └── workflows/ # Workflow CRUD & listing
├── hooks/ # Custom React hooks
├── inngest/
│ ├── client.ts # Background job client setup
│ └── functions.ts # Durable workflow execution functions
├── lib/ # Shared utilities
└── trpc/ # API router & client setup
prisma/
└── schema.prisma # Database schema
- Workflow — belongs to a user, contains nodes, connections and executions.
- Node — a step in a workflow (trigger, AI provider or integration), with its position on the canvas and configuration data; optionally linked to a credential.
- Connection — a directed edge linking one node's output to another node's input, defining execution order.
- Credential — an encrypted value tied to an integration type, reusable across nodes.
- Execution — a single run of a workflow, tracking status, timing, error details and output.
- Node.js 18+
- A PostgreSQL database
- Accounts for the AI providers and integrations you plan to use (e.g. OpenAI, Anthropic, Google, Discord, Slack, Stripe)
This project requires credentials for the database, authentication, AI providers, integrations and billing. Create a local .env file with your own values (never commit it or share real credentials) before running the app.
npm install
npm run dev:allThe dev:all script runs the Next.js dev server together with the background job runner. Open http://localhost:3000 to see the app.
| Script | Description |
|---|---|
dev |
Starts the Next.js development server |
build |
Builds the app for production |
start |
Runs the production build |
lint |
Runs linting checks |
format |
Formats the codebase |
db:migrate |
Runs database migrations |
db:generate |
Generates the Prisma client |
db:studio |
Opens Prisma Studio |
inngest:dev |
Runs the background job development server |
dev:all |
Runs the app and background job server together |
The easiest way to deploy this app is with Vercel. Background workflow executions require a background job runner (self-hosted or cloud-hosted) to be configured alongside the deployment, in addition to all required environment variables.
Specify a license here (e.g. MIT) if you want the project to be reusable by others.