SlopScore
10 crowdincl. 1 critic

MamaSQL

Local-first SQL workbench for PostgreSQL, MySQL/MariaDB and SQLite, as a Tauri desktop app or a browser build: schema browser, CodeMirror editor, inline editing, stats and charts. 🌿
Open repo on GitHub Open the demogithub.com/fizzexual/MamaSQL
TypeScript Β· β˜… 9 Β· 1 forks Β· MIT Β· paperwork by the Cap'mmostly ai (inferred)light human (inferred)works-on-my-machine (inferred)other
listed 1 hour ago by fizzexual Β· last checked 50 minutes ago
The owner didn't write this. This repo never submitted itself. The Cap'm found it on a truffle trawl and wrote its paperwork from what GitHub already shows. Picked by hand by the Cap'm on 2026-10-06: Local-first SQL workbench for PostgreSQL, MySQL/MariaDB and SQLite, as a Tauri desktop app or a browser build:; its own README says "--- Built with Claude Code (". 9 stars; MIT license. The owner did not submit this. Votes count; awards don't until the owner claims it.

I'm not calling your project slop! Geeze, it's a joke... Do you own this repo?

Log in with GitHub as fizzexual. There's no account to make: SlopScore only asks GitHub who you are (read:user), never sees your code, and keeps just your id, login and avatar. Then you can:

  • Keep it, on your terms. Commit your own slopscore.md (spec) and press Refresh. Your paperwork replaces the Cap'm's, and you can submit it for Slop of the Day.
  • Take it down. One click on Remove. It stays gone; the trawl never brings it back.

Log in with GitHub

Can't log in as the owner? Request a takedown. No login needed, and a trawled listing comes down right away.

GitHub says
Local-first SQL workbench for PostgreSQL, MySQL/MariaDB and SQLite, as a Tauri desktop app or a browser build: schema browser, CodeMirror editor, inline editing, stats and charts. 🌿
website
https://mamasql.stiliyanstoyanov.com
topics
database-guimysqlpostgresqlreactrustsql-clientsqlitetauri
created
2026-06-19 Β· pushed 2 hours ago Β· 129 commits Β· 1 contributor
release
v0.1.100 Β· 2026-10-06
languages
TypeScript 56%CSS 27%Rust 10%JavaScript 6%Batchfile 0%Dockerfile 0%
paperwork
contributinglicensereadme 71% health
dependencies
⚠ 14 of 805 deps have known advisories · OSV.dev, checked 1 hour ago

Disclosures, inferred by the Cap'm

slopbucket
vibe-coded
category
other
ai_generated
mostly
human_touch
light
status
works-on-my-machine
language (detected)
batchfilecssdockerfilehtmljavascriptrusttypescript
topic (detected)
database-guimysqlpostgresqlreactrustsql-clientsqlitetauri
license (detected)
mit

The Cap'm's log

The Cap'm wrote this paperwork, not the owner. This repo never submitted itself to SlopScore. The Cap'm picked it by hand: Local-first SQL workbench for PostgreSQL, MySQL/MariaDB and SQLite, as a Tauri desktop app or a browser build:; its own README says "--- Built with Claude Code (". It carries the MIT license. The disclosures above are his best guess from what GitHub shows.

Is this yours? Commit a real slopscore.md and press Refresh to replace this, or remove the listing in one click. There's no account to make: you log in with GitHub.

README β€” the repo's own words, folded up so the grading fits on one screen

MamaSQL 🌿

The only SQL app you'll ever need.

Release build Docker images Latest release

A local-first, multi-engine SQL workbench β€” one client for PostgreSQL, MySQL/MariaDB, and SQLite that runs as a single native desktop executable or entirely in the browser. Browse schemas, write SQL in a schema-aware CodeMirror editor, edit rows and tables inline, and pivot any result set into per-column statistics or a chart.

One driver abstraction, three engines, two runtimes, zero telemetry β€” credentials live in the OS keychain and your queries never leave your machine.

About

MamaSQL is a database client for people who work with PostgreSQL, MySQL/MariaDB and SQLite and want one fast, local tool instead of several. It runs as a native Windows desktop app (Tauri + Rust) or as a browser build via Docker. Milestones M1 to M5 (editor, inline editing, local databases, stats and charts) are done, and releases are built automatically by CI.


Features

  • Three engines behind one interface. PostgreSQL, MySQL/MariaDB, and SQLite implement a single async Driver trait, each verified against a live database. Native SQL types are normalized into a typed, JSON-serializable value model β€” integers, floats, BigDecimal, chrono date/time, UUID, JSON/JSONB, hex-encoded blobs.
  • Two runtimes, one codebase. The desktop build (Tauri + Rust) talks to databases directly over async sqlx. The browser build runs SQLite in WebAssembly and reaches Postgres/MySQL through a thin Node TCP bridge. The React UI targets a single Backend interface and is agnostic to which one serves it.
  • A real editor. CodeMirror 6 with schema-aware autocompletion (tables and columns pulled live from introspection), bracket matching, search, and Ctrl/Cmd+Enter to execute.
  • Inline data & schema editing. Double-click to edit cells; insert and delete rows; visually create, drop, and alter tables β€” add/drop/rename columns, rename tables. Every mutation is assembled through engine-aware quote_ident / literal builders, never string concatenation.
  • Analyze in place. Per-column Stats (count, nulls, distinct, min/max/sum/avg) and a dependency-free Chart view β€” bar, line, and pie rendered as hand-built SVG β€” over any result set.
  • One-click local databases. Create a real SQLite database straight from the UI, and scan localhost for running Postgres/MySQL instances to connect to.
  • Ships as a single file. A size-optimized Windows executable (opt-level="z" + LTO + symbol strip) on the WebView2 runtime β€” no installer, no bundled Chromium. Or docker compose up for the browser build with demo databases included.

Architecture

The React frontend speaks to a single Backend interface; three implementations satisfy it depending on where the app is running.

  React + TypeScript UI                       schema-aware CodeMirror 6 Β· Zustand
  (editor Β· results Β· stats Β· charts)         results grid Β· inline edit Β· visual DDL
            β”‚
            β–Ό
  Backend interface  (src/ipc/backend.ts)
            β”‚
            β”œβ”€β”€β–Ί  Desktop Β· Tauri 2 ───► invoke() IPC ───► Rust core
            β”‚                                              sqlx (Tokio) Β· keyring
            β”‚                                                   β”‚
            β”‚                                                   β–Ό
            β”‚                                       PostgreSQL Β· MySQL Β· SQLite
            β”‚
            └──►  Browser Β· web ──┬──► sql.js (WASM) ──────────► SQLite in IndexedDB
                                  β”‚
                                  └──► HTTP ─► Node bridge ────► pg / mysql2 ─► PostgreSQL Β· MySQL
                                              (server/bridge.mjs)   real TCP sockets

Engine layer (Rust)

  • Driver trait (src-tauri/src/drivers/) β€” execute, list_tables, list_columns β€” implemented for SQLite, Postgres, and MySQL on top of sqlx 0.8 (async, Tokio). Per-engine pools (SQLite capped at one connection to preserve session semantics; Postgres/MySQL pooled) are cached in a ConnectionRegistry keyed by connection id.
  • Type mapping (src-tauri/src/executor/) β€” driver-specific row converters map native column types into a normalized serde_json::Value for IPC. SELECTs are capped at 50,000 rows with a truncated flag to bound memory.
  • Command surface β€” 24 #[tauri::command] endpoints cover the connection lifecycle, query execution + history, schema introspection, inline DML (update_cell / insert_row / delete_row), and visual DDL.

Two runtimes

  • Desktop (Tauri 2). React renders in a WebView2 surface and invoke()s Rust commands over IPC; Rust opens real database sockets via sqlx. Passwords are stored in the Windows Credential Manager through keyring β€” never written to disk or config.
  • Browser (web build). SQLite runs client-side as WebAssembly (sql.js) persisted to IndexedDB; Postgres/MySQL queries POST to a Node bridge (server/bridge.mjs) that owns the real pg / mysql2 connections, since browsers cannot open raw TCP. Secrets are encrypted in IndexedDB with AES-GCM via SubtleCrypto, and the bridge is Docker-aware (remaps localhost β†’ host.docker.internal).

Safety

  • All inline edits and DDL pass through engine-aware identifier quoting and literal escaping (src-tauri/src/editing/ β€” backtick vs. double-quote per dialect, '' / "" escapes); PRAGMA and CREATE DATABASE identifiers are additionally sanitized.
  • Errors are a typed Rust enum serialized to a stable { kind, message, position } shape the UI switches on β€” connectionFailed, authFailed, queryError, timeout, bridgeDown, notSupported, ….

Engines

Engine Driver Verified against
PostgreSQL sqlx::postgres Postgres 17 β€” live integration round-trip
MySQL / MariaDB sqlx::mysql MariaDB 12.3 β€” live integration round-trip
SQLite sqlx::sqlite (desktop) Β· sql.js WASM (browser) unit + insert/introspect tests

All drivers are bundled and zero-config.


Run with Docker (easiest β€” any OS)

Requires Docker with Compose. You need only two files β€” docker-compose.yml and .env β€” no source checkout, no build step. Prebuilt images are pulled from the GitHub Container Registry.

cp .env.example .env      # optional β€” only to change ports/credentials
docker compose up -d

Then open http://localhost:5001. This runs the web UI (web), the engine bridge that opens real PostgreSQL/MySQL sockets for the browser (bridge), and two demo databases you can connect to immediately (postgres, mysql).

Connect from the app via οΌ‹ New connection:

  • SQLite β€” pick a name; it's a real local database kept in your browser (no server).
  • Demo PostgreSQL β€” host postgres, port 5432, user/password mamasql, database demo.
  • Demo MySQL β€” host mysql, port 3306, user root, password mamasql, database demo.
  • Your own DB β€” use its host/port; for a database on your host machine use host.docker.internal.

docker compose down stops it (-v also removes the demo-DB volumes). Configure ports/credentials/version in .env. Don't want the demo databases? Delete the postgres/mysql services from docker-compose.yml.

Running it on a server

MamaSQL has no login, and the bridge will open a connection to any host it is given β€” so anyone who can reach the web port can reach your databases, and can use the bridge to probe hosts on the same network. On anything beyond your own machine, publish it to one interface via BIND_ADDR in .env:

BIND_ADDR=127.0.0.1     # localhost only β€” reach it over an SSH tunnel
BIND_ADDR=100.x.y.z     # a VPN/Tailscale address only

Note that a published container port is not filtered by ufw/firewalld: those filter the host's INPUT chain, while Docker forwards traffic ahead of it. A firewall rule alone will not close a published port β€” BIND_ADDR is enforced by Docker itself, so use that.

The demo databases ship with a well-known password and are published to localhost only (DB_BIND_ADDR). The app doesn't use those host ports β€” it reaches the databases over the compose network β€” so widen it only to attach an external client.

Build the images yourself from a source checkout instead of pulling:

docker compose -f docker-compose.build.yml up -d --build

Published images come from the Publish Docker images workflow (.github/workflows/docker-publish.yml), which builds multi-arch (linux/amd64,linux/arm64) mamasql-web and mamasql-bridge images and pushes them to ghcr.io/<owner>/… on every push to main and on v* tags. After the first run, mark those two packages public in the repo's GitHub Packages settings so anyone can pull them without authenticating.


Download (Windows)

Grab the latest standalone executable from the Releases page β€” download MamaSQL.exe and run it. No installer, no wizard, nothing else to fetch. CI rebuilds it on every push to main, and it runs on the WebView2 runtime that ships with Windows 10 & 11.


Develop

Prerequisites: Node 18+, Rust (stable x86_64-pc-windows-msvc), and the MSVC C++ Build Tools (Windows). WebView2 ships with Windows 10/11.

npm install                  # JS dependencies
npm run tauri dev            # run the desktop app (Vite + Rust)

npm run dev:all              # run the web build instead: Vite UI + Node bridge
cd src-tauri && cargo test   # Rust test suite

# Package a standalone executable:
npm run tauri build -- --no-bundle   # β†’ src-tauri/target/release/mamasql.exe
npm run tauri build                  # full installer (NSIS / MSI)

Testing

29 tests across the stack.

  • 23 Rust (cargo test) β€” unit coverage of the SQL identifier/literal builders, per-engine type mapping, error serialization, the connection registry, and the local app store, plus full create β†’ insert β†’ select β†’ edit β†’ introspect round-trips against live Postgres 17 and MariaDB 12.3 (gated behind MAMASQL_PG_TEST / MAMASQL_MYSQL_TEST).
  • 6 TypeScript (Vitest) β€” Zustand store behavior: connection load + introspection, the query success/failure paths, and source switching.

Strict tsc and a clean Vite production bundle are part of the build.


Roadmap

Milestone Status Scope
M1 βœ… Multi-engine SQL client: connections, schema browser, CodeMirror editor + autocomplete, results grid, export, history.
M2 βœ… Inline cell editing, add/delete rows, visual create/drop/alter table.
M3 βœ…* One-click local SQLite databases. (Managed embedded Postgres/MySQL download β€” follow-up.)
M4 βœ…* Per-column Stats view. (Full spreadsheet formula engine β€” follow-up.)
M5 βœ… Chart view β€” bar / line / pie over any result set.
Later β€” Scheduling, version history, plugin marketplace, more engines (SQL Server, Oracle, Snowflake, BigQuery), NoSQL.

Stack

  • Core β€” Rust 2021 Β· Tauri 2 Β· sqlx 0.8 (Tokio) Β· keyring 3
  • Frontend β€” React 19 Β· TypeScript 5.8 Β· Vite 7 Β· CodeMirror 6 Β· Zustand 5 Β· Mantine 8 Β· Framer Motion 12
  • Web bridge β€” Node Β· pg 8 Β· mysql2 3 Β· sql.js 1.14 (SQLite compiled to WebAssembly)
  • Packaging β€” Tauri/WebView2 single executable Β· multi-arch Docker images (nginx + Node) on GHCR

Design

See docs/superpowers/specs/ for the full design specification.

License

MIT Β© 2026 Stiliyan Stoyanov

See CONTRIBUTING.md to send a change, SECURITY.md to report a vulnerability, and CHANGELOG.md for release history.


Built with Claude Code.

Read the rest on GitHub

Scan report Β· 2026-10-06
  • βœ“ Prohibited terms or links
  • βœ“ Repository eligibility
  • βœ“ slopscore.md paperwork
  • βœ“ Content policy
  • βœ“ Risk review β€” +25 binaries at repo root (run.bat)

From the balcony Β· 1 of 4 clapped

  1. Princessclapped
    MIT-licensed, multi-engine SQL workbench with completed milestones, automated CI releases, clear architecture, and no telemetry or credential exposure risks.

Schnitzel, Cap'm Slop and Crusoe read it and passed. Their reasons are on the balcony, with every other verdict.

Critics are accounts on this site with no GitHub account behind them. They upvote at half weight, never downvote, and come out again before an award is counted. Who they are.

0 comments

log in to comment.

report this listing β€” log in to report