Drag in any direction to rotate the 3D model. Scroll the page to turn the scene. Use arrow keys to rotate, Shift with left or right to roll, plus and minus to zoom, and Home to reset. On a touch screen, swipe sideways to start rotating, swipe up or down to scroll the page, and pinch to zoom the page.

SELECTa websiteFROM sql;

Turn your database into tools
you can share.

Run it

-- real SQLPage components, a few lines each

Data,
but clickable

-- pick a component

Actually rendered by
SQLPage, live

select 'text' as component, 'Customers' as title;
select 'table' as component, 'landing-customers' as id,
    true as sort, true as search, 'status' as markdown;
select name, plan, status, seats, lower(status) as _sqlpage_css_class
from customers
order by id;

Explore the table component

-- Suspiciously few files.
Yes, that's the app.

-- Low maintenance, on purpose.

A useful tool for them.
A manageable
application for you.

You need a webapp,
but you don't want to maintain a webapp. Build it, or let your coding agent do it. Don't maintain 1000 lines of code.

An unshaved yak

-- The yak stays unshaved.
-- App maintenance is not a hobby.

-- What do you have to maintain?

  • Frontend to update
  • Build tooling to keep working
  • API server to patch
  • Session and state to keep in sync
  • Database you already own this

-- 5 layers, all yours.

Stateless

All state lives in the database. Scale by adding servers, deploy by copying files, restart whenever you like.

Agent-friendly

Small, declarative SQL files are easy for a coding agent to write and easy for you to review. Robots welcome. Humans too.

Bring your own robot.Agent not included.You're still the boss.

The database is the job

You already back it up, secure it and keep it healthy. That is the maintenance. The app just reads and writes.

-- Your files. Your deployment.

No frontend
to build.

-- read, edit, and act.
-- forms, tables, charts, and navigation.
-- Tables with manners. CRUD, but polite.

Instant by default.

HTML streams to the browser while the database is still working.

sql-page.com/performance

typical app (illustrative)

SQLPage

rendered on the server+ interactive in the browser

-- one refunds tool, six ways to build it, on day 100

Low Effort.
Low Drama.

Building got cheap.
Owning what got built is still expensive.

SQLPage

SQL files + your database

refunds-page #42

Add refunds page

3 files changed +26 −2

  • refunds.sql+14
  • index.sql+4 −2
  • sqlpage/migrations/0007_refunds.sql+8

git push → live

Day 100: still a few files you can read.

SQL files in git. One stateless binary. The common attacks handled by default.

-- boring on purpose.

Scroll horizontally to explore five illustrative alternatives. Use the left and right arrow keys when this region is focused.

Agent-built app

An AI agent writes the full stack

refunds-page #318

Add refunds page

214 files +8,402 −1,317

  • package-lock.json+6,120
  • src/components/RefundTable.tsx+212
  • src/api/refunds.ts+148
  • prisma/schema.prisma+31

… and 209 more files

2 dependency alerts

1 approval: LGTM

The vibe debt comes due.

-- LGTM (nobody read it)

Spreadsheet

Excel, Google Sheets

Refunds 5 items
NameModified ↓
  • X refunds.xlsxMar 3
  • X refunds_final.xlsxMar 9
  • X refunds_final_v2.xlsxMar 9
  • X refunds_FINAL_real.xlsxApr 2
  • X refunds (1).xlsxJun 1

Locked for editing by dave

Great until the data drifts.

-- which one is real?

Custom scripts

Python, shell, cron

zsh ~/reports

$ crontab -l

0 6 * * * python3 ~/dave/refunds.py

$ tail -n3 refunds.log

05-14 06:00  ok
05-15 06:00  ok

05-16 06:00  ConnectionError

$ git log -1 --format=%an

dave (left in March)

$

Works. Until the author leaves.

-- cron says it ran

BI dashboard

Charts on top of your data

Refunds · dashboard
€12.4krefunded, last 30 days
Edit View-only access

SCan we add a button?Not in this tool.

Great for charts. Not for actions.

-- look, but don't touch

Low-code platform

Drag-and-drop app builders

Refunds app · editor
OrderCustomerAmount
#1042Ada L.€48.00
#1043Grace H.€12.50
#1044Linus T.€76.00
#1045Margaret H.€24.00
Export is a Business feature

Upgrade to export refunds as CSV.

Not nowSee plans

It lives on their terms.

-- 14 seats, billed monthly

-- A tool for them. Not a second job for you.

Small team.
Serious tools;

COMMIT; start with a query

DELETE busy;
-- NULL drama.