Architecture
Overview of NetPad's technical architecture.
Tech Stackโ
- Frontend: Next.js 14, React, TypeScript
- UI Framework: Material-UI (MUI)
- Backend: Next.js API Routes
- Database: MongoDB
- Authentication: NextAuth.js
- State Management: React Context + Hooks
Project Structureโ
netpad-v3/
โโโ src/
โ โโโ app/ # Next.js App Router
โ โ โโโ api/ # API routes
โ โ โโโ (auth)/ # Auth pages
โ โ โโโ (dashboard)/ # Dashboard pages
โ โโโ components/ # React components
โ โ โโโ common/ # Shared components
โ โ โโโ forms/ # Form builder components
โ โ โโโ workflows/ # Workflow components
โ โ โโโ data/ # Data explorer components
โ โโโ lib/ # Utility libraries
โ โโโ hooks/ # Custom React hooks
โ โโโ contexts/ # React contexts
โ โโโ types/ # TypeScript types
โโโ public/ # Static assets
โโโ docs/ # Documentation
Key Componentsโ
Form Builderโ
The form builder uses a modular field system:
interface FormField {
id: string;
type: FieldType;
label: string;
required: boolean;
validation?: ValidationRule[];
conditionalLogic?: ConditionalRule[];
}
Workflow Engineโ
Workflows use a node-based execution system:
interface WorkflowNode {
id: string;
type: NodeType;
inputs: Connection[];
outputs: Connection[];
config: NodeConfig;
}
Data Layerโ
MongoDB connections are managed through a vault system:
interface Connection {
id: string;
name: string;
uri: string; // Encrypted
organizationId: string;
}
API Designโ
RESTful API design principles:
- Resource-based URLs
- Standard HTTP methods
- JSON request/response
- Consistent error handling
Securityโ
- Environment-based secrets
- Encrypted connection strings
- Role-based access control
- Input validation