New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

foundation-cli-monorepo

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

foundation-cli-monorepo

Foundation CLI monorepo — modular full-stack scaffolding and tooling.

latest
Source
npmnpm
Version
0.0.0
Version published
Weekly downloads
0
-100%
Maintainers
1
Weekly downloads
 
Created
Source

Foundation CLI

A modular project composition engine with a plugin ecosystem.

npx @systemlabs/foundation-cli create .

A senior developer should be able to go from zero to a running, linted, type-checked, database-connected app with auth in under 3 minutes — no manual config editing, no missing dependencies, no broken imports.

What Is This?

Foundation CLI is a dependency-aware project assembler. You describe your intent — "I want a SaaS with Next.js, Express, PostgreSQL, and JWT auth" — and the engine resolves the full dependency graph, merges configurations without conflicts, injects integration code, and produces a working project.

It is NOT:

  • A static template copier (like create-next-app or degit)
  • A code scaffolding tool (like Yeoman or Hygen)
  • A monorepo manager (like Nx or Turborepo) — though it can generate one
  • A deployment tool — it generates deployment config, not deploy artifacts

Quick Start

# One-shot bootstrap (no prior install needed)
npx @systemlabs/foundation-cli

# Or install globally for repeated use
npm install -g @systemlabs/foundation-cli
foundation create my-app

Example Session

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  FOUNDATION CLI  ·  Build your architecture in minutes
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

? Project name › my-saas-app

? What are you building?
❯ SaaS Application       ← loads smart defaults
  AI Application
  E-commerce
  API Backend
  Internal Tool
  Custom (configure everything)

? Frontend framework
❯ Next.js                ← pre-selected from SaaS defaults
  React + Vite
  Vue 3
  Svelte
  None

[ ... Backend, Database, ORM, Auth, UI, Deployment ... ]

┌─ Review & Confirm ────────────────────────────────┐
│  ✔ Frontend:    Next.js                           │
│  ✔ Backend:     Express                           │
│  ✔ Database:    PostgreSQL                        │
│  ✔ Auth:        JWT                               │
│  ✔ UI:          Tailwind CSS                      │
│  ✔ State:       None                              │
│  ✔ Deployment:  Docker                            │
└───────────────────────────────────────────────────┘

? Confirm and generate? › Yes

⠸ Resolving dependencies...
⠸ Rendering templates...
⠸ Merging configurations...
✔ Files staged (47 files)
⠸ Installing packages... [████████░░] 68%

┌─ Success ─────────────────────────────────────────┐
│  🎉 my-saas-app is ready.                         │
│                                                   │
│  cd my-saas-app                                   │
│  npm run dev                                      │
└───────────────────────────────────────────────────┘

Commands

# Create a new project (interactive)
foundation create [project-name]
foundation new [project-name]           # alias for create

# Create with an archetype preset (non-interactive / CI mode)
foundation create my-app --preset saas

# ── Module management ──────────────────────────────────────────────────────────

# Add a built-in module or third-party plugin to an existing project
foundation add orm-prisma               # built-in module by short name
foundation add auth-jwt                 # built-in module
foundation add stripe                   # official add-on plugin
foundation add foundation-plugin-redis  # community plugin from npm

# Switch a category to a different module (safely re-composes project)
foundation switch orm prisma
foundation switch backend nestjs
foundation switch database mongodb

# Search the plugin registry on npm
foundation search <query>

# ── Code generation ────────────────────────────────────────────────────────────

# Generate an ORM model with interactive field prompts
foundation generate model Post

# Generate a full CRUD scaffold (model + service + controller + routes)
foundation generate crud Post

# List all available generators
foundation generate --list

# ── Project inspection ─────────────────────────────────────────────────────────

# Show project info: stack, modules, ORM provider, plugins
foundation info

# Run health checks: Node version, env vars, module compatibility, ORM validity
foundation doctor

# Validate project.lock and foundation.config.json
foundation validate

# ── Dev automation ─────────────────────────────────────────────────────────────

# Start the development server (delegates to npm run dev)
foundation dev

# Run the test suite (delegates to npm run test)
foundation test

# Database operations — ORM-aware script delegation
foundation db migrate    # npm run db:migrate  /  alembic upgrade head
foundation db seed       # npm run db:seed
foundation db reset      # npm run db:reset
foundation db studio     # npm run db:studio   (Prisma only)
foundation db push       # npm run db:push     (Prisma only)

# ── Tooling ────────────────────────────────────────────────────────────────────

# Copy module files into your project for full customisation
foundation eject [module-id]

# Upgrade modules using the project lockfile
foundation upgrade [--dry-run]

# Scaffold a new plugin package with full SDK setup
foundation create-plugin [name]

# ── AI assistant (optional — requires API key) ─────────────────────────────────

# Describe your app in natural language; the CLI installs modules and generates
# models automatically. Requires ANTHROPIC_API_KEY or OPENAI_API_KEY.
foundation ai "create a blog system with comments and JWT auth"

Available Modules

Every option below has a fully-implemented module that generates real, compile-ready files.

Frontend

OptionModule IDKey Files Generated
Next.jsfrontend-nextjsApp Router layout, page, globals.css, next.config.mjs
React + Vitefrontend-react-viteindex.html, main.tsx, App.tsx, vite.config.ts
Vue 3frontend-vueApp.vue, main.ts, vite.config.ts
Sveltefrontend-svelteApp.svelte, main.ts, svelte.config.js, vite.config.ts

Backend

OptionModule IDKey Files Generated
Expressbackend-expressserver.ts with CORS, Helmet, health endpoint
NestJSbackend-nestjsAppModule, AppController, AppService, main.ts
FastAPIbackend-fastapiapp/main.py, requirements.txt, CORS middleware
Djangobackend-djangosettings.py, urls.py, DRF views, requirements.txt

Database

OptionModule IDKey Files Generated
PostgreSQLdatabase-postgresqlsrc/db/client.ts (node-postgres pool), 001_init.sql
MySQLdatabase-mysqlsrc/db/client.ts (mysql2 pool), 001_init.sql
MongoDBdatabase-mongodbsrc/db/client.ts (native driver), 001_init.js
SQLitedatabase-sqlitesrc/db/client.ts (better-sqlite3, WAL), 001_init.sql
Supabasedatabase-supabasesrc/db/client.ts (anon + admin clients), init migration

ORM

OptionModule IDKey Files Generated
Prismaorm-prismaprisma/schema.prisma, src/lib/db.ts (PrismaClient)
TypeORMorm-typeormsrc/data-source.ts, src/entities/User.entity.ts
Mongooseorm-mongoosesrc/lib/db.ts, src/models/User.model.ts
SQLAlchemyorm-sqlalchemysrc/database.py, src/models.py, alembic.ini

ORM modules integrate with foundation generate model and foundation generate crud — they translate portable model definitions into provider-specific schema files.

Authentication

OptionModule IDKey Files Generated
JWTauth-jwtauth.service.ts, auth.middleware.ts, auth.router.ts
OAuth (Google + GitHub)auth-oauthoauth.config.ts, oauth.router.ts (Passport.js)
Session-basedauth-sessionsession.config.ts, session.middleware.ts, session.router.ts
Clerkauth-clerkclerk.middleware.ts, clerk.router.ts, AuthProvider.tsx
Auth0auth-auth0auth0.config.ts, auth0.middleware.ts, AuthProvider.tsx

UI

OptionModule IDKey Files Generated
Tailwind CSSui-tailwindtailwind.config.js, postcss.config.js, globals.css
ShadCN/UIui-shadcntailwind.config.ts with CSS variables, components.json, utils.ts
Material UIui-muitheme.ts, MuiProvider.tsx with AppRouterCacheProvider
Chakra UIui-chakraChakraProvider.tsx with extended theme
Bootstrapui-bootstraplayout.tsx with Bootstrap import, custom.scss

State Management

OptionModule IDKey Files Generated
Zustandstate-zustandsrc/store/index.ts with devtools + persistence
Redux Toolkitstate-reduxstore/index.ts, counterSlice.ts, ReduxProvider.tsx
TanStack Querystate-tanstack-queryquery-client.ts, QueryProvider.tsx, example hooks

Deployment

OptionModule IDKey Files Generated
Dockerdeployment-dockerMulti-stage Dockerfile, docker-compose.yml with Postgres
Verceldeployment-vercelvercel.json with CORS headers, .vercelignore
Renderdeployment-renderrender.yaml Blueprint with managed PostgreSQL
AWSdeployment-awsECS task definition, GitHub Actions CI/CD workflow

Official Add-on Plugins

PluginCommandWhat It Adds
Stripefoundation add stripeStripe client, webhook handler, env config
Redisfoundation add redisRedis client with connection helpers
OpenAIfoundation add openaiOpenAI client with typed completions helper

Project Archetypes

Pick an archetype and every downstream question is pre-answered with battle-tested defaults. You can still change any selection.

ArchetypeFrontendBackendDatabaseAuthUIDeploy
SaaSNext.jsExpressPostgreSQLJWTTailwindDocker
AI AppNext.jsExpressPostgreSQLJWTTailwindDocker
E-commerceNext.jsExpressPostgreSQLJWTTailwindDocker
API BackendNoneExpressPostgreSQLJWTNoneDocker
Internal ToolNext.jsExpressPostgreSQLJWTTailwindNone
CRMNext.jsExpressPostgreSQLJWTTailwindDocker
DashboardNext.jsExpressPostgreSQLJWTTailwindDocker

Code Generation

Foundation CLI includes a built-in code generator that integrates with your active ORM.

# Interactively define fields and generate ORM schema files
foundation generate model Post

# Generate full CRUD: model + service + controller + routes
foundation generate crud Post

# List all available generators (including those from installed modules)
foundation generate --list

The generator prompts for field definitions interactively:

  Define fields for Post
────────────────────────────────────────────────────
  ℹ  "id" (uuid, primaryKey) added automatically

? Field name (empty to finish): title
? Type for "title": string  — text / varchar
? Is "title" required (non-nullable)? yes
? Is "title" unique? no
  ✔  Added: title (string)

? Field name (empty to finish):
  ℹ  "createdAt" and "updatedAt" (date, generated) added automatically

Generated files are ORM-aware:

Active ORMModel outputCRUD output
Prismaprisma/schema.prisma (model block appended)src/services/, src/controllers/, src/routes/
TypeORMsrc/entities/Post.entity.tsExpress or NestJS controllers
Mongoosesrc/models/Post.model.tsExpress controllers
SQLAlchemysrc/post.py (mapped class)FastAPI router + Pydantic schemas

Relations between models are supported via ORMRelationDefinition — providers translate many-to-one, one-to-many, one-to-one, and many-to-many into provider-specific syntax.

ORM Integration

The ORM layer uses a portable model system — feature modules declare models using a provider-agnostic format, and the active ORM provider generates the correct output.

// Any module's onRegister hook can register a model
registry.orm.registerModel({
  id:     "auth.Session",
  name:   "Session",
  fields: [
    { name: "id",        type: "uuid",   primaryKey: true, generated: true },
    { name: "token",     type: "string", required: true, unique: true },
    { name: "expiresAt", type: "date",   required: true },
  ],
  relations: [
    { name: "user", type: "many-to-one", target: "User" },
  ],
}, "auth-jwt");

This model is then translated by the active provider into:

  • Prisma → model Session { ... @relation(...) } block in schema.prisma
  • TypeORM → Session.entity.ts with @ManyToOne(() => User) decorator
  • Mongoose → Session.model.ts with userId: { type: ObjectId, ref: "User" }
  • SQLAlchemy → session.py with user = relationship("User")

Modules can also register seed functions:

registry.orm.registerSeed({
  id: "auth.adminUser",
  run: async (db) => {
    await db.create("User", { email: "admin@example.com" });
  },
}, "auth-jwt");

// Then run all seeds:
// foundation db seed

Stack Switcher

Switch your active ORM, backend, or database without manually editing files:

foundation switch orm prisma        # switch from typeorm to prisma
foundation switch backend nestjs    # switch from express to nestjs
foundation switch database mongodb  # switch from postgresql to mongodb

The CLI validates compatibility (no conflicts with remaining modules), re-composes only the affected files, and updates project.lock and foundation.config.json.

AI Assistant (Optional)

Describe your application in plain English and let the CLI install modules, generate models, and scaffold CRUD automatically.

# Requires ANTHROPIC_API_KEY or OPENAI_API_KEY in your environment
foundation ai "create a blog system with posts, comments, and JWT auth"

The CLI sends your prompt to the model with a system prompt that includes the full module catalogue. The model returns a structured plan:

{
  "modules":  ["auth-jwt", "database-postgresql", "orm-prisma"],
  "models":   [{ "name": "Post", "fields": [...] }, { "name": "Comment", "fields": [...] }],
  "generate": ["Post", "Comment"]
}

The CLI then runs foundation add for each module, foundation generate model for each model definition, and foundation generate crud for each CRUD resource — in sequence.

Setup:

# Add to your shell profile or .env:
export ANTHROPIC_API_KEY=sk-ant-...
# or
export OPENAI_API_KEY=sk-...

If no API key is set, foundation ai prints a setup guide and exits cleanly — no error.

Project Health

# Show project info: stack, modules, ORM provider, plugins
foundation info

# Run diagnostics: Node version, env vars, module compatibility, ORM validity
foundation doctor

foundation doctor output:

  Foundation Doctor
────────────────────────────────────────────────────
  ✔  Node.js version            v20.11.0 (≥ v18 required)
  ✔  Foundation project         .foundation/project.lock found
  ✔  project.lock               Valid
  ✔  foundation.config.json     Valid
  ✔  CLI version                v0.0.1
  ✔  Module registry            All 7 module(s) found
  ✔  Module compatibility       No conflicts detected
  ✔  Environment variables      All 9 key(s) present in .env
  ✔  ORM provider               Prisma (orm-prisma)
  9 passed

Plugin System

Foundation CLI is designed to grow through community plugins. A plugin is a module published to npm with the foundation-plugin keyword.

Install a Plugin

foundation add stripe
foundation add redis
foundation add openai
foundation add foundation-plugin-<name>   # any community plugin

foundation add resolves built-in module short names first (auth-jwt, orm-prisma, etc.) before hitting npm, so it works for both built-in modules and third-party plugins with the same command.

Build a Plugin

foundation create-plugin my-plugin-name

A plugin package:

foundation-plugin-stripe/
├── manifest.json        ← validated against ModuleManifest schema
├── hooks.mjs            ← lifecycle hooks (sandboxed execution)
├── files/               ← EJS template files
├── patches/             ← config patch files
└── package.json         ← must include 'foundation-plugin' keyword

Plugin Trust Tiers

TierRequirementsBenefit
CommunityPublished to npm with foundation-plugin keywordFull plugin API
VerifiedPassed security audit; pinned manifest hashShown first in foundation search
OfficialMaintained by Foundation CLI orgExtended API surface; bundled with CLI

Module Manifest Contract

Every module — first-party or third-party plugin — must conform to this schema:

interface ModuleManifest {
  id:          string;
  name:        string;
  version:     string;
  category:    "frontend" | "backend" | "database" | "orm" | "auth"
               | "ui" | "state" | "deployment" | "addon" | "generate"
               | "testing" | "tooling";
  description: string;
  runtime?:    "node" | "python" | "multi";
  provides?:   string[];            // capability tokens
  requires?:   string[];            // capability tokens this module needs
  dependencies: PackageDependency[];
  files:        FileEntry[];
  configPatches: ConfigPatch[];
  compatibility: {
    conflicts?:      string[];
    compatibleWith?: Record<string, string[]>;
    peerFrameworks?: Record<string, string>;
  };
}

Modules may export lifecycle hooks:

HookWhenNotes
onRegisterRegistry load timeORM providers register here
onBeforeComposeBefore template renderInject dynamic variables
onAfterTemplateAfter render, before mergePost-process rendered files
onMergeDuring config mergeCustom merge logic
onAfterComposeAfter all files stagedCross-module wiring
beforeWriteBefore file-write transaction commits—
afterWriteAfter file-write transaction commits—
beforeInstallBefore package manager runs—
afterInstallAfter package manager completesRun post-install scripts
onFinalizeAfter full successPrint post-install instructions
onRollbackOn any failureClean up side-effects
onGenerateBefore generator writes filesExtend generated output
onStartWhen foundation dev is invokedDev-time setup
onBuildWhen foundation build is invokedBuild-time steps

Architecture

Foundation CLI is built around six subsystems that communicate through typed interfaces. No subsystem writes directly to disk — all file operations go through the FileTransaction model.

Data Flow

CLI Args + ENV
      │
      ▼
PromptGraph Engine ──► SelectionMap
      │
      ▼
Module Registry.resolve(selections) ──► ModuleInstance[]
      │
      ▼
Dependency Resolver ──► ResolvedPlan | ConflictReport
      │  (abort on unresolved conflicts)
      ▼
Composition Engine ──► ExecutionPlan (topological order)
      │        │
      │        └──► ORM Service ──► Schema FileEntries
      │                  (registry.orm.buildSchemaFiles())
      ├──► Template Engine ──► RenderedFiles  (EJS)
      │
      └──► Merge Engine ──► MergedConfigs
                │
                ▼
         FileTransaction.stage(files)
                │
                ▼
         FileTransaction.commit() ──► Output Directory
                │
                ▼
         Installer ──► npm install / pip install
                │
                ▼
         CLI Output: Summary Screen

Key Subsystems

PromptGraph Engine — A DAG of prompt nodes. Questions only appear when their when predicate is satisfied. Each node can inject defaults via onAnswer hooks, powering the archetype system.

Dependency Resolver — Resolves the full module graph using capability tokens. Detects conflicts, performs topological sort via Kahn's algorithm, and auto-injects missing capability providers (with interactive selection prompts for alternatives).

ORM Service (registry.orm) — Portable model layer. Stores one active ORMProvider and an ordered model map. buildSchemaFiles() delegates to the provider which translates ORMModelDefinition[] (including relation definitions) into provider-specific FileEntry[]. Supports seed registration via registerSeed() / runSeeds().

Generator Service (registry.generators) — Registry of code generators. Modules register generators in onRegister; foundation generate <id> invokes them. Built-in generators: model and crud.

File Merge Engine — Type-aware merging: deep merge for package.json/tsconfig.json, key-deduplication for .env, semver intersection for requirements.txt, service-merge for docker-compose.yml.

FileTransaction — Atomic file operations. All writes are staged to a temp directory. On any failure the temp dir is deleted and the output directory is left untouched. No partial scaffolds.

Monorepo Structure

foundation-cli/
├── packages/
│   ├── cli/                            ← user-facing commands + prompts
│   │   └── src/
│   │       ├── commands/               ← create, new, add, switch, generate,
│   │       │                               info, doctor, dev, db, test,
│   │       │                               eject, upgrade, validate,
│   │       │                               search, plugins, create-plugin, ai
│   │       ├── prompt/                 ← PromptGraph engine, archetypes, DAG
│   │       ├── execution/env-writer.ts ← .env / .env.example merge writer
│   │       ├── conflict-resolver.ts    ← interactive version conflict resolution
│   │       └── ui/renderer.ts          ← terminal output (Chalk, Ora)
│   │
│   ├── core/                           ← engine (no CLI deps)
│   │   └── src/
│   │       ├── composition/            ← CompositionPlanner (ORM-aware)
│   │       ├── dependency-resolver/    ← graph.ts, resolver.ts
│   │       ├── execution/              ← pipeline, hook-runner (14 hooks),
│   │       │                               config-merger, dependency-installer
│   │       ├── generator/              ← GeneratorService, GeneratorDefinition
│   │       ├── orm/                    ← ORMService, providers, relations, seeder
│   │       ├── file-merger/            ← json-merge.ts, requirements-merge.ts
│   │       ├── file-transaction.ts     ← atomic stage → commit / rollback
│   │       ├── module-registry/        ← registry (orm + generators), loader
│   │       ├── plugin-installer/       ← npm-fetcher, plugin-installer
│   │       ├── sandbox/                ← sandboxed hook execution
│   │       ├── state/                  ← lockfile, project-state
│   │       └── templating/render.ts    ← EJS template engine
│   │
│   ├── modules/                        ← all built-in modules
│   │   └── src/
│   │       ├── frontend/               ← nextjs, react-vite, vue, svelte
│   │       ├── backend/                ← express, nestjs, fastapi, django
│   │       ├── database/               ← postgresql, mysql, mongodb, sqlite, supabase
│   │       ├── orm/                    ← prisma, typeorm, mongoose, sqlalchemy
│   │       ├── auth/                   ← jwt, oauth, session, clerk, auth0
│   │       ├── ui/                     ← tailwind, shadcn, mui, chakra, bootstrap
│   │       ├── state/                  ← zustand, redux, tanstack-query
│   │       ├── deployment/             ← docker, vercel, render, aws
│   │       └── addon/                  ← stripe, redis, openai
│   │
│   ├── plugin-sdk/                     ← public plugin contract (zero runtime deps)
│   │   └── src/
│   │       ├── types.ts                ← PluginDefinition, ModuleManifest, 14 hooks
│   │       ├── schema.ts               ← JSON Schema for manifest validation
│   │       └── validate.ts             ← validateManifest()
│   │
│   └── testing/                        ← shared test utilities
│       └── src/
│           ├── fixtures.ts             ← makeManifestFixture(), createTempDir()
│           └── index.ts
│
├── pnpm-workspace.yaml
└── turbo.json

Development

Prerequisites

  • Node.js ≥ 18
  • pnpm ≥ 9

Setup

git clone https://github.com/your-org/foundation-cli
cd foundation-cli
pnpm install
pnpm turbo build

Development Workflow

# Build all packages in dependency order (with caching)
pnpm turbo build

# Watch mode — rebuild on change
pnpm turbo dev

# Type-check all packages
pnpm turbo typecheck

# Run all tests
pnpm turbo test

# Run the CLI locally
node packages/cli/dist/bin.js create

Build Order

Packages must build in this order (enforced by turbo.json dependsOn: ["^build"]):

plugin-sdk → core → modules → cli

Adding a New Module

  • Create packages/modules/src/<category>/<name>.ts following an existing module
  • Export a PluginDefinition with a unique id and category
  • Add the export to packages/modules/src/index.ts
  • Add the import + entry to BUILTIN_MODULES in packages/modules/src/registry-loader.ts
  • Add the selection → module ID mapping to SELECTION_TO_MODULE_ID
  • Add a choice entry to packages/cli/src/prompt/graph-definition.ts

For ORM modules, also implement ORMProvider.buildSchemaFiles() including relation support, and register the provider in the onRegister hook via registerProviderFromContext.

Testing

pnpm turbo test                  # all packages
cd packages/core && pnpm test    # core only
cd packages/modules && pnpm test
cd packages/cli && pnpm test

Test strategy:

  • Unit (Vitest) — resolver, merger strategies, manifest validation, ORM service, generator service
  • Integration — compose 2–5 modules, validate output file structure
  • Snapshot — generated file content for known-good combinations
  • Compilation — generated TypeScript/Python compiles with zero errors

Configuration Files

.foundation/project.lock

Records exact module versions, plugin versions, and CLI version. Read by foundation upgrade, foundation switch, foundation info, and foundation doctor.

.foundation/foundation.config.json

Stores user selections and installed plugins. Read by foundation add, foundation switch, foundation generate, and foundation eject.

Roadmap

PhaseStatusHighlights
Phase 0 — Skeleton✅ DoneMonorepo, TypeScript interfaces, FileTransaction, CI
Phase 1 — Foundation Fixes✅ DoneORMFieldType, build order, relation fields, ORM providers
Phase 2 — Observability✅ Donefoundation info, foundation doctor
Phase 3 — Dev Automation✅ Donefoundation dev/db/test, dependency-aware add, conflict detection, recommendations
Phase 4 — Code Generators✅ DoneGeneratorService, foundation generate model/crud, onGenerate hook
Phase 5 — ORM Extensions✅ DoneRelation fields (all 4 providers), SeederService
Phase 6 — Ecosystem✅ Donefoundation switch, built-in module short-name resolution
Phase 7 — AI Assistant✅ Donefoundation ai (opt-in, API key gated)

Tech Stack

PurposeLibraryNotes
Prompts@inquirer/promptsInteractive terminal prompts
Terminal colorchalkColored output
SpinnersoraProgress indicators
TemplatingejsFile template rendering
JSON SchemaajvManifest validation
YAMLjs-yamldocker-compose merge
Process executionexecaPackage manager invocation
BuildtsupZero-config TypeScript bundler
TestsvitestUnit + integration tests
Monorepopnpm + turboWorkspace + cached builds

License

MIT — see LICENSE for details.

Foundation CLI — Designed for longevity. Built for scale.

Keywords

cli

FAQs

Package last updated on 15 Mar 2026

Related posts