# GraphQL > GraphQL is a query language for APIs and a runtime for executing queries using a type system defined for your data. GraphQL.org is the official website for GraphQL. The GraphQL Specification is normative; the Learn materials explain the language and provide non-normative guidance for building and operating GraphQL APIs. GraphQL is language-neutral. GraphQL.js is the JavaScript reference implementation, not the GraphQL language itself. Listings of third-party tools, libraries, services, and training resources are informational and are not endorsements. ## Start Here - [GraphQL.org](https://graphql.org/): The official website for GraphQL documentation, resources, and community information. - [Learn GraphQL](https://graphql.org/learn/): A guided path through GraphQL fundamentals, best practices, and schema governance. - [GraphQL Specification](https://spec.graphql.org/): The normative definition of the GraphQL language. - [Frequently Asked Questions](https://graphql.org/faq/): Answers to common questions about GraphQL, its specification, and its ecosystem. ## Learn: Core Concepts - [Introduction](https://graphql.org/learn/introduction): Get a high-level overview of GraphQL and how it enables flexible, versionless APIs powered by a strong type system. - [Schemas and Types](https://graphql.org/learn/schema): Learn how GraphQL’s schema language defines the shape of your data using types. - [Queries](https://graphql.org/learn/queries): Understand how to structure GraphQL queries to request exactly the data you need — including fields, variables and fragments. - [Mutations](https://graphql.org/learn/mutations): Explore how to modify data with mutations, including how to update and remove records through your schema. - [Subscriptions](https://graphql.org/learn/subscriptions): Discover how GraphQL supports real-time data with subscriptions and how to use them effectively at scale. - [Validation](https://graphql.org/learn/validation): See how GraphQL ensures query correctness through validation rules and how common errors are detected early. - [Execution](https://graphql.org/learn/execution): Learn how resolvers power GraphQL execution and how the server processes and returns data for each query. - [Response](https://graphql.org/learn/response): Explore how GraphQL structures its responses, including data, errors and extensions for custom metadata. - [Introspection](https://graphql.org/learn/introspection): Use introspection to explore the schema itself — a powerful way to inspect types and fields dynamically. ## Learn: Best Practices - [Introduction](https://graphql.org/learn/best-practices): Understand the context behind the GraphQL Best Practices lessons. - [Thinking In Graphs](https://graphql.org/learn/thinking-in-graphs): Learn how to shift your mindset from RESTful endpoints to graph-based thinking, aligning your schema with business logic and legacy systems. - [Serving Over Http](https://graphql.org/learn/serving-over-http): Explore how GraphQL operates over HTTP, including methods, headers, status codes and API endpoint design. - [File Uploads](https://graphql.org/learn/file-uploads): Handle file uploads in GraphQL by wrapping them as mutations. Learn the recommended approach for integrating file handling into your API. - [Authorization](https://graphql.org/learn/authorization): Understand how to secure your GraphQL APIs with type- and field-level authorization patterns. - [Pagination](https://graphql.org/learn/pagination): Discover different pagination strategies in GraphQL, from simple slicing to fully connected edges and nodes. - [Schema Design](https://graphql.org/learn/schema-design): Learn how to design clear, adaptable schemas — including versioning and thoughtful use of nullability. - [Error Handling](https://graphql.org/learn/error-handling): Compare top-level errors and errors-as-data, and learn when to use each approach for exceptional versus expected failures. - [Global Object Identification](https://graphql.org/learn/global-object-identification): Use globally unique IDs and the Node interface to enable caching, refetching, and efficient schema traversal. - [Caching](https://graphql.org/learn/caching): Explore caching techniques and ID strategies that make client-side performance and object reuse more effective. - [Performance](https://graphql.org/learn/performance): Get practical tips for improving GraphQL performance — from preventing N+1 problems to monitoring and compression. - [Security](https://graphql.org/learn/security): Protect your GraphQL API with best practices for query limits, input validation, introspection control and more. - [Federation](https://graphql.org/learn/federation): Learn how GraphQL federation enables modular, scalable APIs by composing services into a unified schema. - [Robust Applications](https://graphql.org/learn/robust-applications): Build applications that gracefully handle schema evolution — unknown enum values, new union members, and nullable fields. - [Common GraphQL over HTTP Errors](https://graphql.org/learn/debug-errors): Learn about common 'graphql-http' errors and how to debug them. - [Naming Conventions and Design Standards](https://graphql.org/learn/naming-design): Learn how to establish naming conventions and design standards for your GraphQL schema. ## Learn: Schema Governance - [Schema Ownership and Governance Models](https://graphql.org/learn/governance-ownership): Explore different models for schema ownership and governance, including centralized, federated and hybrid approaches. - [Governance Tooling](https://graphql.org/learn/governance-tooling): Learn about schema governance and best practices for managing your GraphQL schema. - [Schema Review](https://graphql.org/learn/schema-review): Establish review processes and automated validation to keep your GraphQL schema consistent, safe, and easy to evolve. - [Schema Change Management](https://graphql.org/learn/governance-versioning): Learn how to manage schema changes and versioning in GraphQL, ensuring smooth evolution of your API. ## Implementations and Resources - [Resource Hub](https://graphql.org/resources/): Curated GraphQL tools, videos, articles, and learning resources. - [Frontend Resources](https://graphql.org/resources/frontend/): GraphQL clients, frontend techniques, videos, and articles. - [Backend Resources](https://graphql.org/resources/backend/): GraphQL server implementations and production guidance. - [Federation Resources](https://graphql.org/resources/federation/): Resources for composing and operating distributed GraphQL schemas. - [Security Resources](https://graphql.org/resources/security/): Guidance and tools for securing GraphQL APIs. - [AI Resources](https://graphql.org/resources/ai/): Patterns, tools, and implementations for using GraphQL with AI systems. - [Monitoring Resources](https://graphql.org/resources/monitoring/): Tools and guidance for monitoring GraphQL performance, usage, and schema changes. - [Tools and Libraries](https://graphql.org/community/tools-and-libraries/): Community-maintained GraphQL clients, servers, tools, and services organized by language and purpose. - [GraphQL.js](https://www.graphql-js.org/docs/): Documentation for the JavaScript reference implementation of GraphQL. ## Project and Community - [How GraphQL Is Developed](https://graphql.org/community/contribute/how-graphql-is-developed/): How the specification, working groups, implementations, and tools evolve. - [Project Governance](https://graphql.org/community/contribute/governance/): Technical governance of the GraphQL project and its relationship to the GraphQL Foundation. - [Project Meetings](https://graphql.org/community/contribute/project-meetings/): Working group and subcommittee meetings for GraphQL development. - [Contributing to GraphQL](https://graphql.org/community/contribute/essential-links/): Essential links for participating in the GraphQL project. - [Official Channels](https://graphql.org/community/official-channels/): Official GraphQL community and support channels. - [GraphQL Foundation](https://graphql.org/community/foundation/): The neutral foundation supporting the GraphQL community and ecosystem. ## Optional - [GraphQL Blog](https://graphql.org/blog/): Project announcements, technical articles, and community news. - [GraphQL Blog RSS Feed](https://graphql.org/blog/rss.xml): RSS feed for GraphQL blog posts. - [Community Events](https://graphql.org/community/events/): GraphQL community events and meetups. - [Community Events RSS Feed](https://graphql.org/community/events/rss.xml): RSS feed for GraphQL community events. - [GraphQLConf 2026](https://graphql.org/conf/2026/): The official GraphQL conference. - [GraphQL Days](https://graphql.org/day/): GraphQL community events held around the world. - [Brand Guidelines](https://graphql.org/brand/): Guidance for using the GraphQL name and visual identity. - [Code of Conduct](https://graphql.org/codeofconduct/): The code of conduct governing the GraphQL community.