to navigate
to select
esc to close
Guides Intermediate

Liquiditor - Local Theme Development

Liquiditor is Airogel CMS's local-first Liquid theme previewer, backed by SQLite for exact rendering parity with the live CMS. Its CLI can also register a brand-new account and activate a subscription entirely from the terminal.

What is Liquiditor?

Liquiditor is a local-first theme development environment for Airogel CMS. It runs a small Sinatra app that renders your Liquid templates against a local SQLite database instead of the live CMS, using the exact same Liquid tags, filters, and variable scoping as production. That means a template that renders correctly in Liquiditor will render identically once synced to your CMS account.

Why use it

  • Fast local iteration with live reload — no need to push every template change to the CMS to see it
  • The same custom Liquid tags/filters as the CMS ({% form_for %}, {% paginate %}, asset_url, image_tag, and more)
  • A per-theme Tailwind v4 + esbuild + Stimulus front-end pipeline
  • A built-in AI chat widget (Pi) for AI-assisted theme editing in the browser preview
  • Two-way sync: pull content/templates down from the CMS, push template and asset changes back up

Where to find it

Liquiditor is open source and lives in its own repository: github.com/airogel/liquiditor. It's a standalone Sinatra app with its own Gemfile, Rakefile, and bin/dev launcher, so it runs entirely independently of the main Airogel CMS application — clone it and point it at your account's API credentials to get started.

git clone https://github.com/airogel/liquiditor.git
cd liquiditor
liquiditor/
├── liquiditor.rb       # Sinatra app (rendering, live reload, uploads)
├── bin/airogelcms      # CLI for account setup + CMS sync
├── lib/                # Liquid tags/filters mirroring the CMS
└── themes/{theme}/     # Your local theme(s): templates, assets, JS/CSS

Quick start

bundle install

# Scaffold a new local theme
bundle exec rake "create_theme[my_theme]"

# Install the theme's JS/CSS dependencies
cd themes/my_theme && yarn install && cd ../..

# Start the dev server (web + CSS/JS watchers + Pi agent)
source .env_vars && bin/dev

Then open http://localhost:4567 to see your theme.

Sign up and create accounts from the command line

Liquiditor's bin/airogelcms CLI can do more than sync themes — it can create a brand-new Airogel CMS account and activate a paid subscription without ever opening the dashboard. This is the fastest path from zero to a working account for scripting, testing, or onboarding automation.

Full flow: brand-new user

1. register              → creates user + account + API token
2. list_plans            → shows available plans and their IDs
3. subscription_checkout → generates a Stripe Checkout URL to open in browser
4. (pay in browser)
5. subscription_status   → confirms the subscription is active
6. download_theme        → pulls templates and content to start working locally

1. Register a new user + account

register creates a new user, a new account, and a permanent API token in a single request. It doesn't need an existing .env — only the API URL, which defaults to production.

bin/airogelcms my_theme register \
  --name="Jane Doe" \
  --email=jane@example.com \
  --password=yourpassword \
  --account_name="Jane's Site"

The response includes the new account.id and a one-time api_token, plus a ready-to-paste .env block:

AIROGEL_API_URL=https://api.airogelcms.com
AIROGEL_ACCOUNT_ID=acct_xxx
AIROGEL_API_KEY=a1b2c3d4e5f6...

Save the API token immediately — it's only returned once. If it's lost, generate a new one from the CMS Dashboard under Settings → API Tokens.

2. List available plans

bin/airogelcms my_theme list_plans
bin/airogelcms my_theme list_plans --interval=month

3. Subscribe via Stripe Checkout

bin/airogelcms my_theme subscription_checkout --plan=plan_abc123

This returns a checkout_url to open in a browser to complete payment.

4. Confirm the subscription

bin/airogelcms my_theme subscription_status

5. Pull the theme

bin/airogelcms my_theme download_theme

Creating additional accounts

Once authenticated (a theme with a valid .env), the CLI can also spin up extra accounts for managing multiple sites under the same user — no dashboard required:

bin/airogelcms my_theme create_account --name="My Second Site"

The response includes the new account's id. Point a new theme directory's .env at it (or update AIROGEL_ACCOUNT_ID) to start working with that account.

Already have an account?

Skip registration and just fill in .env with credentials from the CMS Dashboard (Settings → API):

AIROGEL_API_URL=https://api.airogelcms.com
AIROGEL_ACCOUNT_ID=acct_xxxxxxxxxxxxx
AIROGEL_API_KEY=your_api_key_here
bin/airogelcms my_theme list_collections

Two-way CMS sync

CommandWhat it does
download_themePulls database, templates, and assets from the CMS
upload_templatesPushes local .liquid files to the CMS
upload_assetsPushes local theme assets to the CMS
download_templatesPulls just the templates from the CMS to local files

Liquiditor is local-first: editing files or the local database.sqlite3 never auto-publishes anything. Use the CLI's upload commands (or CRUD actions like update_entry) to push changes live.