Skip to main content

Creem as Code (CLI-based product & billing configuration)

Introduce a “Creem as Code” approach that allows developers to define products, prices, subscriptions, and bundles directly in code (e.g. TypeScript) and sync them to Creem via a CLI.

Use case:
Similar to how Convex manages backend schema and functions through code + CLI sync, teams could version-control their billing setup, review changes in pull requests, and keep environments in sync.

This would be especially powerful in LLM-driven workflows: models can define products, wire up UI, and validate billing logic in one flow — with immediate CLI feedback — enabling a fully code-centric, automatable billing setup for modern software teams.

1 comment

Log in to comment and vote

Comments1

  • Micha

    •

    Mar 11

    My impression is that the CLI is already great for operational management and scripting, but it’s not yet a declarative “Creem as Code” workflow similar to how Convex manages backend and schema with npx convex dev.

    The motivation behind the feature request was mainly to manage billing with the same developer workflow as the rest of the stack. That becomes especially powerful in modern AI/LLM-driven workflows, where models can define products, wire up UI, and validate billing logic in one flow if billing configuration can live in code and sync through a CLI.

    Right now the CLI mainly supports:

    • list/get/create products

    • list/get discounts

    • store operations (customers, subscriptions, transactions)

    • JSON output for scripting

    For a real “Creem as Code” workflow the main missing pieces seem to be:

    CLI coverage

    • update/archive products

    • create/update/delete bundles

    • create/update/delete discounts

    Declarative workflow

    • pull remote config into code

    • schema validation for billing config

    • environment promotion (test → live)

    • state tracking / reconciliation (diff + drift detection)

    The interesting challenge compared to Convex is that Creem can be edited both in code and in the dashboard, so sync probably can’t be purely one-way.

    One possible direction could be something like npx creem dev backed by a small reconciliation layer:

    • Creem keeps a change history for config items (products/bundles/discounts)

    • the history distinguishes dashboard edits vs code sync

    • local keeps a synced copy of that history

    • on sync the CLI compares local files, remote state, and the last sync state

    That would allow the engine to infer cases like:

    • new local item → create remotely

    • new remote item → pull into code

    • local item removed → archive/delete remotely

    • both sides changed → conflict / resolution

    It also feels like good synergy with audit-log needs for larger teams.

    So the main gap I meant with the feature request is less about adding individual CLI commands and more about enabling a code-centric billing sync workflow.

    Happy to share more thoughts if useful 🙂