Available Templates
FORGE provides a library of pre-built templates for common business domains. Each template extends the base template with domain-specific models, migrations, permissions, API endpoints, admin pages, and features.
CRM
Customer Relationship Management -- manage contacts, companies, sales deals, and pipeline stages.
# Create a new project with CRM
forge new --name=mycrm --template=crm
# Add CRM to an existing project
forge template:add crmModels
| Model | Description |
|---|---|
Contact | Customer and prospect records with email, phone, source, status |
Company | Organization records with industry, size, website |
Deal | Sales opportunities with value, currency, probability, expected close date |
Pipeline | Sales pipeline definitions with ordered stages |
PipelineStage | Individual stages within a pipeline (e.g., Lead, Qualified, Proposal, Won) |
Activity | Tasks, calls, meetings, and notes linked to contacts or deals |
Tag | Categorization labels for contacts and companies |
Permissions
contacts.view contacts.create contacts.edit contacts.delete
companies.view companies.create companies.edit companies.delete
deals.view deals.create deals.edit deals.delete
pipelines.view pipelines.create pipelines.edit pipelines.delete
activities.view activities.create activities.edit activities.deleteAdmin Pages
| Page | Path | Description |
|---|---|---|
| Contact List | /admin/crm/contacts | Filterable contact list with search, status filter, tag filter |
| Contact Detail | /admin/crm/contacts/:id | Contact profile with activity timeline |
| Company List | /admin/crm/companies | Company directory with industry and size filters |
| Deal List | /admin/crm/deals | Deal list with pipeline and stage filters |
| Pipeline Board | /admin/crm/deals?view=kanban | Kanban board with drag-and-drop stage transitions |
| Pipeline Config | /admin/crm/pipelines | Pipeline and stage management |
| Reports | /admin/crm/reports | Sales analytics, conversion rates, revenue reports |
Features
- Kanban board for visual deal management with drag-and-drop
- Activity timeline on contacts and deals
- Contact-to-company relationships
- Deal assignment to team members
- CSV import and export for contacts and companies
- Contact merge to eliminate duplicates
- Sales funnel and conversion reports
- Tag-based segmentation
Database Schema
CREATE TABLE contacts (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100),
email VARCHAR(255),
phone VARCHAR(50),
company_id UUID REFERENCES companies(id),
status VARCHAR(50) DEFAULT 'active',
source VARCHAR(100),
translations JSONB DEFAULT '{}',
metadata JSONB DEFAULT '{}',
assigned_to UUID REFERENCES users(id),
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE TABLE companies (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
name VARCHAR(255) NOT NULL,
website VARCHAR(255),
industry VARCHAR(100),
size VARCHAR(50),
translations JSONB DEFAULT '{}',
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE TABLE deals (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
title VARCHAR(255) NOT NULL,
value DECIMAL(15, 2),
currency VARCHAR(3) DEFAULT 'USD',
contact_id UUID REFERENCES contacts(id),
company_id UUID REFERENCES companies(id),
pipeline_id UUID REFERENCES pipelines(id),
stage_id UUID REFERENCES pipeline_stages(id),
probability INT DEFAULT 0,
expected_close_date DATE,
closed_at TIMESTAMPTZ,
won BOOLEAN,
assigned_to UUID REFERENCES users(id),
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE TABLE activities (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
type VARCHAR(50) NOT NULL, -- call, email, meeting, task, note
subject VARCHAR(255),
description TEXT,
contact_id UUID REFERENCES contacts(id),
deal_id UUID REFERENCES deals(id),
due_date TIMESTAMPTZ,
completed_at TIMESTAMPTZ,
created_by UUID REFERENCES users(id),
created_at TIMESTAMPTZ DEFAULT NOW()
);Helpdesk
Customer Support Ticket System -- manage support tickets, agent assignment, SLAs, and customer satisfaction.
forge new --name=support --template=helpdesk
forge template:add helpdeskModels
| Model | Description |
|---|---|
Ticket | Support tickets with subject, priority, status, category |
Category | Ticket categories for routing and organization |
Priority | Priority levels with SLA mapping (Low, Medium, High, Urgent) |
Comment | Ticket responses (public replies and internal notes) |
Agent | Support agents extending the User model with availability status |
SLA | Service level agreements with response and resolution time targets |
CannedResponse | Pre-written reply templates for common issues |
Permissions
tickets.view tickets.create tickets.edit tickets.delete tickets.assign
categories.view categories.create categories.edit categories.delete
agents.view agents.create agents.edit agents.delete
sla.view sla.create sla.edit sla.delete
canned_responses.view canned_responses.create canned_responses.edit canned_responses.deleteAdmin Pages
| Page | Path | Description |
|---|---|---|
| Ticket List | /admin/helpdesk/tickets | Tickets with status, priority, and category filters |
| Ticket Detail | /admin/helpdesk/tickets/:id | Conversation thread with reply and internal notes |
| Category Management | /admin/helpdesk/categories | Create and organize ticket categories |
| Agent Management | /admin/helpdesk/agents | Manage support agents and availability |
| SLA Configuration | /admin/helpdesk/sla | Define response and resolution time targets |
| Canned Responses | /admin/helpdesk/canned-responses | Manage reply templates |
| Reports | /admin/helpdesk/reports | Ticket volume, response times, satisfaction scores |
Public Portal Pages
| Page | Path | Description |
|---|---|---|
| Submit Ticket | /support | Submit a new support ticket |
| My Tickets | /support/tickets | View submitted tickets |
| Ticket Detail | /support/tickets/:id | View ticket status and replies |
| Knowledge Base | /support/kb | Self-service help articles |
Features
- Automatic ticket assignment (round-robin or manual)
- SLA tracking with escalation rules and breach notifications
- Canned responses insertable into replies
- Internal notes visible only to agents
- File attachments on tickets and comments
- Email notifications for ticket updates
- Customer satisfaction ratings after ticket resolution
- Ticket status workflow: Open, In Progress, Waiting, Resolved, Closed
Appointment
Booking and Scheduling System -- manage services, staff availability, and customer appointments.
forge new --name=booking --template=appointment
forge template:add appointmentModels
| Model | Description |
|---|---|
Service | Bookable services with name, duration, price, description |
Staff | Service providers with specializations and availability |
Appointment | Bookings linking customer, service, staff, and time slot |
Schedule | Staff working hours by day of week |
TimeSlot | Generated available time slots based on schedules |
Holiday | Blocked dates when services are unavailable |
Permissions
services.view services.create services.edit services.delete
staff.view staff.create staff.edit staff.delete
appointments.view appointments.create appointments.edit appointments.delete
schedules.view schedules.edit
holidays.view holidays.create holidays.deleteAdmin Pages
| Page | Path | Description |
|---|---|---|
| Calendar View | /admin/appointments/calendar | Visual calendar with appointment blocks |
| Appointment List | /admin/appointments/list | Filterable appointment list |
| Service Management | /admin/appointments/services | Create and manage bookable services |
| Staff Management | /admin/appointments/staff | Staff profiles and specializations |
| Schedule Config | /admin/appointments/schedule | Working hours and availability rules |
| Holiday Management | /admin/appointments/holidays | Block dates and periods |
Public Booking Pages
| Page | Path | Description |
|---|---|---|
| Service Selection | /book | Browse and select a service |
| Time Selection | /book/:service | Pick staff and available time slot |
| Confirmation | /book/confirm | Review and confirm booking |
| Booking Details | /booking/:id | View or cancel a booking |
Features
- Multi-staff support with individual availability
- Service duration and pricing configuration
- Buffer time between appointments to avoid back-to-back scheduling
- Recurring appointment support
- SMS and email appointment reminders
- Calendar sync with Google Calendar and Outlook
- Online payment integration (optional, via payment provider)
- Booking widget embeddable in external websites
Invoicing
Invoice and Billing System -- generate invoices, manage quotes, track payments, and handle tax calculations.
forge new --name=billing --template=invoicing
forge template:add invoicingModels
| Model | Description |
|---|---|
Client | Customer and business information for invoicing |
Invoice | Invoices with line items, tax, discounts, status |
InvoiceLine | Individual line items on an invoice |
Quote | Estimates and quotes convertible to invoices |
Product | Products and services catalog with pricing |
Payment | Payment records linked to invoices |
Tax | Tax rates and rules by region |
InvoiceTemplate | PDF templates for invoice rendering |
Permissions
clients.view clients.create clients.edit clients.delete
invoices.view invoices.create invoices.edit invoices.delete invoices.send
quotes.view quotes.create quotes.edit quotes.delete
products.view products.create products.edit products.delete
payments.view payments.create payments.edit
tax.view tax.create tax.edit tax.deleteAdmin Pages
| Page | Path | Description |
|---|---|---|
| Invoice List | /admin/invoicing/invoices | Invoices with status and date filters |
| Create Invoice | /admin/invoicing/invoices/new | Invoice builder with line items |
| Quote List | /admin/invoicing/quotes | Quotes with conversion tracking |
| Client Management | /admin/invoicing/clients | Client directory with billing history |
| Product Catalog | /admin/invoicing/products | Products and services with pricing |
| Payment History | /admin/invoicing/payments | Payment records and reconciliation |
| Tax Configuration | /admin/invoicing/tax | Tax rates by region |
| Reports | /admin/invoicing/reports | Revenue, outstanding, aged receivables |
Public Portal Pages
| Page | Path | Description |
|---|---|---|
| View Invoice | /invoice/:uuid | Client-facing invoice with payment button |
| View Quote | /quote/:uuid | Quote view with accept/decline actions |
Features
- Automatic invoice numbering (INV-0001, INV-0002, etc.)
- Multi-currency support with exchange rate handling
- Tax calculation engine with support for multiple tax rates per line item
- PDF invoice generation with customizable templates
- Email invoices directly to clients
- Online payment collection via configured payment provider
- Recurring invoices on monthly, quarterly, or annual schedules
- Quote-to-invoice conversion with one click
- Payment tracking with partial payment support
- Overdue payment reminders via email and SMS
Inventory
Stock and Warehouse Management -- track products, manage warehouses, monitor stock levels, and handle purchase orders.
forge new --name=warehouse --template=inventory
forge template:add inventoryModels
| Model | Description |
|---|---|
Product | Inventory items with SKU, barcode, unit, category |
Category | Product categories with hierarchy |
Warehouse | Physical storage locations |
Stock | Current stock levels per product per warehouse |
StockMovement | Stock in/out transactions with reason codes |
Supplier | Vendor and supplier records |
PurchaseOrder | Purchase orders to suppliers with line items |
StockAlert | Low stock threshold alerts |
Permissions
products.view products.create products.edit products.delete
warehouses.view warehouses.create warehouses.edit warehouses.delete
stock.view stock.adjust
stock_movements.view stock_movements.create
suppliers.view suppliers.create suppliers.edit suppliers.delete
purchase_orders.view purchase_orders.create purchase_orders.edit purchase_orders.delete
stock_alerts.view stock_alerts.configureAdmin Pages
| Page | Path | Description |
|---|---|---|
| Product List | /admin/inventory/products | Product catalog with category filter |
| Stock Levels | /admin/inventory/stock | Stock by warehouse with threshold indicators |
| Stock Movements | /admin/inventory/movements | Transaction log for all stock changes |
| Warehouse Management | /admin/inventory/warehouses | Warehouse locations and capacity |
| Supplier Directory | /admin/inventory/suppliers | Vendor contact and order history |
| Purchase Orders | /admin/inventory/orders | Create and track purchase orders |
| Alerts | /admin/inventory/alerts | Low stock alerts and thresholds |
| Reports | /admin/inventory/reports | Stock valuation, movement analysis |
Features
- Multi-warehouse stock tracking with transfer support
- SKU and barcode management for product identification
- Barcode scanning support for mobile stock operations
- Stock movement history with full audit trail
- Low stock alerts with configurable thresholds per product
- Stock valuation methods: FIFO, LIFO, and Weighted Average
- Purchase order lifecycle: Draft, Sent, Received, Closed
- Stock adjustment with reason codes (damage, returns, correction)
- Inventory reports: stock value, movement summary, dead stock
Subscriptions
Subscription and Recurring Billing -- manage plans, subscriptions, metered usage, and revenue metrics.
forge new --name=saas --template=subscriptions
forge template:add subscriptionsModels
| Model | Description |
|---|---|
Plan | Subscription plans with pricing tiers (monthly, yearly) |
Subscription | Active subscriptions linking user to plan |
Feature | Plan features with limits (e.g., "10 projects", "Unlimited users") |
Usage | Metered usage records for consumption-based billing |
Invoice | Subscription invoices generated on each billing cycle |
Coupon | Discount codes with percentage or fixed amount |
Permissions
plans.view plans.create plans.edit plans.delete
subscriptions.view subscriptions.create subscriptions.edit subscriptions.cancel
features.view features.create features.edit features.delete
usage.view
invoices.view
coupons.view coupons.create coupons.edit coupons.deleteAdmin Pages
| Page | Path | Description |
|---|---|---|
| Plan Management | /admin/subscriptions/plans | Create and configure subscription plans |
| Active Subscriptions | /admin/subscriptions/list | View and manage active subscriptions |
| Invoices | /admin/subscriptions/invoices | Billing history and invoice details |
| Coupon Management | /admin/subscriptions/coupons | Create and track discount codes |
| Revenue Reports | /admin/subscriptions/reports | MRR, ARR, churn, LTV analytics |
Public Pages
| Page | Path | Description |
|---|---|---|
| Pricing | /pricing | Public pricing page with plan comparison |
| Checkout | /subscribe/:plan | Plan selection and payment |
| My Subscription | /account/subscription | Current plan, upgrade/downgrade options |
| Billing History | /account/billing | Invoice history and payment methods |
Features
- Multiple billing intervals (monthly, quarterly, yearly)
- Free trial periods with configurable duration
- Metered billing for usage-based features
- Prorated upgrades and downgrades between plans
- Automatic subscription renewal with payment retry logic
- Failed payment handling with grace period and dunning emails
- Cancellation flows with optional retention offers
- Discount coupons with percentage or fixed amount, usage limits, and expiry
- MRR (Monthly Recurring Revenue) and ARR tracking
- Churn rate and customer lifetime value (LTV) reporting
Additional Templates
The following templates are available for specialized use cases:
Notifications
Multi-channel notification system supporting email, SMS, push notifications, and in-app messages.
forge template:add notificationsModels: Notification, NotificationTemplate, NotificationChannel, NotificationPreference Features: Multi-channel delivery, template engine, user preferences, delivery tracking, queue-based sending, scheduled notifications
Portal
Client or employee self-service portal with document sharing and messaging.
forge template:add portalModels: Document, Message, Announcement, FAQ Features: Document upload and sharing, internal messaging, announcement board, FAQ management, access control per document
KYC
Know Your Customer identity verification workflow.
forge template:add kycModels: KYCRequest, KYCDocument, KYCStatus Features: Multi-step verification workflow, ID document upload and review, status tracking (Pending, Under Review, Approved, Rejected), admin review interface, compliance reporting
Marketplace
Multi-vendor marketplace with product listings, orders, and commission tracking.
forge template:add marketplaceModels: Vendor, Product, Order, OrderItem, Review, Commission Features: Vendor registration and management, product listing with categories, order processing, review and rating system, commission calculation, vendor payout tracking
Donations
Donation and fundraising platform with campaign management.
forge template:add donationsModels: Campaign, Donor, Donation, Goal Features: Campaign creation with goals and deadlines, one-time and recurring donations, donor management, progress tracking, tax receipt generation, campaign reports
Blog
Content management for articles, categories, tags, and comments.
forge template:add blogModels: Post, Category, Tag, Comment Features: Rich text editor with image uploads, category and tag organization, Comment moderation, SEO metadata (title, description, OG tags), RSS feed generation, author profiles
Template Comparison
| Template | Models | Admin Pages | Public Pages | Permissions |
|---|---|---|---|---|
| Base | 12 | 15+ | 8 | 30+ |
| CRM | 6 | 7 | -- | 20 |
| Helpdesk | 7 | 7 | 4 | 22 |
| Appointment | 6 | 6 | 4 | 14 |
| Invoicing | 8 | 8 | 2 | 22 |
| Inventory | 8 | 8 | -- | 18 |
| Subscriptions | 6 | 5 | 4 | 16 |
Combining templates
Templates are designed to be composable. You can add multiple templates to the same project. For example, a SaaS application might combine subscriptions + helpdesk + notifications to get billing, support, and multi-channel notifications in one application.
Next Steps
- Base Template -- Review what is included by default
- Custom Templates -- Build your own domain-specific templates
- Template System Overview -- Understand how templates work