AbsoluteJS

absolute dev

Start the development server with hot module replacement across all frameworks.

#Usage

BASH
# Start development server with HMR
absolute dev

# With a custom server entry
absolute dev src/backend/server.ts

# With a custom config
absolute dev --config ./my-config.ts
absolute dev
$ absolute dev
ABSOLUTEJS v0.19.0 ready in 1.23s ➜ Local: http://localhost:3000/ ➜ Network: http://192.168.1.42:3000/

#HTTPS in Dev

AbsoluteJS can run the dev server over HTTPS with local trusted certificates and HTTP/2 when you enable dev.https.

Use it to test secure-context browser APIs like service workers, Web Crypto, and geolocation.
It improves production parity and helps catch mixed-content issues earlier.
With mkcert configured, localhost runs without browser certificate warnings.

For certificate setup and mkcert prerequisites, see the absolute mkcert documentation.

#Chrome DevTools Workspaces

In development, AbsoluteJS automatically serves/.well-known/appspecific/com.chrome.devtools.json on localhost so Chrome DevTools can detect your project and offer a workspace connection.

This route is dev-only. It is not served in production. Chrome uses it to map network files back to your local project root and keeps the mapping stable with a persisted UUID.

  • Open Chrome DevTools on a running AbsoluteJS app.
  • Chrome requests the well-known devtools JSON route.
  • In Sources -> Workspaces, Chrome offers a Connect action for the project root.
  • On Windows-hosted Chrome with WSL or Docker Desktop, AbsoluteJS rewrites Linux paths to UNC form so the workspace can mount correctly.

Example response:

JSON
{
  "workspace": {
    "root": "\\\\wsl.localhost\\Ubuntu\\home\\alex\\my-app",
    "uuid": "8e6dbf15-ff89-4fda-a640-a62416da70cc"
  }
}

#Dev Config

AbsoluteJS uses a dedicated dev config namespace for development-server-only behavior. Today it includes HTTPS and Chrome DevTools workspace settings.

The DevTools feature works automatically under absolute dev, but you can override its behavior with dev.devtools. HTTPS is also configured here through dev.https.

TS
import { defineConfig } from '@absolutejs/absolute';

export default defineConfig({
  dev: {
    https: true,
    devtools: {
      projectRoot: '.',
      uuidCachePath: '.cache/absolute/devtools-uuid',
      normalizeForWindowsContainer: true
    }
  }
});
httpsenables HTTPS in dev mode and allows the dev server to use local trusted certs and HTTP/2.
projectRootoverrides the path reported to Chrome DevTools.
uuiduses a fixed workspace UUID instead of generating one.
uuidCachePathchanges where the generated UUID is persisted between dev restarts.
normalizeForWindowsContainerrewrites Linux paths to UNC form for Chrome on Windows in WSL or Docker Desktop environments.

#Plugin Usage

If you are composing a custom Elysia server instead of relying on the built-in dev pipeline, AbsoluteJS also exposes the feature as a public plugin.

TS
import { Elysia } from 'elysia';
import { devtoolsJson, networking } from '@absolutejs/absolute';

const app = new Elysia()
  .use(devtoolsJson('build', {
    projectRoot: '.',
    uuidCachePath: '.cache/absolute/devtools-uuid'
  }))
  .get('/', () => 'hello')
  .use(networking);

Use the plugin when you want the same Chrome DevTools workspace behavior in a custom server setup without depending on prepare() internals.

#Options

[entry]Server entry file (defaults to src/backend/server.ts)
--configPath to absolute.config.ts
--hostBind to 0.0.0.0 and show network address

#Features

HMRHot module replacement for React, Svelte, Vue, Angular, HTML, and HTMX
Module serverUnbundled source serving for fast refresh
Error overlayCompilation and runtime errors displayed in the browser
File watchingAutomatic rebuild on file changes