adrianbonpin 1195d2c3f9 v0.7.0: New Connection screen revamp + full MySQL DB viewer (#10)
* docs: correct competitor comparison for DB Pro, Beekeeper, TablePlus

Research-verified the 'Why Gridline vs the alternatives' claims against
vendor docs, pricing pages, GitHub, and release notes (May 2026):

- DB Pro is an Electron app (founder-confirmed), not native; add
  TablePlus column to the comparison table
- Fix wrong cells: DB Pro has query/dashboard folders + table tags and
  CSV/JSON export on the free tier; object-explorer depth corrected for
  DB Pro (tables/views/indexes/enums) and Beekeeper
  (tables/views/routines/triggers)
- Reframe differentiators: unlimited-everything framing dropped for
  Beekeeper (free tier is already unlimited on tabs/connections/queries);
  keep DB-to-DB sync as the genuinely unique feature
- Add a dated 'Competitor reality check' section to AGENTS.md so future
  edits don't re-assert inaccurate claims

* docs: add project roadmap, link it from README and AGENTS

New ROADMAP.md is the source of truth for planned work, reflecting the
in-flight v0.7.0 connection-screen-revamp spec (new-connection flow,
full MySQL DB viewer, capability gating, Supabase/Neon presets,
SQLite path mode, tag overflow scroll, styling sweep).

Next-up scope: PostgreSQL object management CRUD with companion
features (schema CRUD, global object search, copy-as-DDL, object
dependencies) and an admin follow-up (users/roles/grants,
VACUUM/ANALYZE/REINDEX). MySQL Objects view explicitly deferred.

Queue: Redis browsing, MariaDB/TimescaleDB, PlanetScale/Turso,
query workbench upgrades (multiple result sets, query cancel,
result streaming, visual query builder), schema/data tooling,
SQLite .dump, schema diff, more export formats.

Planned: BYOK AI, website & docs, rolling UI/UX polish (incl.
onboarding tour, settings import/export, SSH key management).

README roadmap section now links to ROADMAP.md; AGENTS.md Related
Documents + Implementation Status reference it and the v0.7.0 spec.

* docs: release notes reference prod as the production branch

The repo's production branch is prod (feature branches merge back to
prod), not main. Update the release-cut instructions in the README and
the trigger comment in release.yml.

* docs: add robust bug report issue template

Structured .github/ISSUE_TEMPLATE/bug_report.md covering environment
(OS, Gridline version, install type, DB type/version, hosted provider,
connection method incl. SSH/TLS/socket), steps to reproduce, expected vs
actual, screenshots, logs, impact, and workarounds — plus a duplicate
checklist and secrets-redaction note. Referenced from the README
Contributing section.

* docs: drop in-flight branch mention from roadmap; remove unused starter assets

- ROADMAP.md no longer references the in-flight feature branch/spec
  (removed at the end anyway when the branch PRs into prod)
- Remove unused Vite/Tauri starter SVGs from public/ (no favicon or
  asset references anywhere in the app)

* test: fix stale README comparison-table regex in docs-coverage (5-col table)

* feat: shared INPUT_ROUNDING constant + bump to v0.7.0 (Task 1.1)

* fix: map SQLite file path to host field + provider host detection (Task 1.2)

* test: bump version expectation to 0.7.0 (Task 1.1 follow-up)

* feat: db capability matrix for DB viewer gating (Task 1.3)

* feat: provider tab definitions, Supabase/Neon icons + setup guides (Task 1.4)

* feat(rust): MySQL SQL builders + identifier quoting (Task 2.1)

* chore(rust): sync Cargo.lock to gridline 0.7.0

* feat(rust): MySQL db_connect (SSL + SSH tunnel) + pool variant (Tasks 2.2-2.3)

* feat(rust): MySQL execute_query with wrapped pagination + raw fallback (Task 2.4)

* feat(rust): MySQL introspection + changes-queue editing + DDL (Task 2.5)

* fix(ui): show table toolbar immediately while tab is still loading first data

* feat: gate DB viewer sidebar nav by db capabilities (Task 3.1)

* feat: guard DB viewer views by capability + Redis unsupported state (Task 3.2)

* feat(ui): 2-column provider tab grid (Task 4.1)

* feat(ui): collapsible Supabase/Neon setup guide (Task 4.2)

* feat(ui): SQLite file-path input with Browse (Task 4.3)

* feat(ui): connection metadata row (label + tags/env/folder) (Task 4.4)

* feat(ui): rework GeneralTab (URI + OR + manual) + reduce Detailed form tabs (Task 4.5)

* feat(ui): NewConnectionScreen two-stage flow; remove SimpleConnectionForm (Task 5.1)

* feat(ui): scroll connection-card tag row past 3 tags (Task 5.2)

* style: sweep form controls from rounded-full to rounded-lg (Task 5.3)

* feat(ui): EditConnectionModal parity + managed-preset SSL hint (Task 5.4)

* fix(rust): decode MySQL VARBINARY metadata columns (information_schema/SHOW) as strings

* test: full suite green for v0.7.0 connection revamp (Task 5.5)

* feat(ui): schema dropdown + tables tree loading state while schema tree fetches

* docs: update AGENTS/README/ROADMAP for v0.7.0 (connection revamp, MySQL viewer, gating)
2026-08-04 21:13:20 +08:00
2026-07-26 02:55:26 +08:00
2026-07-26 02:55:26 +08:00

Gridline data grid with FK preview

Gridline

A lightweight, open-source database GUI for PostgreSQL, MySQL, SQLite, and Redis.
Unlimited connections, tabs, and saved queries — with first-class pg_dump, pg_restore, and DB-to-DB sync.

Data Grid & FK Preview — browse 50+ real demo orders and inspect related rows in one click.

Tauri Rust React TypeScript Apache 2.0 License GitHub stars

Download Latest Open an Issue


What is Gridline?

Gridline is a modern, open-source database GUI client built with Tauri 2.0, Rust, and React. It is lightweight by design (~40 MB baseline), powerful by default, and free from the paywalls that limit commercial alternatives.

  • No caps on connections, tabs, or saved queries.
  • Deep PostgreSQL tooling — visual pg_dump, pg_restore, and DB-to-DB sync.
  • Full MySQL + SQLite browsing — connect, browse, query, and edit MySQL and SQLite the same way you do PostgreSQL.
  • Full object explorer — not just tables, but functions, triggers, sequences, enums, extensions, materialized views, and procedures.
  • Interactive ER diagram — explore relationships visually with crow's-foot cardinality notation.
  • Production-safe editing — stage INSERT/UPDATE/DELETE changes, review the generated SQL, then commit all at once.

The app ships with a built-in Gridline Demo (SQLite) database, so you can explore every feature immediately without setting up a server.


Who is it for?

Gridline is built for developers and small teams who manage multiple database environments:

  • Full-stack developers switching between local, staging, and production databases.
  • Platform / DBAs who need pg_dump, pg_restore, and sync tooling in a native UI.
  • Teams that want native speed without Electron bloat or seat licenses.

Recent Changes

  • 2026-08-04: v0.7.0 — revamped the New Connection screen into a two-stage flow with a 6-provider grid (PostgreSQL, MySQL, SQLite, Redis, Supabase, NeonDB; managed presets ship with setup guides + SSL hints) and added full MySQL DB viewer support (connect, browse, query, inline cell editing + changes queue, DDL copy).
  • 2026-08-04: Revamped the built-in SQLite demo database with realistic e-commerce data (20 users, 24 products, 50 orders, 100 page views, 500 audit rows) and renamed it to Gridline Demo (SQLite).
  • 2026-07-XX: Added inline cell editing with a stage-first changes queue, row-detail drawer, keyboard navigation, and cell-level copy.
  • 2026-07-XX: Added visual filter builder with drag-and-drop column palette and type-aware operators.
  • 2026-07-XX: Added schema visualizer with React Flow + dagre, crow's-foot notation, and cross-schema FK support.
  • 2026-07-XX: Added query history dropdown, saved queries, and a two-pane Queries view.
  • 2026-06-XX: Added settings redesign with live theme, accent color, font size, editor options, and tag reorder.
  • 2026-06-XX: Added SSH tunneling (password + key auth) and full PostgreSQL TLS runtime for production connections.

See the full history in the roadmap below or the git log.


Key Features

Connections & Workspace

  • URI auto-fill — paste postgres://, mysql://, sqlite://, or redis:// strings and have all fields populate automatically.
  • Provider grid — pick PostgreSQL, MySQL, SQLite, Redis, Supabase, or NeonDB; managed presets surface in-app setup guides and an SSL hint.
  • Workspace tree — multi-level folders, color-coded tags, favorites, and recent connections.
  • OS keychain storage — passwords and SSH secrets live in macOS Keychain / Linux Secret Service / Windows Credential Manager, never in plaintext.
  • SSH tunneling — real ssh2 tunnels with password or key authentication.
  • TLS / SSL — full PostgreSQL/MySQL TLS modes plus client-certificate support.
  • Connection status — on-demand per-card test with real server version and latency.

Schema Explorer

  • Tables, views, and materialized views — column metadata, PK/FK, defaults, nullable flags.
  • Functions & procedures — syntax-highlighted source, argument signatures, overload disambiguation.
  • Triggers, sequences, enums, extensions — unified Objects view with type switcher.
  • Indexes & constraints — per-table index details plus CHECK/UNIQUE constraints beyond PK/FK.
  • Schema visualizer — interactive ER diagram with auto-layout, cardinality legend, and collapsible columns.

Data Grid

  • Virtualized rows — handles 100k+ rows via @tanstack/react-virtual.
  • Server-side filtering & sorting — pushed to SQL WHERE/ORDER BY.
  • FK preview — click the ↗ icon on a foreign-key cell to inspect the referenced row or open a filtered tab.
  • JSON/JSONB viewer — formatted and raw tabs with copy.
  • Inline cell editing — double-click or press Enter; changes stage through the queue before commit.
  • Smart editors — enum dropdowns for PG enum columns, searchable FK dropdowns for related rows.
  • Visual filter builder — drag-and-drop columns with type-aware operators.
  • Export — JSON, CSV, SQL, and Markdown downloads of visible rows.
  • Auto-refresh — configurable interval timer.

Query Workbench

  • Monaco SQL editor — lazy-loaded, with keywords + table/column autocomplete.
  • Custom query execution — arbitrary SQL with destructive-query confirmation.
  • Query tabs — unlimited tabs, close with Cmd/Ctrl+W.
  • Query history — per-connection, with favorites and pruning.
  • Saved queries — name, folder, and manage them in the Queries view.
  • Changes queue — stage edits, review generated SQL, revert per change, then commit all.

PostgreSQL Admin Tools

  • Visual Backuppg_dump wrapper with format selector, schema filter, no-owner toggle, real-time progress.
  • Visual Restorepg_restore wrapper with clean toggle and destructive confirmation.
  • DB-to-DB Sync — pipe pg_dumppg_restore between two connections.

Screenshots

Query editor
Query Editor
ER diagram
Schema Visualizer
JSON popover
JSON Viewer
Home screen
Home Screen

Why Gridline vs the alternatives?

Capabilities below are fact-checked against each vendor's official docs and pricing (May 2026).

Capability DB Pro (Free) Beekeeper (Free) TablePlus (Free) Gridline
Open tabs 3 Unlimited 2 Unlimited
Saved connections 2 Unlimited Unlimited Unlimited
Saved queries 5 Unlimited Unlimited Unlimited
Data export (CSV, JSON, SQL) (unlimited = paid) Basic only JSON, CSV, SQL, Markdown
pg_dump / pg_restore GUI paid only First-class UI
DB-to-DB sync Built-in pipe sync
Object explorer depth Tables, views, indexes, enums Tables, views, routines, triggers Tables, views, functions, procedures Functions, Triggers, Sequences, Enums, Extensions + full detail
ER diagram / schema visualizer view-only paid only React Flow + dagre
SSH tunneling paid only Password + key auth, keychain
OS credential vault Keychain / Secret Service / Credential Manager
Workspace / folder hierarchy query/dash folders + tags (5.7+, local) Multi-level tree + tags
Changes queue (stage → commit) Apply/Discard Safe mode Queue → Commit All
Desktop shell size Electron Electron (~250 MB) Native Tauri 2.0 (~40 MB)
Open source GPLv3 Apache 2.0

Notes: DB Pro is an Electron app (launched Nov 2025) whose marketing copy overclaims — its free plan caps connections/tabs/saved queries (FAQ inconsistently claims "unlimited local connections") and gates data imports + SSH tunneling to paid, though CSV/JSON export does work on the free tier; Beekeeper's free Community edition genuinely offers unlimited tabs/connections/queries but gates backup/restore, file import, multi-table export, ERD, AI, and premium DB connectors behind paid tiers; TablePlus's free tier includes every feature but caps you at 2 open tabs / 2 windows / 2 advanced filters.


Tech Stack

Layer Technology Role
Desktop shell Tauri 2.0 Native webview container (~40 MB baseline)
Backend Rust + tokio Async runtime, connection pooling, CLI execution
DB drivers sqlx / tokio-postgres PostgreSQL via tokio-postgres; MySQL via sqlx; SQLite via rusqlite
CLI integration std::process::Command Wraps system pg_dump / pg_restore
Frontend React 19 + TypeScript Component-based UI
Styling Tailwind CSS Utility-first, dark mode, glassmorphic design
State Zustand / Jotai Domain stores
Editor Monaco Editor IDE-grade SQL editing
Data grid TanStack Virtual 100k+ row virtualization
Local store SQLite via rusqlite Settings, saved queries, workspace state

Getting Started

Download a release

Pre-built installers for macOS, Windows, and Linux are published on the Releases page.

⚠️ Gridline is under active development. Expect rough edges and please open issues when you hit them.

Installers are unsigned (for now)

Gridline is currently distributed unsigned — it doesn't pay for code-signing certificates yet. Your OS will warn you the first time you open it. This is expected — the app is safe, it just hasn't paid the signing fee:

  • macOS: right-click the app → OpenOpen (or System Settings → Privacy & Security → Open Anyway). Do this once per version.
  • Windows: on the SmartScreen prompt, click More infoRun anyway.
  • Linux: no warning — install and run normally.

Code signing will be added in the future (Apple Developer Program + a Windows signing cert, e.g. Azure Trusted Signing) — the CI workflow is already wired to pick up the signing secrets automatically the moment they exist, no workflow changes needed.

Which file should I download?

Each release contains one file per platform — you only need the one that matches your computer. (If a newer version is available, swap 0.7.0 for the version shown in the release title.)

Your system Download this Notes
macOS Apple Silicon (M1/M2/M3/M4…) Gridline_0.7.0_aarch64.dmg aarch64 = Apple's own chip
macOS Intel Gridline_0.7.0_x64.dmg x64 = Intel/AMD
Windows (most PCs) Gridline_0.7.0_x64-setup.exe The .msi is an alternate installer (for enterprises/IT admins)
Debian / Ubuntu Gridline_0.7.0_amd64.deb Install: sudo apt install ./Gridline_0.7.0_amd64.deb
Fedora / RHEL / openSUSE Gridline-0.7.0-1.x86_64.rpm Install: sudo dnf install Gridline-0.7.0-1.x86_64.rpm
Any other Linux Gridline_0.7.0_amd64.AppImage Works on every distro: chmod +x the file, then double-click it

Not sure if your Mac is Intel or Apple Silicon? Click the Apple menuAbout This Mac. If it shows "Apple M1/M2/M3/M4…" download the aarch64 file; if it shows an Intel chip, download x64. Downloading the wrong one won't run.

How releases are made

Cutting a release is one command — CI builds everything. Releases are cut from prod, which is the production branch — only push release tags from prod, never from feature branches:

git checkout prod && git pull
git tag v0.7.0
git push origin v0.7.0

GitHub Actions (.github/workflows/release.yml) builds installers for Apple Silicon, Intel Macs, Windows, and Linux, then opens a draft release on the Releases page — review it and hit Publish release.

Before tagging, make sure the version number is in sync across package.json, src-tauri/Cargo.toml, and src-tauri/tauri.conf.json.

Build from source

# 1. Clone the repository
git clone https://github.com/adrianbonpin/gridline.git
cd gridline

# 2. Install frontend dependencies
bun install

# 3. Run in development mode with hot-reload
bun run tauri dev

# 4. Build for production
bun run tauri build

System requirements

  • macOS: 13 (Ventura) or newer
  • Windows: 10 or newer
  • Linux: Ubuntu 22.04+ or equivalent modern distribution
  • RAM: 8 GB recommended
  • PostgreSQL client tools: pg_dump and pg_restore are required for admin features

Development

# Frontend only (Vite dev server)
bun run dev

# Full Tauri app with hot-reload
bun run tauri dev

# Production build
bun run tauri build

# Rust backend only
cd src-tauri
cargo build

# Run tests
cargo test

Project structure

gridline/
├── src/                    # React frontend
│   ├── components/         # Reusable UI components
│   ├── stores/             # Zustand/Jotai state stores
│   ├── hooks/              # Custom React hooks
│   ├── lib/                # Utilities, types, Tauri bindings
│   ├── App.tsx             # Root component
│   └── main.tsx            # Entry point
├── src-tauri/              # Rust backend
│   ├── src/
│   │   ├── main.rs         # Entry point
│   │   ├── lib.rs          # Tauri command registration
│   │   ├── db/             # Database connection & pooling
│   │   ├── commands/       # Tauri IPC command handlers
│   │   └── models/         # Data structures & serde types
│   ├── Cargo.toml
│   └── tauri.conf.json
├── public/                 # Static assets
├── package.json
├── tsconfig.json
└── vite.config.ts

Roadmap

The full plan — in-development (v0.7.0), next-up, queue, and shipped history — lives in ROADMAP.md.

Highlights of what's next:

  • Full Object Management — CRUD on functions, triggers, sequences, enums, extensions, and views without the Query tab, plus schema CRUD, global object search, and copy-as-DDL
  • Full Redis support — key browser, type-aware value editors, TTL management
  • More database types — MariaDB, TimescaleDB, and friends
  • Managed DB support — PlanetScale, Turso (Supabase/Neon presets shipped in v0.7.0)
  • AI integration (BYOK) — natural-language → SQL, chat, summaries, charts

View the full roadmap →


Table of Contents


Contributing

Contributions, bug reports, and feature ideas are welcome. Gridline is Apache 2.0-licensed and intentionally stays open — no paywalled tiers, no bundled proprietary services.

  • Report a bug via the issue template — it walks you through environment details (OS, Gridline version, DB type/version, connection method) so we can reproduce issues quickly. Opening a new issue pre-fills the template automatically.
  • Submit a pull request. Keep Tauri commands thin, type IPC boundaries explicitly, and follow the existing Rust/React conventions.

License

Apache 2.0 — see LICENSE for details.

S
Description
Migrated from GitHub
Readme Apache-2.0
7 MiB
2026-08-20 21:14:18 +00:00
Languages
TypeScript 69.1%
Rust 28.9%
Astro 0.9%
JavaScript 0.5%
Shell 0.3%
Other 0.3%