AbsoluteJS

Create AbsoluteJS

Scaffolding tool that bootstraps new AbsoluteJS applications with an interactive CLI. Configure frameworks, databases, auth, and tooling in one command.

View on GitHub

#Quick Start

Create a new AbsoluteJS project in seconds:

BASH
bun create absolutejs my-app

The 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

#Project Overview

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.

Available Scripts

ScriptDescription
bun devStart the development server with hot reload
bun buildBuild the project for production
bun lintRun code quality checks
bun formatFormat code with configured formatter
bun typecheckRun TypeScript type checking
bun db:generateDrizzle: diff db/schema.ts into a new committed migration. Prisma: run prisma generate
bun db:migrateApply committed migrations (drizzle-kit migrate or prisma migrate deploy; prisma db push on MongoDB)
bun db:migrate:devPrisma on a SQL database: author a new migration
bun db:studioOpen Drizzle Studio or Prisma Studio
bun db:up / db:down / db:resetStart, 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:

BASH
cd my-app
bun run dev

#CLI Options

Customize your setup with command-line flags to skip prompts or pre-configure options:

FlagDescription
--help, -hShow help message and exit
--debug, -dDisplay a summary of project configuration after creation
--skipSkip non-required prompts; uses defaults and "absolutejs-project" if no name provided
--installUse the same package manager to install dependencies
--gitInitialize a Git repository
--ltsUse LTS versions of required packages
--directory <mode>Directory-naming strategy: "default" or "custom"
--reactInclude a React frontend
--react-dir <directory>Specify the directory for and use the React frontend
--svelteInclude a Svelte frontend
--svelte-dir <directory>Specify the directory for and use the Svelte frontend
--vueInclude a Vue frontend
--vue-dir <directory>Specify the directory for and use the Vue frontend
--angularInclude an Angular frontend
--angular-dir <directory>Specify the directory for and use the Angular frontend
--htmxInclude an HTMX frontend
--htmx-dir <directory>Specify the directory for and use the HTMX frontend
--htmlInclude a plain HTML frontend
--html-dir <directory>Specify the directory for and use the HTML frontend
--html-scriptsEnable 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-providerA 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
--tailwindInclude Tailwind CSS setup
--tailwind-input <file>Path to your Tailwind CSS entry file
--tailwind-output <file>Path for the generated Tailwind CSS bundle
--biomeUse Biome for code quality and formatting
--eslint+prettierUse 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.

BASH
# 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 --skip

#Configuration Options

Database Options

Local 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.

Additional Features

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

What ships today

create-absolutejsv0.20.3 · betaDev Toolsnpm

Outcomes

What you can build

Overview

A CLI tool to scaffold new AbsoluteJS projects quickly and effortlessly.

Usage

Scaffold a new project called :

Options

Arguments

Hardening checklist

Production guidance

Make every external boundary explicitPin the deployed create-absolutejs version, replace example or memory-backed dependencies with durable implementations, bound external calls, protect credentials, and emit enough evidence to retry or recover safely.

Follow in order

Troubleshooting path

1
Debug & LTS Flags
--debug, -d