Free while you build
€100 a month once your application is live with a small team, then fixed steps as it grows. Drag the slider to find your step — every price it shows is a row in the table, nothing is calculated.
8 users on your live application
Not live yet501+
One price per application. Prices exclude VAT.
Everything included. Always.
No feature gates. No “upgrade to unlock.” You get the full platform at every step.
Backend
- ✓createApp() with security defaults
- ✓Auth middleware (JWT, OAuth)
- ✓DB client hierarchy (6 levels)
- ✓Config-driven query engine
- ✓Billing (Stripe + Mollie)
- ✓Email (Mailgun, SMTP, Gmail)
- ✓Storage (upload + image processing)
- ✓Planner (Google Calendar)
Frontend
- ✓20+ React components
- ✓FeatureTable, FeatureForm
- ✓ListDetailLayout
- ✓BookingWidget, WeekCalendar
- ✓Design tokens for theming
- ✓Mobile-responsive
- ✓InfiniteGrid, ChatPanel
- ✓ApiTokensPage
Tooling
- ✓tetra-audit (12 security checks)
- ✓tetra-migration-lint
- ✓tetra-init-tests (scaffolding)
- ✓tetra-test-audit (gap detection)
- ✓tetra-smoke (post-deploy)
- ✓tetra-security-gate
- ✓CI/CD ready
- ✓Pre-commit hooks
Frequently asked questions
How do I get access to the packages?
Your licence gets your GitHub account read access to the @soulbatical packages, which live on GitHub Packages rather than the public npm registry. You then create a Personal Access Token with scope read:packages and put it in NPM_TOKEN — we never see it, and it stays yours. Production also needs the signed licence key we issue, in TETRA_LICENSE_KEY.
What counts as a user?
Someone who logs into the application you built with Tetra. Not website visitors, not API calls — only people with an account who actually sign in.
What is free, exactly?
The whole platform, in two situations: while your application is not live yet, and while you are the only person using it. Nothing is time-limited and nothing is crippled. Paying starts at the second user on a live application.
How do you check how many users I have?
We don't. You pick the step that matches your application and confirm it once a year. Your licence key carries an Ed25519 signature that is verified on your own server — that check never leaves it, and we have no access to your database.
Does Tetra phone home?
Yes, and you can switch it off. A running Tetra backend sends us a heartbeat with: a SHA-256 hash of your licence key (never the key), the customer name and plan on that licence, its expiry date and its organisation and user limits, your project name, the machine's hostname, the Tetra and Node versions, the environment, the port, and how long the process has been up. It is how we know which versions are still in the field. Set telemetry: false in createApp(), or TETRA_TELEMETRY=false in your environment, and nothing is sent at all.
How often, and does it ever send usage figures?
Hourly by default, but our server can change that interval in its reply, down to a minimum of one minute and up to a week. Usage figures are only sent if you write the function that supplies them: configure a usageProvider and you decide what goes in — typically organisation and user counts, your public URLs, request count and memory. Without one, no usage data leaves your server.
Are there feature limits per step?
No. Every paying customer gets the full platform: auth, billing, database security, CRM, planner, CMS, messaging, all UI components and the complete dev toolkit. The only variable is how big your application is.
What happens when I outgrow a step?
You move to the next one. The steps are deliberately small — your bill never doubles because you hired one person, and it drops again if your application shrinks.
Do I own what I build?
Yes. You write the code, you host it, you keep it. Tetra is a dependency in your project, not a platform your product lives on. Cancel and your application is still yours — you just stop getting updates.
What payment methods do you accept?
Stripe (credit card, SEPA) and Mollie (iDEAL, Bancontact, credit card). You choose during checkout.
Can I cancel anytime?
Yes. Cancel whenever you like, no questions asked. Your subscription runs until the end of the billing period.
What about the open source version?
The core of the framework is MIT licensed and always free. The licence covers the maintained platform on top of it — the modules, the security work, and the updates that keep it running.
Ready to build?
Install Tetra and start building. It stays free until you go live.
@soulbatical:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=${NPM_TOKEN}
npm install @soulbatical/tetra-core