Poor SQL vs Squawk
Poor SQL
poorsql.comSquawk
squawkhq.comSide by side
| Figure | Poor SQL | Squawk |
|---|---|---|
| Price from | Free | — |
| Free plan | Yes | — |
| Free trial | — | — |
| Open source | Yes | — |
| Web | Yes | Yes |
| Windows | Yes | Yes |
| macOS | — | Yes |
| Linux | Yes | Yes |
| iOS | — | Yes |
| Android | — | Yes |
| API | Yes | Yes |
| Self-hosted | — | Yes |
| Plans published | 1 | 0 |
| Spec score · SQL Linters and Formatters | 9.0 (#1) | 7.3 (#22) |
| Support | Users are directed to contact Tao Klerks by email or file issues in the GitHub issue tracker. | The site links to GitHub Help and directs users to open an issue if a rule, message, or documentation page needs improvement. |
Plans
In their own words
Poor SQL
Poor SQL reformats and colorizes T-SQL according to settings such as indentation, tab spacing, maximum width, and where statements and clauses break. It can expand comma lists, boolean and CASE expressions, and JOIN ON sections. Formatting runs in the browser, including offline, and the site says submitted SQL is not sent to an external service. Output views include input SQL, formatted SQL, and HTML source. An obfuscation and minification option can vary colors, line lengths, and keyword case, or substitute keywords. Downloads include plugins for SQL Server Management Studio, Visual Studio, and WinMerge, plus a command-line bulk formatter. The open-source Poor Man’s T-SQL Formatter library is AGPL-licensed and supports Microsoft.NET and Mono; its JavaScript library works in browsers and contexts such as Node.js. The project describes its parsing as coarse rather than full, especially for DDL. The free plan is free. Settings are remembered with a cookie; blocking cookies restores defaults on each visit.
Squawk
Squawk is an open-source linter and language server for PostgreSQL migrations and SQL. It checks schema changes for risks that could prevent database reads or writes. Its rules flag potentially unsafe statements, incompatible changes, and migration patterns, with messages that include examples and reasoning. The command-line tool lints SQL files, and a language server and VS Code extension provide editor linting.
For pull requests, a GitHub Action can lint modified migrations; Squawk can also comment through its upload-to-github command or GitHub App. For CI outside GitHub Actions, the documentation recommends configuring the GitHub App, citing CircleCI as an example. Installation options include npm, PyPI, release binaries, Docker, the browser playground, and VS Code. The playground uses WebAssembly to lint SQL in a browser. Configuration can set the PostgreSQL version, include or exclude rules and paths, and specify whether SQL files are assumed to run in transactions. Some rules are disabled by default and require explicit enabling. Squawk supports PostgreSQL only and has no automatic fixes or custom rules.