page:guides:react router:database connection

Connect Postgres for React Router

Connect a React Router app to PostgreSQL on Ample. Read DATABASE_URL at runtime with pg: when you supply one with --env it is delivered encrypted and takes precedence; when you supply none and the app needs PostgreSQL, Ample auto-provisions a managed PostgreSQL 16 database and injects its connection string.

Representative Queries

Resource Requirements

Infrastructure Requirements

Prerequisites

Workflow Steps

  1. Read the URL at runtime: Open connections from the DATABASE_URL environment variable inside the app; never commit credentials and never connect at build time.
  2. Choose the source of the database: Pass --env DATABASE_URL=... for an existing database, or omit it to let Ample provision a managed one on first deploy and reuse it on redeploys.
    • Command: ample deploy . --name --public
  3. Test the connection through the app: Expose a route (/db) that runs a trivial query and returns postgres=ok.
  4. Verify: Fetch the live URL and run the success checks below. On failure read the build log, then the runtime log, fix the cause and deploy again; do not blind-retry.
    • Command: ample logs --kind build

Limitations

Cost Estimate

Components

Note

Apps and managed databases auto-pause when idle; the estimate is the always-on monthly price of the tested sizes. Plan quotas and budgets apply.

Examples

React Router + PostgreSQL canary

Success Checks

Next Actions