name: apollo-graphql description: "[Applies to: **/*.{js,jsx}] Definitive guidelines for building robust, performant, and maintainable apollo-graphql applications using modern best practices and tooling." source: "cursor_mdc"
apollo-graphql Best Practices
This guide outlines our definitive best practices for developing with Apollo GraphQL, covering both server-side (Apollo Server 5) and client-side (Apollo Client) implementations. Adhering to these rules ensures consistency, performance, and maintainability across our GraphQL ecosystem.
1. Schema Design and Organization
Your GraphQL schema is the contract. Design it meticulously, document it thoroughly, and organize it logically.
1.1 Schema-First Development with SDL
Always start by defining your schema using Schema Definition Language (SDL). This forces clear API design before implementation.
❌ BAD
// Implicit schema definition through resolvers
const resolvers = {
Query: {
users: () => [{ id: '1', name: 'Alice' }],
},
};
// Schema is inferred or built programmatically, harder to review
✅ GOOD
# schema/user.graphql
"""Represents a user in the system."""
type User {
id: ID!
name: String!
email: String
}
type Query {
"""Fetches a list of all users."""
users: [User!]!
"""Fetches a single user by their ID."""
user(id: ID