Archetypes
Archetypes are pre-configured project templates that provide a complete starting point for common application types.
Available Archetypes
| Archetype | Best For | Included Features |
|---|---|---|
saas | SaaS applications | Auth, admin, subscriptions, user management |
ecommerce | Online stores | Products, cart, checkout, orders, inventory |
cms | Content management | Posts, pages, categories, media, editor |
marketplace | Multi-vendor platforms | Vendors, listings, transactions, reviews |
blank | Custom applications | Minimal setup, add what you need |
SaaS Archetype
Perfect for subscription-based web applications.
npx autodeploybase init my-app --archetype saas
Included Features
- Authentication - Login, register, password reset
- User Management - Roles (user, admin, super_admin)
- Admin Dashboard - Full admin panel
- Subscription Management - Plans, billing (with Stripe plugin)
- Settings - User and system settings
- Team Support - Organizations and team members
Database Schema
model User {
id String @id @default(cuid())
email String @unique
name String?
password String
role Role @default(USER)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
enum Role {
USER
ADMIN
SUPER_ADMIN
}
Pages Generated
/- Landing page/login,/register- Authentication/dashboard- User dashboard/settings- User settings/admin/*- Admin panel
E-commerce Archetype
Complete online store setup.
npx autodeploybase init my-store --archetype ecommerce
Included Features
- Product Catalog - Categories, variants, images
- Shopping Cart - Session-based or user-based
- Checkout Flow - Multi-step checkout
- Order Management - Order tracking, status updates
- Inventory - Stock management
- Admin Panel - Product CRUD, order management
Database Schema
model Product {
id String @id @default(cuid())
name String
description String?
price Decimal
images String[]
category Category @relation(fields: [categoryId], references: [id])
categoryId String
variants Variant[]
inventory Inventory?
}
model Order {
id String @id @default(cuid())
userId String
user User @relation(fields: [userId], references: [id])
items OrderItem[]
status OrderStatus @default(PENDING)
total Decimal
createdAt DateTime @default(now())
}
CMS Archetype
Content management system for blogs and websites.
npx autodeploybase init my-blog --archetype cms
Included Features
- Posts - Create, edit, publish articles
- Pages - Static pages
- Categories & Tags - Content organization
- Media Library - Image/file uploads
- Markdown Editor - Rich text editing
- SEO - Meta tags, sitemaps
- Comments - Optional comment system
Database Schema
model Post {
id String @id @default(cuid())
title String
slug String @unique
content String
excerpt String?
featuredImg String?
status PostStatus @default(DRAFT)
author User @relation(fields: [authorId], references: [id])
authorId String
categories Category[]
tags Tag[]
publishedAt DateTime?
createdAt DateTime @default(now())
}
enum PostStatus {
DRAFT
PUBLISHED
ARCHIVED
}
Marketplace Archetype
Multi-vendor marketplace platform.
npx autodeploybase init my-market --archetype marketplace
Included Features
- Vendor Accounts - Seller registration, profiles
- Listings - Products/services from multiple vendors
- Transactions - Payments split between platform and vendors
- Reviews - Rating system
- Messaging - Buyer-seller communication
- Disputes - Conflict resolution
Database Schema
model Vendor {
id String @id @default(cuid())
user User @relation(fields: [userId], references: [id])
userId String @unique
storeName String
description String?
listings Listing[]
balance Decimal @default(0)
status VendorStatus @default(PENDING)
}
model Listing {
id String @id @default(cuid())
vendor Vendor @relation(fields: [vendorId], references: [id])
vendorId String
title String
description String
price Decimal
status ListingStatus @default(ACTIVE)
}
Blank Archetype
Minimal setup for custom applications.
npx autodeploybase init my-app --archetype blank
Included Features
- Framework setup - Chosen framework configured
- Database connection - Prisma configured (no models)
- TypeScript - Full TypeScript support
- Tailwind CSS - Styling ready
- ESLint & Prettier - Code quality
What You Get
my-app/
├── prisma/
│ └── schema.prisma # Empty schema
├── src/
│ ├── app/
│ │ └── page.tsx # Home page only
│ └── lib/
│ └── db.ts # Database client
├── .env.example
└── package.json
Add features incrementally:
npx autodeploybase add auth-jwt
npx autodeploybase add admin-dashboard
npx autodeploybase add payments-stripe
Customizing Archetypes
Override Default Plugins
npx autodeploybase init my-app \
--archetype saas \
--plugins auth-nextauth,analytics # Override auth
Skip Certain Features
Edit autodeploy.config.json after generation:
{
"archetype": "saas",
"plugins": {
"subscriptions": {
"enabled": false // Disable subscriptions
}
}
}
Then regenerate:
npx autodeploybase generate
Creating Custom Archetypes
You can create project-specific archetypes:
archetypes/my-company.json
{
"name": "my-company",
"description": "Standard setup for My Company projects",
"framework": "next",
"database": "postgresql",
"plugins": ["auth-jwt", "admin-dashboard", "email", "analytics"],
"features": {
"typescript": true,
"tailwind": true,
"docker": true,
"testing": true
}
}
Use it:
npx autodeploybase init my-project --archetype ./archetypes/my-company.json