SQLPage is a SQL-first web application builder that allows you to create data-driven pages using only SQL. No knowledge of traditional web development languages is required.
The platform is compatible with SQLite, PostgreSQL, MySQL, Microsoft SQL Server, and compatible databases such as YugabyteDB or MariaDB. You can use simple SQL queries to display data through text, lists, tables, and charts, or to process user input via forms.
Components
To define how your data is displayed, set the component field in your SQL query. Available options include list, chart, form, tab, card, and several others.
Example:
SELECT 'list' AS component, 'Popular websites' AS title;
SELECT name AS title, url AS link FROM website;
Dynamic Interactions
You can capture user input through URL parameters such as $tab or $todo_id. This enables you to filter data or process form submissions on the fly.
SELECT * FROM todos WHERE id = $todo_id;
INSERT INTO user (first_name, last_name, birth_date)
SELECT $first_name, $last_name, $birth_date
WHERE $first_name IS NOT NULL;
Deployment Options
Binary – Download the release for your operating system, extract it, and run the file.
tar -xzf sqlpage-*.tgz && ./sqlpage.bin
Docker – Use the official image and mount your local SQL files to the container.
docker run -it --name sqlpage -p 8080:8080 --volume "$(pwd):/var/www" --rm lovasoa/sqlpage
Homebrew (macOS)
brew install sqlpage
Serverless – SQLPage can be compiled for AWS Lambda. You can use Docker to build the project and generate a deployable ZIP archive.
Configuration
Settings can be managed via a sqlpage.json file or environment variables such as DATABASE_URL and LISTEN_ON. You can enable HTTPS with automatic certificate management by configuring the SQLPAGE_HTTPS_DOMAIN variable.
.handlebars files or the dedicated html component.Data Dashboards
To create an area chart showing quarterly revenue:
SELECT 'chart' AS component, 'Quarterly Revenue' AS title, 'area' AS type;
SELECT quarter AS x, SUM(revenue) AS y FROM finances GROUP BY quarter;
Card Layout with Tabs
SELECT 'tab' AS component, true AS center;
SELECT format('Show %s cards', color) AS title, format('?tab=%s', color) AS link FROM tab_example_cards GROUP BY color;
SELECT title, description, color FROM tab_example_cards WHERE $tab IS NULL OR $tab = color;
Forms – Define a user registration form and handle the data insertion:
SELECT 'form' AS component, 'User' AS title, 'Create new user' AS validate;
SELECT name, type, placeholder, required, description FROM user_form;
INSERT INTO user (first_name, last_name, birth_date)
SELECT $first_name, $last_name, $birth_date
WHERE $first_name IS NOT NULL;
File Uploads & Authentication – Visit the official GitHub repository for detailed examples regarding image galleries and user management systems.
index.sql file containing a basic query (e.g., a list or a chart).http://localhost:8080 in your browser.SQLPage removes the traditional obstacles to web development. If you understand SQL, you have the tools to build and deploy web applications. It is a practical solution for validating new ideas or shipping internal tools quickly.
MuMuAINovel: Write Novels With AI, Minus the Clutter
Earth Copilot: Query Geospatial Data Using Natural Language
Gemini Conversation Timeline: Jump to Any Message Instantly
Prompt Tools: Open-Source Desktop App to Stop Losing Your Best AI Prompts
SafeLine WAF Installation: System Requirements & Setup Guide
Prompt Optimizer: Write Better AI Prompts in Seconds
Zen Browser: about:config Tweaks, 1Password Setup, and Customization Guide
Jessibuca Setup Guide: H5 Player Configuration, Decoding Modes, and Troubleshooting
Easy-AI-CodeReview: LLM-Powered Automated Code Review for GitLab
Extract2MD: Convert PDF to Markdown using Local LLMs and OCR
Anyi VPN Review: Free 365-Day Trial with No Data Caps or Ads
Ditto Clipboard Manager: Never Lose Your Copied Text Again