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