Tables & Views
Typed columns, filters and sorts — structured data with a real UI, not a spreadsheet.
A hackable desktop database tool where everything lives in a single portable .dbcool file — a fully free desktop version, forever. No subscriptions, no lock-in.
Edit your notebook
Welcome to your workspace. Tables hold the structured data, notebooks hold the write-up — both live in the same .dbcool file.
Powerful data management without the bloat, subscriptions, or complexity.
Structure records in typed tables, slice them with filterable views, and tie it all together in rich Markdown notebooks — all against the same live data.
Your entire workspace — tables, notebooks, and views — lives in one .dbcool SQLite file. Carry it anywhere, back it up with a copy.
A fully free desktop app, forever. Your data lives in a file only you control — no account, no telemetry, nothing required to open what's yours.
A clean, fast UI built with React and Tailwind. Swap themes, customise layouts, and make dbcool truly yours.
Extend dbcool with custom cell types and full-page tabs. Write plugins in any language that compiles to JavaScript — React, vanilla JS, or TypeScript.
AI-powered assistance for your data and workflows. Coming soon.
More features coming soon…
What's already shipped, what's underway, and what's next.
Typed columns, filters and sorts — structured data with a real UI, not a spreadsheet.
Rich Markdown documents that embed live tables, charts and queries.
One codebase, native builds for Windows, macOS and Linux.
A .dbcool file is a real, unmodified SQLite database — open it with any standard SQLite tool, no proprietary format.
Sandboxed custom cell types and full-page tabs, written in JS or TS.
Plugins can already request and claim a sidecar process — spawning the process itself is next.
More layout tokens and finer control over how dbcool looks.
Optional AI help for wrangling data and drafting notebooks.
Excel-style formulas that recalculate automatically when the cells they depend on change.
Write and run raw SQL against your workspace for the moments the table/view UI isn't enough.
Open and browse any existing SQLite file directly — no conversion to .dbcool required.
Use tables to structure data and notebooks to work with it.
Store records, relationships, and status data clearly.
Tie your data into comprehensive stories, note things down, and host interactive plugins right alongside it.
Use the same data for internal tools, tracking pages, and documentation.
From teams to solo researchers — dbcool fits wherever structured data meets creative work.
Share a single .dbcool file over Dropbox, Git, or a network drive. Lightweight collaboration without SaaS costs.
Run SQL queries, build custom views, and visualise data with charts — without spinning up a server.
Run the tools your business depends on — CRMs, inventory, project trackers — without paying per seat for a SaaS you don't control.
Organise experiments, observations, and results in structured tables alongside rich notes — all in one portable file.
A Notion-like experience that lives offline. Build personal wikis, link your notes to data, and never worry about a subscription.
Create interactive notebooks that mix explanations with live data. A modern replacement for Excel-heavy coursework.
Whether you're managing research data, building a personal wiki, or replacing a legacy database UI — dbcool fits.
Blend structured tables with rich Markdown notebooks. Your knowledge base finally has real relational data underneath.
Keep a scoped database for any project: reading lists, budgets, habit trackers, recipe collections — all offline, all yours.
Browse, query, and edit any SQLite database with a modern interface. Export to CSV, generate PDFs, build views — no Terminal required.
If Access was built today — with a clean UI, cross-platform support, and a hackable plugin ecosystem.
Record observations in notebooks, store measurements in tables, plot charts inline. The crossover between Jupyter and Airtable.
Plugin cells can embed any program — diagrams, 3D viewers, custom editors — right inside your database rows.
Write a plugin once, use it in every .dbcool file. No compile step required for simple plugins — just drop in a JS file.
// A minimal vanilla JS cell plugin
function ready(callback) {
if (window.dbcoolAPI) return callback();
window.addEventListener("dbcool:apiReady", callback, { once: true });
}
ready(async () => {
const api = window.dbcoolAPI;
const root = document.getElementById("root");
// Render the current cell value
async function render() {
const value = (await api.getValue()) ?? "(empty)";
root.innerHTML = `
<div class="cell">
<span>${value}</span>
<button onclick="edit()">✏️</button>
</div>
`;
}
// Handle edits
window.edit = async () => {
const next = prompt("New value:", await api.getValue());
if (next !== null) {
await api.setValue(next);
await api.finishEdit();
}
};
// Re-render on host-driven changes
window.addEventListener("dbcool:valueChanged", render);
await render();
});