tabularis.dev — the marketing site, wiki, blog and changelog for Tabularis, the open-source desktop client for modern databases.
This repository hosts the source of tabularis.dev. It is a Next.js static-export site deployed to GitHub Pages on every push to main.
Content served here:
- Home, solutions and comparison pages — positioning content for Tabularis as a PostgreSQL/MySQL/SQLite client.
- Wiki — product documentation (connections, editor, notebooks, plugins, MCP, etc.).
- Blog — release notes and long-form posts rendered from Markdown in
content/posts/. - Changelog — generated from the upstream
CHANGELOG.mdof the main app repo. - Download page — always points at the latest Tabularis release, driven by the upstream app version.
- Plugin registry — rendered from
plugins/registry.json, the same registry consumed by the desktop app.
The site is statically generated (next build with output: "export") so it can be hosted on GitHub Pages without a runtime server.
The main app lives at TabularisDB/tabularis. This website used to live inside that repo under website/ as part of a pnpm workspace and was released in lockstep with the app.
It is now a standalone repo. Three pieces of data still come from the app repo — they are fetched over HTTPS from raw.githubusercontent.com before each build:
| Upstream file | Where it lands | Consumed by |
|---|---|---|
src/version.ts |
src/lib/version.ts |
APP_VERSION used in download links, SEO metadata, JSON-LD |
CHANGELOG.md |
CHANGELOG.md |
/changelog page (src/lib/changelog.ts) |
plugins/registry.json |
plugins/registry.json |
/plugins page (src/lib/plugins.ts) |
The fetcher is scripts/fetch-app-data.mjs. It hits https://raw.githubusercontent.com/${TABULARIS_APP_REPO}/${TABULARIS_APP_REF}/... and writes the files into place. Defaults: TABULARIS_APP_REPO=TabularisDB/tabularis, TABULARIS_APP_REF=main.
Run it manually:
pnpm fetch-app-dataIn CI the step runs before pnpm build — see .github/workflows/static.yml.
The three fetched files are committed to the repo so local development works without network access; CI overwrites them with the latest upstream versions.
The deploy workflow accepts a repository_dispatch event of type app-data-updated. After tagging a new release or updating the plugin registry in the app repo, dispatch it from a GitHub Action:
- name: Trigger website rebuild
run: |
gh api repos/TabularisDB/website/dispatches \
-f event_type=app-data-updated
env:
GH_TOKEN: ${{ secrets.WEBSITE_DISPATCH_PAT }}(WEBSITE_DISPATCH_PAT must be a PAT with repo scope on this repo.)
- Node.js 20+
- pnpm (pinned via
packageManagerinpackage.json)
pnpm installpnpm devThen open http://localhost:3000.
pnpm fetch-app-datapnpm buildThe build:
- Generates the Orama search index into
public/search-index.json(scripts/generate-search-index.mjs). - Runs
next buildwithoutput: "export"— the static site is emitted toout/. - Generates
public/latest-posts.jsonfor the widget on the home page (scripts/generate-latest-posts.mjs).
The output in out/ is what GitHub Pages serves.
.
├── content/ # Markdown sources
│ ├── home.md
│ ├── posts/ # blog posts
│ ├── seo/ # landing-page copy
│ └── wiki/ # wiki articles
├── plugins/
│ └── registry.json # fetched from app repo
├── public/ # static assets (images, videos, robots.txt)
├── scripts/
│ ├── fetch-app-data.mjs # pulls version/changelog/registry from app repo
│ ├── generate-search-index.mjs
│ └── generate-latest-posts.mjs
├── src/
│ ├── app/ # Next.js App Router routes
│ ├── components/ # React components
│ └── lib/ # data loaders and helpers (version, changelog, plugins, seo, ...)
├── CHANGELOG.md # fetched from app repo
└── next.config.ts
Typos, broken links, new wiki articles and new blog posts are all welcome.
- Content: edit Markdown under
content/and open a PR. - UI or components: keep in mind the site must statically export — avoid runtime-only Next.js features (
getServerSideProps, API routes, on-demand ISR, etc.). - Feature or bug reports about the app itself: please open them on
TabularisDB/tabularisinstead.
Join the conversation on Discord.
Special thanks to @Nako0 for creating the demo videos featured on the Tabularis website.
Apache License 2.0 — same as the main Tabularis project.
