Overview
A CLI tool to scaffold new AbsoluteJS projects quickly and effortlessly.
Scaffolding tool that bootstraps new AbsoluteJS applications with an interactive CLI. Configure frameworks, databases, auth, and tooling in one command.
View on GitHubCreate a new AbsoluteJS project in seconds:
bun create absolutejs my-appThe CLI guides you through an interactive setup for:
Frontends
React, Svelte, Vue, HTMX, HTML
Databases
PostgreSQL, MySQL, MariaDB, SQLite, Turso, SQL Server, CockroachDB, SingleStore, MongoDB
Tooling
Drizzle 1.0 or Prisma 7, Tailwind, ESLint or Biome
After running Create-AbsoluteJS, your project includes an organized src/ folder with separate frontend and backend directories, pre-configured settings, and all necessary dependencies installed.
| Script | Description |
|---|---|
bun dev | Start the development server with hot reload |
bun build | Build the project for production |
bun lint | Run code quality checks |
bun format | Format code with configured formatter |
bun typecheck | Run TypeScript type checking |
bun db:generate | Drizzle: diff db/schema.ts into a new committed migration. Prisma: run prisma generate |
bun db:migrate | Apply committed migrations (drizzle-kit migrate or prisma migrate deploy; prisma db push on MongoDB) |
bun db:migrate:dev | Prisma on a SQL database: author a new migration |
bun db:studio | Open Drizzle Studio or Prisma Studio |
bun db:up / db:down / db:reset | Start, stop, or wipe the local Docker database (local engines other than SQLite) |
bun db:<engine> | Open a shell in the local database container, e.g. bun db:postgresql |
Start developing:
cd my-app
bun run devCustomize your setup with command-line flags to skip prompts or pre-configure options:
| Flag | Description |
|---|---|
--help, -h | Show help message and exit |
--debug, -d | Display a summary of project configuration after creation |
--skip | Skip non-required prompts; uses defaults and "absolutejs-project" if no name provided |
--install | Use the same package manager to install dependencies |
--git | Initialize a Git repository |
--lts | Use LTS versions of required packages |
--directory <mode> | Directory-naming strategy: "default" or "custom" |
--react | Include a React frontend |
--react-dir <directory> | Specify the directory for and use the React frontend |
--svelte | Include a Svelte frontend |
--svelte-dir <directory> | Specify the directory for and use the Svelte frontend |
--vue | Include a Vue frontend |
--vue-dir <directory> | Specify the directory for and use the Vue frontend |
--angular | Include an Angular frontend |
--angular-dir <directory> | Specify the directory for and use the Angular frontend |
--htmx | Include an HTMX frontend |
--htmx-dir <directory> | Specify the directory for and use the HTMX frontend |
--html | Include a plain HTML frontend |
--html-dir <directory> | Specify the directory for and use the HTML frontend |
--html-scripts | Enable HTML scripting with TypeScript |
--db <engine> | Database engine: postgresql, mysql, mariadb, sqlite, singlestore, cockroachdb, mssql, mongodb, gel, or none |
--db-dir <directory> | Directory name for your database files |
--db-host <host> | Hosted database: neon (postgresql), planetscale (postgresql or mysql), turso (sqlite), or none |
--orm <orm> | ORM to configure: drizzle (every engine except mongodb and gel), prisma (every engine except singlestore and gel), or none |
--auth <plugin> | Pre-configured auth plugin: "abs" or none |
--abs-provider | A provider for Absolute-Auth (e.g., google, github, discord) |
--assets <directory> | Directory name for your static assets |
--build <directory> | Output directory for build artifacts |
--plugin <plugin> | Elysia plugin(s) to include (repeatable); "none" skips plugin setup |
--tailwind | Include Tailwind CSS setup |
--tailwind-input <file> | Path to your Tailwind CSS entry file |
--tailwind-output <file> | Path for the generated Tailwind CSS bundle |
--biome | Use Biome for code quality and formatting |
--eslint+prettier | Use ESLint + Prettier for code quality and formatting |
Pick an engine with --db and an ORM with --orm. Combinations the CLI cannot scaffold (Drizzle on MongoDB or Gel, Prisma on SingleStore or Gel, a host with the wrong engine) are refused before any file is written.
# Drizzle 1.0 on a local PostgreSQL container
bun create absolutejs my-app --react --db postgresql --orm drizzle --skip --install
cd my-app
bun db:up # start the Docker database
bun db:migrate # apply the committed initial migration
# Prisma 7.10 on SQL Server
bun create absolutejs my-app --react --db mssql --orm prisma --skip
# Prisma 6.19 on MongoDB (Prisma 7 does not support MongoDB)
bun create absolutejs my-app --react --db mongodb --orm prisma --skip
# Drizzle on Turso (libSQL)
bun create absolutejs my-app --react --db sqlite --db-host turso --orm drizzle --skip
# Gel has no ORM scaffold
bun create absolutejs my-app --react --db gel --orm none --skipLocal Development
Automatic Docker Compose setup with pre-configured containers, environment variables, and scripts.
Hosted Providers
Scaffolds connection code for Neon (PostgreSQL), PlanetScale (PostgreSQL or MySQL), and Turso (SQLite). These are type-checked but not yet exercised against the live hosted services.
Code Quality Tools
Choose between ESLint + Prettier or Biome, both fully configured with sensible default rules out of the box.
Tailwind CSS
Optional utility-first CSS framework setup
Absolute Auth
Pre-configured OAuth 2.0 authentication
ORM Integration
Drizzle for PostgreSQL, MySQL, MariaDB, SQLite, Turso, SingleStore, SQL Server and CockroachDB; Prisma 7.10 for the same engines except SingleStore, and Prisma 6.19 for MongoDB. Every SQL scaffold ships a committed initial migration, and each engine is checked against a real local database.
Current package surface
Outcomes
A CLI tool to scaffold new AbsoluteJS projects quickly and effortlessly.
Scaffold a new project called :
Arguments
Hardening checklist
Follow in order