{"slug": "postgrest", "name": "PostgREST", "category": "databases", "category_name": "Databases", "description": "", "recommenders": 5, "commenters": 8, "warners": 1, "score": 3.958, "rising": -0.31, "first": "2025-11-01", "latest": "2026-08-19", "why": "We made a very functional job queue in Postgres with PostgREST. highly recommend, as the automatic REST API makes building new clients a breeze", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 5, "neutral": 0, "compare": 2, "warn": 1}, "spark": [1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "We made a very functional job queue in Postgres with PostgREST. highly recommend, as the automatic REST API makes building new clients a breeze", "kind": "", "icon": true, "domain": null, "github_repo": "github.com/postgrest/postgrest", "official_url": "https://postgrest.org", "pricing": "", "aliases": ["PostgREST"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 789798208, "item_id": 49362388, "url": "https://news.ycombinator.com/item?id=49362388", "by": "warpech", "date": "2026-08-19", "stance": "recommend", "quote": "Honorable mention - https://postgrest.org/", "excerpt": "Honorable mention - https://postgrest.org/", "context": "", "use_case": "API from PostgreSQL", "switched_from": "", "story": "PostgreSQL for Everything"}, {"id": 774696400, "item_id": 48418525, "url": "https://news.ycombinator.com/item?id=48418525", "by": "ijustlovemath", "date": "2026-06-05", "stance": "recommend", "quote": "We made a very functional job queue in Postgres with PostgREST. highly recommend, as the automatic REST API makes building new clients a breeze", "excerpt": "We made a very functional job queue in Postgres with PostgREST. highly recommend, as the automatic REST API makes building new clients a breeze", "context": "", "use_case": "job queue REST API", "switched_from": "", "story": "pg_durable: Microsoft open sources in-database durable execution"}, {"id": 768999872, "item_id": 48062492, "url": "https://news.ycombinator.com/item?id=48062492", "by": "thibautg", "date": "2026-05-08", "stance": "recommend", "quote": "And with PostgREST [0], you can automatically convert any PostGIS table", "excerpt": "And with PostgREST [0], you can automatically convert any PostGIS table (with geometry or geography column) to GeoJSON by using an \"Accept: application/geo+json\" header in the request. [0] https://docs.postgrest.org/en/v14/how-tos/working-with-postgresql-data-types.html#postgis", "context": "", "use_case": "Auto-expose PostGIS as GeoJSON", "switched_from": "", "story": "GeoJSON"}, {"id": 759664048, "item_id": 47479003, "url": "https://news.ycombinator.com/item?id=47479003", "by": "cpursley", "date": "2026-03-22", "stance": "recommend", "quote": "Or you could use Elixir with Postgrest and not have to bold on all this wonky 3rd paid tools", "excerpt": "Or you could use Elixir with Postgrest and not have to bold on all this wonky 3rd paid tools for basic stuff like background jobs: https://elixirisallyouneed.dev/tools?q=Pgflow", "context": "", "use_case": "", "switched_from": "", "story": "Node.js worker threads are problematic, but they work great for us"}, {"id": 732559568, "item_id": 45784973, "url": "https://news.ycombinator.com/item?id=45784973", "by": "kreyenborgi", "date": "2025-11-01", "stance": "recommend", "quote": "https://github.com/PostgREST/postgrest and https://github.com/koalaman/shellcheck are some popular ones", "excerpt": "I don't have the same impression, but https://github.com/PostgREST/postgrest and https://github.com/koalaman/shellcheck are some popular ones that may be useful to hn'ers. And https://github.com/mchav/dataframe?tab=readme-ov-file#dataframe is a library/framework that has had quite some velocity lately", "context": "", "use_case": "", "switched_from": "", "story": "GHC now runs in the browser"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 732545649, "item_id": 45784103, "url": "https://news.ycombinator.com/item?id=45784103", "by": "siliconc0w", "date": "2025-11-01", "stance": "warn", "quote": "but then it gets too complicated", "excerpt": "Wrote a similar PoC here: https://github.com/s1liconcow/autoapp Some ideas - use a slower 'design' model at startup to generate the initial app theme and DB schema and a 'fast' model for responses. I tried a version using PostREST so the logic was in entirely in the DB and but then it gets too complicated and either the design model failed to one-shot a valid schema or the fast model kept on generating invalid querie", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Why write code if the LLM can just do the thing? (web app experiment)"}]}], "who": [], "tags": [], "use_cases": ["api from postgresql", "job queue rest api", "geojson output from sql", "auto-expose postgis as geojson", "http api over postgres", "rest api over database"], "compared": [{"slug": "postgis", "name": "PostGIS", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "supabase", "name": "Supabase", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [{"id": 757169760, "item_id": 47323110, "url": "https://news.ycombinator.com/item?id=47323110", "by": "steve-chavez", "date": "2026-03-10", "stance": "neutral", "quote": "On PostgREST we recently added a strict no-LLM policy", "excerpt": "One thing that is missing is a standard no-LLM policy, like the \"Contributor Covenant Code of Conduct\". On PostgREST we recently added a strict no-LLM policy [1], basically linking Gentoo's AI policy, which we found the most apt in lack of a standard. [1]: https://github.com/PostgREST/postgrest/blob/main/CONTRIBUTING.md#ai-policy", "context": "", "use_case": "", "switched_from": "", "story": "Redox OS has adopted a Certificate of Origin policy and a strict no-LLM policy"}], "threads": [{"url": "https://news.ycombinator.com/item?id=48060918", "title": "GeoJSON", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=49361279", "title": "PostgreSQL for Everything", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48414367", "title": "pg_durable: Microsoft open sources in-database durable execution", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47428117", "title": "Node.js worker threads are problematic, but they work great for us", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47320661", "title": "Redox OS has adopted a Certificate of Origin policy and a strict no-LLM policy", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47154281", "title": "Show HN: Replacebase \u2013 library to migrate away from Supabase", "mentions": 1}], "sentiment_by_month": {"2025-11": {"warn": 1, "recommend": 1, "compare": 1}, "2025-12": {}, "2026-01": {}, "2026-02": {"compare": 1}, "2026-03": {"recommend": 1}, "2026-04": {}, "2026-05": {"recommend": 1}, "2026-06": {"recommend": 1}, "2026-07": {}, "2026-08": {"recommend": 1}, "2026-09": {}, "2026-10": {}}, "quotes": [{"id": 789798208, "item_id": 49362388, "url": "https://news.ycombinator.com/item?id=49362388", "by": "warpech", "date": "2026-08-19", "stance": "recommend", "quote": "Honorable mention - https://postgrest.org/", "excerpt": "Honorable mention - https://postgrest.org/", "context": "", "use_case": "API from PostgreSQL", "switched_from": "", "story": "PostgreSQL for Everything"}, {"id": 774696400, "item_id": 48418525, "url": "https://news.ycombinator.com/item?id=48418525", "by": "ijustlovemath", "date": "2026-06-05", "stance": "recommend", "quote": "We made a very functional job queue in Postgres with PostgREST. highly recommend, as the automatic REST API makes building new clients a breeze", "excerpt": "We made a very functional job queue in Postgres with PostgREST. highly recommend, as the automatic REST API makes building new clients a breeze", "context": "", "use_case": "job queue REST API", "switched_from": "", "story": "pg_durable: Microsoft open sources in-database durable execution"}, {"id": 769067952, "item_id": 48066747, "url": "https://news.ycombinator.com/item?id=48066747", "by": "steve-chavez", "date": "2026-05-08", "stance": "neutral", "quote": "We use that exact function [1]", "excerpt": "Many thanks for your work pramsey. We use that exact function [1], do you have any plans for a similar function for TopoJSON? One that also has a record parameter? [2]. [1]: https://github.com/PostgREST/postgrest/blob/f1d0e8ea2266077d2b57144927dea08bd8f74579/src/PostgREST/Query/SqlFragment.hs#L224 [2]: PostGIS has https://postgis.net/docs/AsTopoJSON.html but it doesn't take a record.", "context": "", "use_case": "GeoJSON output from SQL", "switched_from": "", "story": "GeoJSON"}, {"id": 768999872, "item_id": 48062492, "url": "https://news.ycombinator.com/item?id=48062492", "by": "thibautg", "date": "2026-05-08", "stance": "recommend", "quote": "And with PostgREST [0], you can automatically convert any PostGIS table", "excerpt": "And with PostgREST [0], you can automatically convert any PostGIS table (with geometry or geography column) to GeoJSON by using an \"Accept: application/geo+json\" header in the request. [0] https://docs.postgrest.org/en/v14/how-tos/working-with-postgresql-data-types.html#postgis", "context": "", "use_case": "Auto-expose PostGIS as GeoJSON", "switched_from": "", "story": "GeoJSON"}, {"id": 759664048, "item_id": 47479003, "url": "https://news.ycombinator.com/item?id=47479003", "by": "cpursley", "date": "2026-03-22", "stance": "recommend", "quote": "Or you could use Elixir with Postgrest and not have to bold on all this wonky 3rd paid tools", "excerpt": "Or you could use Elixir with Postgrest and not have to bold on all this wonky 3rd paid tools for basic stuff like background jobs: https://elixirisallyouneed.dev/tools?q=Pgflow", "context": "", "use_case": "", "switched_from": "", "story": "Node.js worker threads are problematic, but they work great for us"}, {"id": 754473699, "item_id": 47154606, "url": "https://news.ycombinator.com/item?id=47154606", "by": "coreylane", "date": "2026-02-25", "stance": "compare", "quote": "Is this offering an alternative to https://github.com/PostgREST/postgrest or a wrapper around it?", "excerpt": "Cool project, I recently moved a project off supabase entirely, my thoughts: - better-auth is amazing and made moving off supabase a lot less scary for. auth is very sticky. - Is this offering an alternative to https://github.com/PostgREST/postgrest or a wrapper around it? - I tried to self-host supabase/realtime recently and couldn't even get it working locally, so i migrated to postgres LISTEN/NOTIFY, which doesn't", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Replacebase \u2013 library to migrate away from Supabase"}, {"id": 754228128, "item_id": 47139258, "url": "https://news.ycombinator.com/item?id=47139258", "by": "steve-chavez", "date": "2026-02-24", "stance": "neutral", "quote": "PostgREST doesn't provide a replacement, rather a subset of the SQL language meant to be safe to expose to untrusted (frontend) clients.", "excerpt": "> It's a replacement for SQL, the language PostgREST doesn't provide a replacement, rather a subset of the SQL language meant to be safe to expose to untrusted (frontend) clients. Load balancing is not built-in currently, but it can be done at the proxy layer, taking the advantage that GET/HEAD requests are always executed on read only transactions, so they can be routed to read replicas. This is what Supabase does [", "context": "", "use_case": "HTTP API over Postgres", "switched_from": "", "story": "Show HN: PgDog \u2013 scale Postgres without changing the app"}, {"id": 732730482, "item_id": 45795655, "url": "https://news.ycombinator.com/item?id=45795655", "by": "dontdoxxme", "date": "2025-11-02", "stance": "compare", "quote": "Another option is to use something like PostgREST", "excerpt": "It depends what your needs are, you haven't given any details. I'm not aware of anything with the JSONBin.io API (frankly I don't like their API, I think it should be more RESTful). CouchDB is in many ways very similar to JSONBin and self hostable. I have also written small services that use SQLite's JSON support and wrap that up in a fairly restful API (e.g. POST a document to a list adds an item, etc.). Another opt", "context": "", "use_case": "REST API over database", "switched_from": "", "story": "Ask HN: Self Hostable Alternative to Jsonbin.io?"}, {"id": 732559568, "item_id": 45784973, "url": "https://news.ycombinator.com/item?id=45784973", "by": "kreyenborgi", "date": "2025-11-01", "stance": "recommend", "quote": "https://github.com/PostgREST/postgrest and https://github.com/koalaman/shellcheck are some popular ones", "excerpt": "I don't have the same impression, but https://github.com/PostgREST/postgrest and https://github.com/koalaman/shellcheck are some popular ones that may be useful to hn'ers. And https://github.com/mchav/dataframe?tab=readme-ov-file#dataframe is a library/framework that has had quite some velocity lately", "context": "", "use_case": "", "switched_from": "", "story": "GHC now runs in the browser"}, {"id": 732545649, "item_id": 45784103, "url": "https://news.ycombinator.com/item?id=45784103", "by": "siliconc0w", "date": "2025-11-01", "stance": "warn", "quote": "but then it gets too complicated", "excerpt": "Wrote a similar PoC here: https://github.com/s1liconcow/autoapp Some ideas - use a slower 'design' model at startup to generate the initial app theme and DB schema and a 'fast' model for responses. I tried a version using PostREST so the logic was in entirely in the DB and but then it gets too complicated and either the design model failed to one-shot a valid schema or the fast model kept on generating invalid querie", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Why write code if the LLM can just do the thing? (web app experiment)"}]}