# Constructive > Constructive delivers secure-by-default Postgres with structured row-level security, multi-tenancy, and AI-native infrastructure—built for enterprise precision. ## Courses ### Quickstart: Getting Up and Running - [Prerequisites](https://constructive.io/learn/quickstart/prerequisites.md): Set up Node.js, Postgres, and pgpm. Everything you need to get started with modular database development. - [Spinning Up a Modular Database in 2 Minutes](https://constructive.io/learn/quickstart/spinning-up-modular-postgres.md): Experience the power of modular databases by installing a pre-built module and deploying it to Postgres—no SQL writing required. ### Modular Postgres Development with Database Packages - [pgpm Workspaces: A New Way to Organize Postgres Projects](https://constructive.io/learn/modular-postgres/workspaces-organize-postgres.md): Understand how pgpm workspaces bring npm-style modularity to Postgres development. - [Initializing a Workspace for Modular Postgres Development](https://constructive.io/learn/modular-postgres/initializing-workspace.md): Set up your first pgpm workspace with proper configuration and structure. - [Creating Your First Postgres Database Module](https://constructive.io/learn/modular-postgres/creating-first-module.md): Build your first database module with deploy, revert, and verify scripts. - [Testing Your Database Module](https://constructive.io/learn/modular-postgres/testing-your-module.md): Write and run tests for your database module with watch mode for rapid feedback. - [Managing Database Package Dependencies in a Workspace](https://constructive.io/learn/modular-postgres/managing-dependencies.md): Master module dependencies, cross-module references, and automatic dependency resolution. ### Authoring Database Changes - [Adding Your First Database Change](https://constructive.io/learn/authoring-database-changes/adding-your-first-database-change.md): Learn the fundamental workflow for adding database changes using the pgpm add command and the three-file pattern for safe, reversible migrations. - [Change Naming Conventions](https://constructive.io/learn/authoring-database-changes/organizing-database-changes-with-nested-paths.md): Structure migrations using nested paths for maintainable schemas. - [Plan Files and Deployment Plans](https://constructive.io/learn/authoring-database-changes/plan-files-and-deployment-plans.md): Understand the plan file format and how pgpm generates deployment plans from SQL dependencies. ### End-to-End Postgres Testing with TypeScript - [Spinning Up Temporary Testing Databases for Postgres](https://constructive.io/learn/e2e-postgres-testing/spinning-up-temporary-testing-databases.md): Create ephemeral Postgres databases for testing with pgsql-test. Fast, isolated, and automatically cleaned up. - [How to Test Row-Level Security (RLS) in Postgres](https://constructive.io/learn/e2e-postgres-testing/testing-rls-policies.md): Test RLS policies by simulating different users and roles. Verify that your security policies actually work as intended. - [Advanced RLS Testing Scenarios - Simulating Many Users and Roles](https://constructive.io/learn/e2e-postgres-testing/advanced-rls-testing-scenarios.md): Test complex multi-user scenarios by switching between users within tests. Master the savepoint pattern to handle exceptions and aborted transactions when testing operations that should fail. - [Seeding Postgres Test Databases](https://constructive.io/learn/e2e-postgres-testing/seeding-test-databases.md): Learn how to seed test databases with realistic data using loadJson, loadSql, and loadCsv methods for comprehensive testing scenarios. ### End-to-End Postgres Testing with Supabase - [Supabase Testing for the Modern Developer](https://constructive.io/learn/supabase/supabase-test.md): Introducing Supabase Test Suite: TypeScript-native testing for Supabase with isolated databases, RLS testing, and instant feedback loops. - [Setting Up Local Supabase Database Testing](https://constructive.io/learn/supabase/setting-up-local-supabase-testing.md): Get started with supabase-test: install dependencies, configure local Supabase, and write your first isolated database test with automatic rollbacks. - [Writing Your First Supabase Test in TypeScript](https://constructive.io/learn/supabase/writing-your-first-supabase-test-in-typescript.md): Create your first Supabase test with supabase-test's getConnections(), understand test isolation, and verify your setup with simple database queries. - [Testing Row-Level Security Policies in Supabase](https://constructive.io/learn/supabase/testing-rls-policies-in-supabase.md): Test Supabase RLS policies by simulating authenticated users and anonymous access. Verify your security policies work as intended with supabase-test. - [Seeding Supabase Test Databases](https://constructive.io/learn/supabase/seeding-supabase-test-databases.md): Learn how to seed Supabase test databases with auth.users, realistic data using loadJson, loadSql, and loadCsv methods for comprehensive testing. - [Running Supabase Tests in GitHub Actions](https://constructive.io/learn/supabase/running-supabase-tests-in-github-actions.md): Set up GitHub Actions CI/CD pipeline to automatically test your Supabase database with every commit. Learn how to configure workflows, start Supabase, and run tests. - [Troubleshooting Supabase Test](https://constructive.io/learn/supabase/supabase_troubleshooting.md): Automate Supabase testing in GitHub Actions: provision local Supabase stack, run tests in CI, and optimize for fast feedback loops. ### End-to-End Postgres Testing with Drizzle ORM - [How to Setup Drizzle ORM for End-to-End Testing](https://constructive.io/learn/drizzle-testing/drizzle-orm-setup-and-basic-testing.md): Set up Drizzle ORM with drizzle-orm-test for Postgres testing. Create type-safe database queries with automatic test isolation. - [Testing Row-Level Security with Drizzle ORM](https://constructive.io/learn/drizzle-testing/testing-rls-with-drizzle-orm.md): Test RLS policies with Drizzle ORM using automatic context management. Verify security policies with type-safe queries. ### End-to-End Postgres Testing with PGlite - [How to Set Up PGlite for End-to-End Testing](https://constructive.io/learn/pglite-testing/pglite-setup-and-basic-testing.md): Set up pglite-test to run Postgres migrations and tests entirely in-process with PGlite—no server, no Docker, no services. Real migrations, transaction isolation, and instant CI. - [Testing Row-Level Security and Extensions with PGlite](https://constructive.io/learn/pglite-testing/testing-rls-with-pglite.md): Test RLS policies in-process with PGlite by switching user contexts, wire up a WASM extension like pgvector, and run it all in services-free CI. ### Troubleshooting - [Common Issues and Solutions](https://constructive.io/learn/troubleshooting/common-issues-and-solutions.md): Quick fixes for common pgpm, Postgres, and testing issues. ## Blog - [PGlite + pgpm: End-to-End Postgres Testing in Your Test Runner](https://constructive.io/blog/pglite-testing.md): Run real Postgres migrations and tests entirely in-process with PGlite. No server, no Docker, no CI services—just install and test. Explore Constructive's new pglite-test library, reference suite, and hands-on tutorials for fast, secure, services-free Postgres testing. - [From Vibe Coding to Agentic Engineering](https://constructive.io/blog/from-vibe-coding-to-agentic-engineering.md): Notes from the May 1 panel at SVB Experience Center with DeepMind, Mastra, and Constructive. As AI drives the cost of code toward zero, the bottleneck shifts to trust — and the engineer's job is no longer writing code, it's designing systems that produce code we can rely on. - [Putting Postgres in package.json](https://constructive.io/blog/postgresconf-2026-part-3-modularity.md): Part 3 of our PostgresConf 2026 series. Inside the second talk: pgpm, modular databases, and why test-driven database development is a survival requirement for AI-generated code. - [When Trust Becomes Infrastructure: Secure-by-Default Postgres](https://constructive.io/blog/postgresconf-2026-part-2-security.md): Part 2 of our PostgresConf 2026 series. A recap of the keynote on why human code review can't keep up with AI-generated code—and why trust has to move down the stack into a secure-by-default database. - [From Berkeley to AI: Reflections on PostgresConf 2026](https://constructive.io/blog/postgresconf-2026-part-1-community.md): Part 1 of our PostgresConf 2026 series. Sitting down with original Berkeley Postgres developers Greg Kemnitz and Curt Kolovson, and dbtune's Luigi Nardi, on how a forty-year-old database became the foundation for the AI era. - [Agentic DB: The Open-Source Brain for Your Agents](https://constructive.io/blog/agentic-db-open-source.md): Introducing agentic-db — a full-stack Postgres knowledge base and personal CRM, installable in one command via pgpm. The open-source schema gives you vector search, full-text search, and auto-embeddings. - [Agent Orchestration Doesn’t Solve Trust](https://constructive.io/blog/multi-agent-future.md): The multi-agent future just got real. Here's why it needs a trust layer at the database — and why orchestration frameworks alone can't solve the data and authorization problem. - [Agents Are Probabilistic. Your Business Can’t Be](https://constructive.io/blog/agents-are-probabilistic.md): AI agents are inherently probabilistic, but businesses run on deterministic systems. Constructive is building secure-by-default Postgres infrastructure so the database becomes the trust boundary for the agentic era. - [What We Mean by Secure-by-Default Postgres](https://constructive.io/blog/secure-by-default-postgres.md): Security settings and secure architecture are not the same thing. Constructive introduces the first secure-by-default Postgres platform—where RLS policies are compiled and enforced at table creation, not bolted on after the fact. - [100 Million Downloads](https://constructive.io/blog/100-million-downloads.md): Constructive's open-source ecosystem has officially crossed 100 million npm downloads. A milestone built nearly a decade of work—and a community that made it possible. - [Trusted LLM RAG Pipeline: Ollama & Postgres](https://constructive.io/blog/ollama-pgpm-integration.md): A reference implementation for building Retrieval-Augmented Generation (RAG) pipelines using local LLMs, Postgres, and pgvector. Real embeddings, semantic search, and end-to-end tests you can trust—all in a pgpm workspace. - [Introducing Modular Postgres: Announcing pgpm](https://constructive.io/blog/modular-postgres-pgpm.md): Introducing pgpm and a new category: Modular Postgres. Build composable, application-layer database modules that can be installed from npm, tested in CI/CD, and deployed with idempotent migrations and automatic dependency resolution. - [Introducing Constructive — A Trusted Open-Source Platform Built to Last](https://constructive.io/blog/introducing-constructive.md): After a decade of building open-source database tools used by Supabase, Binance, and platforms with billions in enterprise value, we're unifying everything under one name: Constructive—a secure-by-design platform for composable Postgres backends. - [The Future of Postgres Testing: A Complete End-to-End TypeScript Approach with pgsql-test](https://constructive.io/blog/end-to-end-postgres-tests-in-typescript.md): Discover how pgsql-test brings TypeScript-native testing to Postgres with ephemeral databases, instant feedback loops, and powerful RLS testing capabilities. Making database testing feel as smooth as testing your frontend code. - [Build Safer Supabase Apps with supabase-test](https://constructive.io/blog/supabase-test-suite.md): Unlock faster Supabase development with instant test feedback, modular workflows, and reliable RLS validation. Explore Constructive's new supabase-test library, example test harness, and tutorials for building secure, high-velocity Postgres apps. - [KubernetesJS: The React Moment for Cloud Infrastructure](https://constructive.io/blog/kubernetesjs.md): Introducing KubernetesJS, a fully typed TypeScript client that replaces YAML and Helm with real code. Learn how this revolutionary tool brings React-like composability to Kubernetes, enables browser-based infrastructure management, and transforms DevOps with testable, modular infrastructure components. Discover why this is the React moment for cloud infrastructure. ## Optional - [Acceptable Use Policy](https://constructive.io/legal/acceptable-use-policy.md) - [Brand Guidelines](https://constructive.io/legal/brand-guidelines.md) - [Disclaimer](https://constructive.io/legal/disclaimer.md) - [License](https://constructive.io/legal/license.md) - [Privacy Policy](https://constructive.io/legal/privacy-policy.md) - [Terms Of Service](https://constructive.io/legal/terms-of-service.md)