Clinics & practices
01Dental, physio, aesthetics, veterinary
Online booking with deposits, patient records with gated notes, automated reminders, and no-show charges.
Operations, by configuration
Launch real operational apps, bookings, payments, records, workflows, storefronts, by configuration. You get a working multi-tenant backend and console in a day, not a codebase to maintain.
no per-app rebuild · no redeploy · docker or aws lambda
exclusivity: postgres gist · double-booking impossible
Configure, don't code
A strategy is the unit you switch on: booking, storefront, records, subscriptions, forms, workflow. Each one stands up its own API, console surfaces, and data model. Pick one and watch the backend change, no rebuild.
Reservable resources, real availability in the site's own timezone, deposits at booking. Exclusivity is enforced in Postgres, not hoped for in app code.
exclusivity: postgres gist · double-booking impossible
API it exposes
by end of day
A working scheduler your front desk can use before lunch.
Two readers, one product
The same platform reads two ways. Business owners see the outcomes. Developers see the guarantees underneath them.
for business owners
for developers
Batteries included
You don't wire these together. They're already one system, sharing typed contracts and a single Postgres database.
Availability & reservations
Timezone-correct slots, resource exclusivity enforced by a Postgres GiST constraint, reschedule and cancel flows.
Intents, refunds, payouts
Idempotent payment intents and refunds behind a provider adapter, so a retry never charges twice.
Plans, trials, dunning
Billing cadence with proration and a dunning ladder that retries then pauses, instead of churning quietly.
Collections & relations
Typed collections with relations, column-level policy, and cross-tier reads with no N+1 hydration.
Durable automation
An executor with durable park/resume, timers, crash recovery, and idempotent compensation.
Transactional email
Templated, tracked transactional email with a cascade of overrides, delivered idempotently.
Catalog & checkout
Products, variants, carts and checkout that hand off to payments without a separate integration.
Custom domains, storage
A domain registry with DNS verification and TLS, plus S3-backed file storage with signed URLs.
Isolation you can prove
Not a tenant_id column you have to remember to filter. Isolation is enforced in the database, on every table, for every query.
app.tenant_id before it reads or writes.row-level security is FORCED on every table, including extension tables. the app connects as a non-owner role, so a query bound to one tenant cannot read another's rows.
Your cloud, not ours
The same kernel runs as one container next to Postgres, or as per-module Lambdas behind API Gateway. Your data stays on your infrastructure.
Long-lived server
The whole kernel runs unmodified in one container next to Postgres and Redis.
one container · one box
same modules · same contracts · process differences hidden behind adapters
Where it earns its keep
These aren't demos. They're the shapes ProWork was designed around.
Dental, physio, aesthetics, veterinary
Online booking with deposits, patient records with gated notes, automated reminders, and no-show charges.
Cleaning, HVAC, salons, tradespeople
Job intake forms, scheduling per crew, quotes and invoices, and reminders that cut no-shows.
Multi-vendor storefronts & directories
A vendor per tenant, catalogs and checkout, payouts, and records that never leak across vendors.
Tools, communities, content businesses
Plans and trials, metered access, dunning, and a console your team runs without deploys.
In a day
Pick booking, storefront, records, subscriptions, forms, or a workflow, and set it in the console.
A tenant-isolated API and console are running, with real endpoints and a database behind them.
Taking bookings and payments, sending reminders, and watching runs, all without a deploy.
Create an account and stand up your first strategy today. No sales call, no per-app build.