Keep It Simple Stupid, just use postgres.
The goal of this repository is to demonstrate how to use Postgres for Everything.
It's inspired by this article from the Amazing CTO as well as this GitHub gist from @cpursley.
It seems like every week I hear of a new tool on top of Postgres or another way it can being used, so I wanted a place where I can keep track of everything. If you have other examples, submit a PR!
- Blog Posts & Articles
- Cron Jobs
- Embeddable Postgres
- Message Queues
- Analytics
- GIS & Mapping
- Audit Logs
- Access Control & Authorization
- Search
- Time Series
- Column Oriented
- NoSQL
- Graph Data
- Foreign Data
- HTTP
- API Platforms
- GraphQL and Alternative Query Languages
- Events, Replication, CDC
- Caching
- Unit Tests
- HTML & Applications
- Migrations
- Performance Tuning
- Scaling & Storage
- Dashboards & UIs
- Visualization
- Package Management
- Language Servers
- Miscellaneous
- Simplify: move code into database functions
- Just Use Postgres for Everything
- PostgreSQL is the worlds' best database
- Postgres is eating the database world
- Hacker News discussion
- Choose Postgres queue technology (2023-09-24)
- Jepsen Test on Patroni: A PostgreSQL High Availability Solution (2024-12-02)
- PGLite: WASM Postgres build packaged into a TypeScript library (< 10MB) that can run in the browser, Node.js, Bun and Deno. It's lightweight, reactive and sync live.
- tembo-io/pgmq
- SKIP LOCKED
- riverqueue/river
- sequinstream/sequin: Sequin is a tool for change data capture (CDC) in Postgres. Sequin makes it easy to stream Postgres rows and changes to streaming platforms and queues (e.g. Kafka and SQS). You can backfill existing rows and stream new changes in real-time.
- janbjorge/pgqueuer: PgQueuer is a Python library leveraging PostgreSQL for efficient job queuing.
- timgit/pg-boss: pg-boss is a job queue built in Node.js
- pg_analytics: Transforming Postgres into a Fast OLAP Database](https://github.com/paradedb/pg_analytics)]
- pg_duckdb: Official Postgres extension for DuckDB
- BemiHQ/BemiDB: Postgres read replica optimized for analytics
- pg_moooncake: An extension for native columnstore tables in Postgres
- Mooncake-Labs/pg_mooncake: PostgreSQL extension that adds native columnstore tables with DuckDB execution.
- arkhipov/temporal_tables
- supabase/supa_audit
- pgMemento/pgMemento
- pgaudit/pgaudit
- BemiHQ/Bemi: Automatic data change tracking for PostgreSQL
- arkhipov/acl
- https://www.postgresql.org/docs/current/pgcrypto.html
- michelp/pgjwt
- supabase.com/docs/guides/database/vault
- Postgres Full Text Search (bunch of helpful links)
- paradedb/paradedb
- Postgres Full Text Search vs the rest
- plpgsql_bm25: BM25 search implemented in PL/pgSQL
- pgvector/pgvector
- tensorchord/VectorChord: PostgreSQL extension designed for scalable, high-performance, and disk-efficient vector similarity search. It serves as the successor to the pgvecto.rs project.
- timescale/pgai: PostgreSQL extension to allow RAG, semantic search and other AI application development from within postgres. Based on pgvector.
- timescale/pgvectorscale: DiskANN vector index implementation complementary to pgvector.
- plpgsql_bm25rrf.sql: Hybrid search (BM25+pgvector) with Reciprocal Rank Fusion implemented in PL/pgSQL
- timescale/timescaledb: TimescaleDB is PostgreSQL++ for time series and events.
- tembo-io/pg_timeseries: Open-source time-series extension for PostgreSQL
- JSON Types: Native support for JSON support in PostgreSQL
- robconery/dox
- https://www.ferretdb.com
- Using JSONB in PostgreSQL®: How to Effectively Store & Index JSON Data in PostgreSQL
- Apache Age: Graph Database for PostgreSQL to provide graph data processing and analytics capability to all relational databases.
- PostgREST: RESTful API from any existing PostgreSQL database
- Hasura GraphQL Engine: Metadata-driven API platform
- PostGraphile: Extensible high-performance automatic GraphQL API for PostgresSQL
- supabase/pg_graphql: PostgreSQL extension that enables querying the database with GraphQL using a single SQL function
- dosco/graphjin: GraphJin automatically converts GraphQL into SQL queries
- kaspermarstal/plprql: PostgreSQL extension to write functions using PRQL (Pipelined Relational Query Language)
- electric-sql/electric: HTTP API that enables synching Shapes (i.e. segments) of a Postgres database. It's like GraphQL for Postgres databases.
- The Notifier Pattern for Applications That Use Postgres
- SQL Notify
- cpursley/walex (Disclosure: I maintain this and think it's pretty awesome)
- PeerDB-io/peerdb
- debezium/debezium
- 2ndQuadrant/pglogical
- Supabase Index Advisor
- Dexter
- HypoPG
- pg_hint_plan
- PGHero
- pg_incremental: Extension to do fast, reliable, incremental batch processing.
- How Cloudflare Achieved 55 Million Requests per Second with Just 15 PostgreSQL Clusters!
- supabase/supavisor
- pg-sharding/spqr
- orioledb.com/: OrioleDB is a PostgreSQL extension that combines the advantages of both on-disk and in-memory engines. It uses PostgreSQL pluggable storage to increase performance and cut costs.
- dr-jts/pg_svg: Collection of PostgreSQL functions to create SVG graphics intended to convert PostGIS geometries into styled SVG documents
- Evidence
- Metabase
- Hopara: Platform for real-time data visualization intended for Manufacturing, IoT, Life Science and Data Lakes.
- Very comprehensive list of Postgres tooling
- Unsupported PostgreSQL features in Aurora DSQL: AWS has a new database engine called Aurora DSQL, and explicitly listed what PostgreSQL features are not supported.