QoreDB LogoQoreDB
Back to blog
Open SourceTechnical journal

QoreDB's open-core model: what's free, what isn't

When you build a tool solo, the question of the business model comes up fairly quickly. QoreDB started as a pure open source project. After a few months of intensive development and a public V1, I chose to move to an open-core model: part of the code stays under Apache 2.0, part…

Raphaël – Creator of QoreDBRaphaël – Creator of QoreDB
3 min readUpdated Jul 18, 2026
QoreDB's open-core model: what's free, what isn't

When you build a tool solo, the question of the business model comes up fairly quickly. QoreDB started as a pure open source project. After a few months of intensive development and a public V1, I chose to move to an open-core model: part of the code stays under Apache 2.0, part moves to BUSL-1.1. Here's what that means concretely, and why I made that choice.

Open-core, not freemium

Open-core isn't freemium with code stripped out. It's a model where the heart of the product is free, open source, modifiable, distributable. The advanced, power-user or typically team-oriented features are commercial. The distinction is technical and contractual - not just an arbitrary limit to force an upgrade.

For QoreDB, the dividing line is clear: everything that touches the foundations (drivers, SQL editor, DataGrid, vault, production protections) is Core. The advanced analysis and comparison tools, the specialized exports and AI move into Pro.

The Core scope (Apache 2.0)

The Core covers everything a developer needs day to day. The native drivers for PostgreSQL, MySQL, MongoDB, SQLite, Redis, DuckDB, SQL Server and CockroachDB are all open source. The SQL editor with schema-aware autocompletion, the DataGrid with virtualization and inline editing, transactions, SSH tunnels, the Argon2 encrypted vault, the production protections (mutation blocking, destructive-query detection), cross-database federation via DuckDB, the query library, CSV/JSON/SQL/HTML export - all of it is under Apache 2.0.

Apache 2.0 means: free to read, modify, distribute, and use commercially, with no condition other than crediting the original license. No usage restriction is attached to these components.

The Premium scope (BUSL-1.1)

The Pro features go beyond standard daily use. Sandbox Mode (test changes without touching the database, generate migrations), the Visual Data Diff (compare two result sets side by side), the interactive ER diagram, the advanced audit log and query profiling, XLSX and Parquet exports, custom safety rules, and the BYOK AI assistant (with your own API key, no QoreDB backend) - these components are under the Business Source License 1.1.

The main difference from Apache 2.0: a restriction on commercial use without a purchased license. The BUSL includes an automatic conversion clause: after 3 to 4 years, the code moves to Apache 2.0. It's a temporarily restrictive license, not proprietary indefinitely. All the Pro code will therefore one day be fully free.

The technical mechanism of the split

Every source file carries an SPDX header. Core files start with // SPDX-License-Identifier: Apache-2.0, Premium files with // SPDX-License-Identifier: BUSL-1.1. This isn't just a declaration - it feeds license-compliance tooling and makes auditing the scope trivial.

On the Rust side, premium features are managed through Cargo feature flags (pro, team, enterprise). The publicly distributed binary is compiled without those flags. The premium code is physically not present in the Core build - not just disabled, absent. On the frontend, premium components are wrapped with a LicenseGate component that checks the license tier at render time.

License verification is entirely offline: an Ed25519 key signed server-side, verified locally with the public key embedded in the binary. No network request at startup, no validation server to contact. This is consistent with QoreDB's local-first philosophy: the application works without connectivity, including for entitlement checks.

What will never change

One rule applies without exception: no feature already distributed for free will ever be reclassified as Premium. The split was defined before the stable public V1, and what Apache 2.0 covers today will stay Apache 2.0. Open-core only works if users can trust it over the long run.

QoreDB's open-core model answers a simple need: letting a solo project last. The Core stays whole, freely distributed, never pared down. The Pro features fund ongoing development. The dividing line is documented in the code, auditable by anyone, and the BUSL-to-Apache 2.0 conversion is contractually guaranteed. It's a model that tries to be honest with its users and viable for its creator.

Newsletter

Stay updated on new releases

Subscribe to get product releases, new drivers notifications, and technical tutorials.

🎁 Bonus: Get our free SQL Performance Cheat Sheet — 9 pages, PostgreSQL / MySQL / SQLite (PDF)!
Share
QoreDB's open-core model: what's free, what isn't - Blog - QoreDB