for PostgreSQL

PostgreSQL admin in a single PHP file

Built for developers who work with PostgreSQL and want the same drop-in admin experience AMPLE provides for MySQL — without installing pgAdmin or setting up a separate admin stack.

Drop apple.php next to your application, enter your connection details, and you have a complete PostgreSQL admin interface in under a minute. Full schema support, arrays, JSONB, enums, sequences — all handled automatically.

Browse across schemas, insert and edit records, run raw SQL queries, and export results to CSV or JSON — without touching a line of code.

Reading level

Full CRUD

Browse, insert, update, and delete records across any schema and table. Pagination, inline actions, and bulk delete included.

Browse, insert, update, and delete records across any schema and table. Pagination, inline actions, and bulk delete included.

Native Postgres types

Auto-detects arrays, JSONB, enums, hstore, UUID, and sequences — rendering the right input for every column automatically.

Auto-detects arrays, JSONB, enums, hstore, UUID, and sequences — rendering the right input for every column automatically.

Schema navigation

Browse and switch between PostgreSQL schemas and the tables within them from the sidebar.

Browse and switch between PostgreSQL schemas and the tables within them from the sidebar.

Column rules

Store per-column configuration in Postgres comments. Override labels, add hints, mark fields as readonly or hidden.

Store per-column configuration in Postgres comments. Override labels, add hints, mark fields as readonly or hidden.

Lockable config

Ship a config.php to pre-lock host, port, schema, or table. Ideal for embedding next to a specific app.

Ship a config.php to pre-lock host, port, schema, or table. Ideal for embedding next to a specific app.

One file

Everything in apple.php — no Composer, no npm, no build step. Upload it however you deploy.

Everything in apple.php — no Composer, no npm, no build step. Upload it however you deploy.

Download

Grab the zip or the bare PHP file below.

Upload

Drop apple.php anywhere on a PHP 8.2+ server.

Connect

Open it in a browser, enter your PostgreSQL credentials, and go.

Schema Exploration During Development

When you’re iterating on a schema, APPLE gives you an instant visual inventory of every table, column, type, constraint, and sequence across all schemas in your database. No connection string juggling, no GUI app to install — just drop the file next to your project and browse. Enum values, hstore pairs, and JSONB blobs render inline so you can verify migrations without writing throwaway queries.

Staging Data Verification

Before a release, QA and developers need to confirm that seeded data, migrated rows, and computed columns look correct. APPLE turns that into a two-minute task: point it at your staging database, lock the config so no one writes accidentally, and share the URL with your team. Filtering and pagination keep large result sets manageable without touching the command line.

Controlled Read-Only Access for Non-Engineers

Product managers and data analysts often need to look up records or verify counts without going through a developer. APPLE’s per-column rules — configured through standard Postgres comments — let you hide sensitive columns or mark fields read-only before sharing access. Pair that with a locked config.php and the interface exposes exactly what you intend, nothing more.

Multi-Tenant Schema-Per-Tenant Architectures

Applications that isolate tenants in separate Postgres schemas need a way to inspect any tenant’s data quickly during support or debugging. APPLE’s schema switcher surfaces every schema in the database and lets you jump between them without reconnecting. One file, one deployment, full visibility across every tenant schema without maintaining per-tenant tooling.

APPLE isn’t trying to replace every tool in the ecosystem — here’s how it fits relative to the options you’ve likely already considered.

pgAdmin

pgAdmin is a full-featured desktop and web IDE with query planning, role management, backup scheduling, and a deep configuration surface. That power comes with real weight: a multi-service install, a Python runtime, and a learning curve that can slow down simple tasks. APPLE covers the 90% use case — browse, edit, verify — with a single file drop and zero infrastructure overhead, making it a better fit when you need access fast without standing up a separate service.

Adminer

Adminer is the closest spiritual relative — also a single PHP file, also broad database support. The tradeoff is that Adminer is generalist by design: it supports MySQL, SQLite, and others, which means Postgres-specific types like arrays, hstore, enums, and JSONB get generic treatment rather than first-class rendering. APPLE is Postgres-only and uses that focus to handle native types correctly, expose sequence values, and surface per-column metadata that Adminer doesn’t reach.

Postico / TablePlus

Postico and TablePlus are polished native desktop apps with excellent ergonomics for engineers who live in them daily. They require a local install, a paid license for full functionality, and they don’t work in server or shared environments where you need browser-based access. APPLE fills the gaps those tools can’t: deployable alongside a web app, accessible from any browser, and shareable with team members who don’t have a database client installed.

  • Yes, with appropriate access controls. APPLE itself includes CSRF protection on all write operations and supports per-column rules that let you mark fields read-only or hidden entirely. The bigger responsibility is yours: protect the URL behind HTTP authentication, a VPN, or an IP allowlist before exposing it to the network. A locked config.php prevents runtime tampering. Treat it the same way you’d treat any internal admin tool — don’t expose it publicly without authentication in front of it.

  • APPLE targets PostgreSQL 12 and later. It relies on standard catalog tables and type OIDs that have been stable across that range, so it works correctly with 12, 13, 14, 15, 16, and 17. Postgres-native types like JSONB, hstore, and typed enums are handled using the server’s own type system, so behavior tracks the version you’re running without any version-specific workarounds in the code.

  • JSONB columns render as formatted, indented JSON in the edit interface so structure is immediately readable rather than showing a raw string blob. Arrays use PostgreSQL’s native array literal syntax — you edit them as comma-separated values in curly-brace notation, the same format Postgres itself uses. Both types round-trip correctly through the insert and update forms without any manual serialization or casting on your part.

  • Yes. APPLE reads the list of schemas available to the connected database user and presents them in a schema switcher at the top of the interface. Selecting a different schema immediately shows that schema’s tables and views. The connected credentials determine which schemas are visible — if the Postgres user only has access to specific schemas, only those appear. No file edits or server restarts required.

  • APPLE is released under the Elastic License 2.0 (ELv2). You can use it freely to run, modify, and deploy the tool for your own internal purposes — personal projects, team tooling, client work. The restriction ELv2 adds is that you may not offer APPLE as a hosted managed service to third parties. If you’re using it inside your own stack, you’re well within the license terms.

  • APPLE paginates all result sets and never issues an unbounded SELECT against large tables. The default page size is configurable, and the interface shows row counts using Postgres’s fast estimate from pg_class rather than a full COUNT(*) scan, so the interface stays responsive even on tables with hundreds of millions of rows. For precise filtering, you can apply WHERE conditions before browsing, which pushes the predicate to Postgres and keeps result sets small.