Installation#

SignalX can be installed in several ways depending on your project setup.

Create a New Project#

The fastest way to get started is with our CLI:

Terminal
pnpm create @sigx@latest my-app

This will scaffold a new project with:

  • Vite for development and building
  • TypeScript configuration
  • SignalX and the Vite plugin pre-configured

Add to Existing Project#

Using npm#

Terminal
pnpm add sigx @sigx/vite

Using pnpm#

Terminal
pnpm add sigx @sigx/vite

Using yarn#

Terminal
pnpm add sigx @sigx/vite

Configure Vite#

Add the SignalX plugin to your Vite configuration:

TypeScript
// vite.config.ts
import { defineConfig } from 'vite';
import { sigxPlugin } from '@sigx/vite';

export default defineConfig({
    plugins: [sigxPlugin()],
});

TypeScript Configuration#

For the best TypeScript experience, update your tsconfig.json:

JSON
{
    "compilerOptions": {
        "jsx": "preserve",
        "jsxImportSource": "sigx",
        "moduleResolution": "bundler"
    }
}

Package Versions#

SignalX follows semantic versioning. The versions below are pulled from npm at build time, so they track the current latest release without hand-editing (falling back to the last committed values if npm is unreachable):

PackageVersionDescription
sigxv0.13.0Core runtime
@sigx/vitev0.13.0Vite plugin
@sigx/routerv0.9.0Client-side router
@sigx/storev0.10.0State management
@sigx/daisyuiv0.9.0UI components

Development and Production Builds#

Every SignalX package ships two builds:

  • dist/*.js — the development build: dev warnings, the devtools integration, and runtime process.env.NODE_ENV checks.
  • dist/*.prod.js — the production build: warnings and the devtools plumbing are compiled out.

Bundlers pick the right one automatically through the development / production export conditionsVite needs no configuration. A vite build resolves the production build; vite dev resolves the development build. Resolvers that don't understand those conditions fall back to the development build, where a consumer-side NODE_ENV define still strips the dev branches — the same behavior as before.

For plain Node SSR (running the server renderer outside a bundler), opt into the stripped build with the production condition:

Terminal
node --conditions=production server.js

There's nothing to configure in your app — devtools and dev-only warnings simply disappear from production output.

Next Steps#