# PostGraphile vs urql

**Leader by vioscaleAI score:** urql

| Attribute | PostGraphile | urql |
|---|---|---|
| **vioscaleAI score** | 52.2 (47% (low)) | 59.9 (51% (medium)) |
| activity.commits_last_30d | 16 | 3 |
| adoption.dependent_repos | 501 | 57,619 |
| adoption.github_stars | 12,935 | 8,980 |
| adoption.package_downloads_weekly | 101,072 | 1,178,429 |
| content.faq | `[{"answer":"An open-source tool that generates GraphQL APIs directly from PostgreSQL databases, with emphasis on performance and customizability. The generated API can be extended and modified to meet specific application needs. It is indexed under GraphQL Tools.","source":"https://www.graphile.org/postgraphile/","question":"What is PostGraphile?","confidence":0.6},{"answer":"PostGraphile is open source, so it can be self-hosted and used at no licence cost. It is released under the MIT licence. A commercial or hosted edition starts at $375. Prices are published openly on the vendor's own pricing page. Pricing changes often, so verify at source before relying on it.","source":"https://www.graphile.org/postgraphile/","question":"Is PostGraphile free to use?","confidence":0.6},{"answer":"We have confirmed browser-based access to PostGraphile. That is the extent of what we could verify from public sources, so it may well offer desktop or mobile clients we have not indexed.","source":"https://www.graphile.org/postgraphile/","question":"What platforms does PostGraphile support?","confidence":0.6},{"answer":"Yes. PostGraphile can be deployed self-hosted, so it does not have to run on the vendor's infrastructure.","source":"https://www.graphile.org/postgraphile/","question":"Can PostGraphile be self-hosted?","confidence":0.6},{"answer":"Yes. PostGraphile is published under the MIT licence, a permissive licence that generally allows commercial use and modification. Licence terms can change between releases, so verify against the repository for the version you intend to use.","source":"https://github.com/graphile/crystal","question":"Is PostGraphile open source?","confidence":0.99},{"answer":"PostGraphile is available worldwide. Its primary market is the United States.","source":"https://www.graphile.org/postgraphile/","question":"Where is PostGraphile available?","confidence":0.5}]` | `[{"answer":"A JavaScript GraphQL client that integrates with popular frameworks like React and Vue. The library is designed to be lightweight with optional features for caching and optimization. It is indexed under GraphQL Tools.","source":"https://urql.dev","question":"What is urql?","confidence":0.6},{"answer":"urql is open source, so it can be self-hosted and used at no licence cost. It is released under the MIT licence. Pricing changes often, so verify at source before relying on it.","source":"https://urql.dev","question":"Is urql free to use?","confidence":0.6},{"answer":"We have confirmed browser-based access to urql. That is the extent of what we could verify from public sources, so it may well offer desktop or mobile clients we have not indexed.","source":"https://urql.dev","question":"What platforms does urql support?","confidence":0.6},{"answer":"Yes. urql is published under the MIT licence, a permissive licence that generally allows commercial use and modification. Licence terms can change between releases, so verify against the repository for the version you intend to use.","source":"https://github.com/urql-graphql/urql","question":"Is urql open source?","confidence":0.99}]` |
| deployment.options | `{"self_hosted":true}` | - |
| description.long | PostGraphile is a tool that automatically creates a GraphQL API from a PostgreSQL database, eliminating the need to build custom APIs. It includes built-in security through PostgreSQL's role-based access and row-level security policies, along with performance optimization and extensibility features. | A framework-agnostic GraphQL client library that works with React, Preact, Vue, Solid, and Svelte, featuring flexible caching and a highly customizable API. |
| features.capabilities | `{"role":"db_to_graphql","language":"JavaScript/TypeScript","self_hostable":true,"subscriptions":true,"auth_directives":true,"schema_approach":"introspection","type_generation":true,"db_introspection":true}` | `{"role":"client","caching":true,"language":"TypeScript","subscriptions":true}` |
| integrations.count | 1 | - |
| integrations.list | `[{"name":"PostgreSQL"}]` | - |
| language.primary | TypeScript | TypeScript |
| license.spdx | MIT | MIT |
| market.availability | `{"primaryMarkets":["US"],"availabilityScope":"global","availableCountries":[],"notAvailableCountries":[]}` | - |
| platform.support | `{"cli":true}` | `{"web":true}` |
| pricing | `{"type":"open_source","plans":[{"free":true,"name":"Core (Open Source)","description":"Self-hosted GraphQL API generation from PostgreSQL","contactSales":false},{"free":false,"name":"On-Demand Consultancy","components":[{"kind":"one_time","amount":375,"currency":"USD"}],"description":"One hour of voice/screensharing with maintainer","contactSales":false},{"free":false,"name":"Development Support","components":[{"kind":"fixed","amount":999,"period":"month","currency":"USD"}],"description":"One-to-one access to Graphile team throughout the year; priority support via chat","contactSales":true}],"summary":"Open source and free. Professional support from $999/month.","freeTier":true,"sourceUrl":"https://www.graphile.org/postgraphile/","retrievedAt":"2026-08-14T16:37:12.955Z","startingPrice":{"amount":375,"period":"month","currency":"USD"}}` | `{"type":"open_source","summary":"Free and open source (MIT license)","freeTier":true,"sourceUrl":"https://urql.dev","retrievedAt":"2026-08-14T21:40:56.515Z"}` |
| pricing.free_tier | yes | yes |
| pricing.model | open_source | open_source |
| pricing.price_level | free | free |
| pricing.transparent | yes | - |
| release.cadence_days | - | 1 |
| release.history | `[{"url":"https://github.com/graphile/crystal/releases/tag/graphile-build-pg%405.1.5","date":"2026-10-02T08:22:45Z","type":"stable","version":"graphile-build-pg@5.1.5"},{"url":"https://github.com/graphile/crystal/releases/tag/grafast%401.1.4","date":"2026-10-02T08:22:43Z","type":"stable","version":"grafast@1.1.4"},{"url":"https://github.com/graphile/crystal/releases/tag/ruru%402.0.2","date":"2026-09-04T14:47:04Z","type":"stable","version":"ruru@2.0.2"},{"url":"https://github.com/graphile/crystal/releases/tag/ruru-components%402.0.1","date":"2026-09-04T14:47:01Z","type":"stable","version":"ruru-components@2.0.1"},{"url":"https://github.com/graphile/crystal/releases/tag/postgraphile%405.1.5","date":"2026-09-04T14:47:10Z","type":"stable","version":"postgraphile@5.1.5"},{"url":"https://github.com/graphile/crystal/releases/tag/graphile-config%401.1.1","date":"2026-09-04T14:47:07Z","type":"stable","version":"graphile-config@1.1.1"},{"url":"https://github.com/graphile/crystal/releases/tag/graphile-build-pg%405.1.4","date":"2026-09-04T14:47:13Z","type":"stable","version":"graphile-build-pg@5.1.4"},{"url":"https://github.com/graphile/crystal/releases/tag/grafserv%401.0.2","date":"2026-09-04T14:47:22Z","type":"stable","version":"grafserv@1.0.2"},{"url":"https://github.com/graphile/crystal/releases/tag/grafast%401.1.3","date":"2026-09-04T14:47:16Z","type":"stable","version":"grafast@1.1.3"},{"url":"https://github.com/graphile/crystal/releases/tag/%40dataplan/pg%401.1.2","date":"2026-09-04T14:47:19Z","type":"stable","version":"@dataplan/pg@1.1.2"},{"url":"https://github.com/graphile/crystal/releases/tag/postgraphile%405.1.4","date":"2026-08-05T13:36:30Z","type":"stable","version":"postgraphile@5.1.4"},{"url":"https://github.com/graphile/crystal/releases/tag/grafast%401.1.2","date":"2026-08-05T13:36:32Z","type":"stable","version":"grafast@1.1.2"},{"url":"https://github.com/graphile/crystal/releases/tag/postgraphile%405.1.3","date":"2026-08-04T07:44:26Z","type":"stable","version":"postgraphile@5.1.3"},{"url":"https://github.com/graphile/crystal/releases/tag/graphile-build-pg%405.1.3","date":"2026-08-04T07:44:29Z","type":"stable","version":"graphile-build-pg@5.1.3"},{"url":"https://github.com/graphile/crystal/releases/tag/grafast%401.1.1","date":"2026-08-04T07:44:32Z","type":"stable","version":"grafast@1.1.1"},{"url":"https://github.com/graphile/crystal/releases/tag/postgraphile%405.1.2","date":"2026-07-29T07:07:04Z","type":"stable","version":"postgraphile@5.1.2"},{"url":"https://github.com/graphile/crystal/releases/tag/graphile-build%405.1.1","date":"2026-07-29T07:07:01Z","type":"stable","version":"graphile-build@5.1.1"},{"url":"https://github.com/graphile/crystal/releases/tag/graphile-build-pg%405.1.2","date":"2026-07-29T07:07:07Z","type":"stable","version":"graphile-build-pg@5.1.2"},{"url":"https://github.com/graphile/crystal/releases/tag/postgraphile%405.1.1","date":"2026-07-22T10:38:15Z","type":"stable","version":"postgraphile@5.1.1"},{"url":"https://github.com/graphile/crystal/releases/tag/graphile-utils%405.0.3","date":"2026-07-22T10:38:12Z","type":"stable","version":"graphile-utils@5.0.3"}]` | `[{"url":"https://github.com/urql-graphql/urql/releases/tag/%40urql/exchange-graphcache%409.0.2","date":"2026-10-02T04:49:37Z","type":"stable","version":"@urql/exchange-graphcache@9.0.2"},{"url":"https://github.com/urql-graphql/urql/releases/tag/urql%405.0.4","date":"2026-08-21T17:08:08Z","type":"stable","version":"urql@5.0.4"},{"url":"https://github.com/urql-graphql/urql/releases/tag/%40urql/core%406.0.3","date":"2026-06-22T10:46:51Z","type":"stable","version":"@urql/core@6.0.3"},{"url":"https://github.com/urql-graphql/urql/releases/tag/urql%405.0.3","date":"2026-06-15T17:41:31Z","type":"stable","version":"urql@5.0.3"},{"url":"https://github.com/urql-graphql/urql/releases/tag/%40urql/vue%402.1.1","date":"2026-06-15T17:41:19Z","type":"stable","version":"@urql/vue@2.1.1"},{"url":"https://github.com/urql-graphql/urql/releases/tag/%40urql/next%402.0.1","date":"2026-06-15T17:41:22Z","type":"stable","version":"@urql/next@2.0.1"},{"url":"https://github.com/urql-graphql/urql/releases/tag/%40urql/exchange-graphcache%409.0.1","date":"2026-06-15T17:41:25Z","type":"stable","version":"@urql/exchange-graphcache@9.0.1"},{"url":"https://github.com/urql-graphql/urql/releases/tag/%40urql/core%406.0.2","date":"2026-06-15T17:41:28Z","type":"stable","version":"@urql/core@6.0.2"},{"url":"https://github.com/urql-graphql/urql/releases/tag/urql%405.0.2","date":"2026-04-15T03:03:48Z","type":"stable","version":"urql@5.0.2"},{"url":"https://github.com/urql-graphql/urql/releases/tag/%40urql/vue%402.1.0","date":"2026-04-01T18:38:53Z","type":"stable","version":"@urql/vue@2.1.0"},{"url":"https://github.com/urql-graphql/urql/releases/tag/%40urql/solid-start%400.2.0","date":"2026-04-01T18:38:56Z","type":"stable","version":"@urql/solid-start@0.2.0"},{"url":"https://github.com/urql-graphql/urql/releases/tag/%40urql/solid%401.0.1","date":"2026-01-25T10:17:50Z","type":"stable","version":"@urql/solid@1.0.1"},{"url":"https://github.com/urql-graphql/urql/releases/tag/%40urql/solid-start%400.1.0","date":"2026-01-25T10:17:47Z","type":"stable","version":"@urql/solid-start@0.1.0"},{"url":"https://github.com/urql-graphql/urql/releases/tag/%40urql/storage-rn%401.1.2","date":"2026-01-23T06:42:22Z","type":"stable","version":"@urql/storage-rn@1.1.2"},{"url":"https://github.com/urql-graphql/urql/releases/tag/%40urql/exchange-refocus%402.1.0","date":"2026-01-23T06:42:16Z","type":"stable","version":"@urql/exchange-refocus@2.1.0"},{"url":"https://github.com/urql-graphql/urql/releases/tag/%40urql/exchange-graphcache%409.0.0","date":"2026-01-23T06:42:19Z","type":"stable","version":"@urql/exchange-graphcache@9.0.0"},{"url":"https://github.com/urql-graphql/urql/releases/tag/urql%405.0.1","date":"2025-08-29T08:06:41Z","type":"stable","version":"urql@5.0.1"},{"url":"https://github.com/urql-graphql/urql/releases/tag/%40urql/exchange-persisted%405.0.1","date":"2025-08-11T05:29:00Z","type":"stable","version":"@urql/exchange-persisted@5.0.1"},{"url":"https://github.com/urql-graphql/urql/releases/tag/%40urql/core%406.0.1","date":"2025-08-11T05:29:03Z","type":"stable","version":"@urql/core@6.0.1"},{"url":"https://github.com/urql-graphql/urql/releases/tag/urql%405.0.0","date":"2025-08-09T13:26:59Z","type":"stable","version":"urql@5.0.0"}]` |
| reliability.status_page | yes | - |
| security.vulnerabilities | `{"count":0,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=npm&package_name=pg-sql2&per_page=100","last_12m":0,"max_severity":null}` | `{"count":0,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=npm&package_name=%40urql%2Fcore&per_page=100","last_12m":0,"max_severity":null}` |

## Capabilities (GraphQL Tools)

| Capability | PostGraphile | urql |
|---|:--:|:--:|
| **Core** |  |  |
| Role | DB-to-GraphQL | Client |
| Primary language | JavaScript/TypeScript | TypeScript |
| **Modelling** |  |  |
| Schema approach | DB introspection | - |
| **Scale** |  |  |
| Federation / subgraph composition | - | - |
| **Realtime** |  |  |
| Real-time subscriptions | ✓ | ✓ |
| **Performance** |  |  |
| Response / edge caching | - | ✓ |
| **DX** |  |  |
| Typed code generation | ✓ | - |
| **Automation** |  |  |
| Generates API from a database | ✓ | - |
| **Security** |  |  |
| Built-in authz / permissions | ✓ | - |
| **Deployment** |  |  |
| Official hosted offering | - | - |
| Self-hostable | ✓ | - |

*Source: vioscaleAI. Generated 2026-10-16T17:44:46.493Z. "-" = undocumented, not absent.*
