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 liquiditorliquiditor/
├── 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/CSSQuick 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/devThen 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 locally1. 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=month3. Subscribe via Stripe Checkout
bin/airogelcms my_theme subscription_checkout --plan=plan_abc123This returns a checkout_url to open in a browser to complete payment.
4. Confirm the subscription
bin/airogelcms my_theme subscription_status5. Pull the theme
bin/airogelcms my_theme download_themeCreating 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_herebin/airogelcms my_theme list_collectionsTwo-way CMS sync
| Command | What it does |
|---|---|
download_theme | Pulls database, templates, and assets from the CMS |
upload_templates | Pushes local .liquid files to the CMS |
upload_assets | Pushes local theme assets to the CMS |
download_templates | Pulls 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.