Skip to main content

Archetypes

Archetypes are pre-configured project templates that provide a complete starting point for common application types.

Available Archetypes​

ArchetypeBest ForIncluded Features
saasSaaS applicationsAuth, admin, subscriptions, user management
ecommerceOnline storesProducts, cart, checkout, orders, inventory
cmsContent managementPosts, pages, categories, media, editor
marketplaceMulti-vendor platformsVendors, listings, transactions, reviews
blankCustom applicationsMinimal 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