GraphQL + Postgres + Tooling
Everything you need to develop a GraphQL app
Build your next GraphQL powered application like this one ... faster and easier with open source tools from Supabase, The Guild and more.
Technologies Used
- GraphQL Query and Mutation Operations
- The data on this page is fetched from the GraphQL layer auto-generated via pg_graphql.
- Pagination
- pg_graphql generates standardized pagination types and fields as defined by the GraphQL Cursor Connections Specification.
- GraphQL Code Generation
- GraphQL Code Generator introspects your GraphQL schema and operations and generates the types for full backend to frontend type-safety.
- GraphQL Fragments
- Components use GraphQL fragments to share logic between multiple queries and mutations.
- pg_graphql Postgres Extension
- pg_graphql generates a GraphQL API based on the Postgres schema.
- Total Counts
- Use pg_graphql's totalCount comment-based GraphQL Directive to count of the rows that match the query's filters.
- Schema Inflection
- Use pg_graphql's inflect_names comment-based GraphQL Directive to convert from snake_case to PascalCase for type names, and snake_case to camelCase for field names to match Javascript conventions when generating your GraphQL schema.
- Supabase Postgres
- Every Supabase project is a dedicated PostgreSQL database, trusted by millions of developers. It provide some of the most common extensions with a one-click install.
- Supabase Auth
- Authorization cannot get any easier. Every Supabase project comes with a complete User Management system that works without any additional tools.
- Postgres RLS
- Row level security on the Postgres layer ensures that viewers can only access what they are allowed to access and can only create records when authenticated.
- Postgres Functions
- Built-in support for SQL functions. These functions live inside your database, and they can be used with the Supabase API or invoked by a Postgres Trigger.
- Postgres Triggers
- Execute any SQL code after inserting, updating, or deleting data. We recalculate the feed scores by invoking a function each time someone votes (or change their vote).