Configuration Presets
Quick project setup with predefined configuration bundles
Presets are predefined configuration bundles that quickly set up your project for specific use cases.
Available Presets#
SaaS Starter#
Full SaaS setup with authentication, payments, and database.
bootspring init --preset saas-starter1{
2 stack: {
3 framework: 'nextjs',
4 language: 'typescript',
5 database: 'postgresql',
6 hosting: 'vercel'
7 },
8 plugins: {
9 auth: { enabled: true, provider: 'clerk' },
10 payments: { enabled: true, provider: 'stripe' },
11 database: { enabled: true, provider: 'prisma' },
12 testing: { enabled: true, provider: 'vitest' },
13 security: { enabled: true }
14 },
15 quality: {
16 preCommit: true,
17 prePush: false,
18 strictMode: false
19 }
20}Best for: SaaS products, subscription apps, multi-tenant platforms
API Only#
Backend API service without frontend, optimized for microservices.
bootspring init --preset api-only1{
2 stack: {
3 framework: 'express',
4 language: 'typescript',
5 database: 'postgresql',
6 hosting: 'railway'
7 },
8 plugins: {
9 auth: { enabled: true, provider: 'jwt' },
10 payments: { enabled: false },
11 database: { enabled: true, provider: 'prisma' },
12 testing: { enabled: true, provider: 'vitest' },
13 security: { enabled: true }
14 },
15 quality: {
16 preCommit: true,
17 prePush: true,
18 strictMode: true
19 }
20}Best for: Microservices, REST APIs, backend services
Minimal#
Bare minimum setup for quick prototyping.
bootspring init --preset minimal1{
2 stack: {
3 framework: 'nextjs',
4 language: 'typescript',
5 database: 'none',
6 hosting: 'vercel'
7 },
8 plugins: {
9 auth: { enabled: false },
10 payments: { enabled: false },
11 database: { enabled: false },
12 testing: { enabled: false },
13 security: { enabled: true }
14 },
15 quality: {
16 preCommit: false,
17 prePush: false,
18 strictMode: false
19 }
20}Best for: Prototypes, MVPs, learning projects, hackathons
AI App#
AI-powered application with Claude integration.
bootspring init --preset ai-app1{
2 stack: {
3 framework: 'nextjs',
4 language: 'typescript',
5 database: 'postgresql',
6 hosting: 'vercel'
7 },
8 plugins: {
9 auth: { enabled: true, provider: 'clerk' },
10 payments: { enabled: false },
11 database: { enabled: true, provider: 'prisma' },
12 testing: { enabled: true, provider: 'vitest' },
13 security: { enabled: true },
14 ai: { enabled: true, provider: 'anthropic' }
15 },
16 quality: {
17 preCommit: true,
18 prePush: false,
19 strictMode: false
20 }
21}Best for: AI chatbots, Claude-powered apps, LLM applications
Enterprise#
Enterprise-grade setup with all security and quality features.
bootspring init --preset enterprise1{
2 stack: {
3 framework: 'nextjs',
4 language: 'typescript',
5 database: 'postgresql',
6 hosting: 'aws'
7 },
8 plugins: {
9 auth: { enabled: true, provider: 'clerk', features: ['sso', 'mfa'] },
10 payments: { enabled: true, provider: 'stripe' },
11 database: { enabled: true, provider: 'prisma' },
12 testing: { enabled: true, provider: 'vitest', features: ['e2e', 'coverage'] },
13 security: { enabled: true, features: ['audit', 'rbac'] }
14 },
15 quality: {
16 preCommit: true,
17 prePush: true,
18 strictMode: true
19 }
20}Best for: Enterprise software, B2B SaaS, compliance-required apps
Using Presets#
Initialize with a Preset#
1# New project with preset
2bootspring init my-project --preset saas-starter
3
4# Existing project
5cd my-project
6bootspring init --preset saas-starterApply Preset to Existing Config#
# Apply preset (merges with existing config)
bootspring config apply-preset saas-starter
# Apply with overrides
bootspring config apply-preset saas-starter --override "plugins.payments.enabled=false"View Preset Details#
# List all presets
bootspring config presets
# View a specific preset
bootspring config preset saas-starterAPI Usage#
1const config = require('bootspring/core/config');
2
3// List available presets
4const presets = config.listPresets();
5// [
6// { key: 'saas-starter', name: 'SaaS Starter', description: '...' },
7// { key: 'api-only', name: 'API Only', description: '...' },
8// ...
9// ]
10
11// Get a preset
12const preset = config.getPreset('saas-starter');
13
14// Apply a preset with overrides
15const finalConfig = config.applyPreset('saas-starter', {
16 plugins: {
17 payments: { enabled: false }
18 }
19});
20
21// Save the applied config
22config.save(finalConfig);Preset Comparison#
| Feature | saas-starter | api-only | minimal | ai-app | enterprise |
|---|---|---|---|---|---|
| Auth | Clerk | JWT | - | Clerk | Clerk + SSO |
| Payments | Stripe | - | - | - | Stripe |
| Database | PostgreSQL | PostgreSQL | - | PostgreSQL | PostgreSQL |
| Testing | Vitest | Vitest | - | Vitest | Vitest + E2E |
| AI | - | - | - | Anthropic | - |
| Pre-commit | Yes | Yes | No | Yes | Yes |
| Pre-push | No | Yes | No | No | Yes |
| Strict Mode | No | Yes | No | No | Yes |
Customizing Presets#
Override During Init#
bootspring init --preset saas-starter \
--stack.hosting=railway \
--plugins.payments.enabled=falseModify After Init#
Edit bootspring.config.js after initialization:
1// bootspring.config.js
2module.exports = {
3 // ... preset values
4
5 // Your overrides
6 plugins: {
7 auth: { enabled: true, provider: 'clerk' },
8 payments: { enabled: false }, // Disabled
9 }
10};Creating Custom Presets (Coming Soon)#
Define your own presets for team standardization:
1// .bootspring/presets/my-team.js
2module.exports = {
3 name: 'My Team Standard',
4 description: 'Standard setup for our team',
5 config: {
6 stack: { ... },
7 plugins: { ... },
8 quality: { ... }
9 }
10};