@@ -18,128 +18,128 @@ const _items: Record<LearnPagePath, Omit<LearnPageItem, "title"> | null> = {
1818 } ,
1919 schema : {
2020 description :
21- "Learn the elements of the GraphQL type system and how schemas describe your data and relationships ." ,
21+ "Learn how GraphQL’s schema language defines the shape of your data using types ." ,
2222 icon : new URL ( "./icons/hierarchy.svg" , import . meta. url ) . href ,
2323 section : "getting-started" ,
2424 } ,
2525 queries : {
2626 description :
27- "Use query operations to fetch exactly the data you need from a GraphQL server ." ,
27+ "Understand how to structure GraphQL queries to request exactly the data you need — including fields, variables and fragments ." ,
2828 icon : new URL ( "./icons/search.svg" , import . meta. url ) . href ,
2929 section : "getting-started" ,
3030 } ,
3131 mutations : {
3232 description :
33- "See how mutation operations write data and when side effects are allowed in GraphQL ." ,
33+ "Explore how to modify data with mutations, including how to update and remove records through your schema ." ,
3434 icon : new URL ( "./icons/construction.svg" , import . meta. url ) . href ,
3535 section : "getting-started" ,
3636 } ,
3737 subscriptions : {
3838 description :
39- "Get real-time updates from a GraphQL server with long-lived subscription operations ." ,
39+ "Discover how GraphQL supports real-time data with subscriptions and how to use them effectively at scale ." ,
4040 icon : new URL ( "./icons/sync-square.svg" , import . meta. url ) . href ,
4141 section : "getting-started" ,
4242 } ,
4343 validation : {
4444 description :
45- "Validate operations against your schema to catch issues before execution ." ,
45+ "See how GraphQL ensures query correctness through validation rules and how common errors are detected early ." ,
4646 icon : new URL ( "./icons/product-check.svg" , import . meta. url ) . href ,
4747 section : "getting-started" ,
4848 } ,
4949 execution : {
5050 description :
51- "Understand how GraphQL resolves fields during execution to fulfill client requests ." ,
51+ "Learn how resolvers power GraphQL execution and how the server processes and returns data for each query ." ,
5252 icon : new URL ( "./icons/board.svg" , import . meta. url ) . href ,
5353 section : "getting-started" ,
5454 } ,
5555 response : {
5656 description :
57- "Learn how GraphQL responses mirror queries, include data, and surface errors ." ,
57+ "Explore how GraphQL structures its responses, including data, errors and extensions for custom metadata ." ,
5858 icon : new URL ( "./icons/share.svg" , import . meta. url ) . href ,
5959 section : "getting-started" ,
6060 } ,
6161 introspection : {
6262 description :
63- "Ask a schema about its types and fields using GraphQL's introspection system ." ,
63+ "Use introspection to explore the schema itself — a powerful way to inspect types and fields dynamically ." ,
6464 icon : new URL ( "./icons/zoom-page.svg" , import . meta. url ) . href ,
6565 section : "getting-started" ,
6666 } ,
6767 // ---
6868 "best-practices" : {
6969 description :
70- "Practical guidance for networking, authorization, pagination, and other everyday GraphQL concerns ." ,
70+ "Practical guidance for common GraphQL concerns like networking, authorization, and pagination ." ,
7171 icon : new URL ( "./icons/books.svg" , import . meta. url ) . href ,
7272 section : "best-practices" ,
7373 } ,
7474 "thinking-in-graphs" : {
7575 description :
76- "Model your business domain as a graph and use schemas to express connected types ." ,
76+ "Learn how to shift your mindset from RESTful endpoints to graph-based thinking, aligning your schema with business logic and legacy systems ." ,
7777 icon : new URL ( "./icons/layer.svg" , import . meta. url ) . href ,
7878 section : "best-practices" ,
7979 } ,
8080 "serving-over-http" : {
8181 description :
82- "Follow HTTP guidelines to respond to GraphQL queries and mutations over the web ." ,
82+ "Explore how GraphQL operates over HTTP, including methods, headers, status codes and API endpoint design ." ,
8383 icon : new URL ( "./icons/globe.svg" , import . meta. url ) . href ,
8484 section : "best-practices" ,
8585 } ,
8686 "file-uploads" : {
8787 description :
88- "Understand why file uploads are tricky in GraphQL and safer patterns to support them ." ,
88+ "Handle file uploads in GraphQL by wrapping them as mutations. Learn the recommended approach for integrating file handling into your API ." ,
8989 icon : new URL ( "./icons/note.svg" , import . meta. url ) . href ,
9090 section : "best-practices" ,
9191 } ,
9292 authorization : {
9393 description :
94- "Design authorization in your schema to control which users can access specific data ." ,
94+ "Understand how to secure your GraphQL APIs with type- and field-level authorization patterns ." ,
9595 icon : new URL ( "./icons/key.svg" , import . meta. url ) . href ,
9696 section : "best-practices" ,
9797 } ,
9898 pagination : {
9999 description :
100- "Paginate lists and connections so clients can traverse large graphs efficiently ." ,
100+ "Discover different pagination strategies in GraphQL, from simple slicing to fully connected edges and nodes ." ,
101101 icon : new URL ( "./icons/menu.svg" , import . meta. url ) . href ,
102102 section : "best-practices" ,
103103 } ,
104104 "schema-design" : {
105105 description :
106- "Evolve schemas without versioning while keeping types clear and future-friendly ." ,
106+ "Learn how to design clear, adaptable schemas — including versioning and thoughtful use of nullability ." ,
107107 icon : new URL ( "./icons/cog-double.svg" , import . meta. url ) . href ,
108108 section : "best-practices" ,
109109 } ,
110110 "global-object-identification" : {
111111 description :
112- "Expose global object IDs so clients can refetch, cache , and reference data reliably ." ,
112+ "Use globally unique IDs and the Node interface to enable caching, refetching , and efficient schema traversal ." ,
113113 icon : new URL ( "./icons/dna.svg" , import . meta. url ) . href ,
114114 section : "best-practices" ,
115115 } ,
116116 caching : {
117117 description :
118- "Use identifiers and response patterns that enable effective caching for GraphQL clients and servers ." ,
118+ "Explore caching techniques and ID strategies that make client-side performance and object reuse more effective ." ,
119119 icon : new URL ( "./icons/sync-square.svg" , import . meta. url ) . href ,
120120 section : "best-practices" ,
121121 } ,
122122 performance : {
123123 description :
124- "Optimize GraphQL requests and implementations for fast, efficient performance ." ,
124+ "Get practical tips for improving GraphQL performance — from preventing N+1 problems to monitoring and compression ." ,
125125 icon : new URL ( "./icons/startup.svg" , import . meta. url ) . href ,
126126 section : "best-practices" ,
127127 } ,
128128 security : {
129129 description :
130- "Protect GraphQL APIs against common attack vectors with layered security practices ." ,
130+ "Protect your GraphQL API with best practices for query limits, input validation, introspection control and more ." ,
131131 icon : new URL ( "./icons/safe.svg" , import . meta. url ) . href ,
132132 section : "best-practices" ,
133133 } ,
134134 federation : {
135135 description :
136- "Compose multiple services into a single graph using GraphQL federation ." ,
136+ "Learn how GraphQL federation enables modular, scalable APIs by composing services into a unified schema ." ,
137137 icon : new URL ( "./icons/globe.svg" , import . meta. url ) . href ,
138138 section : "best-practices" ,
139139 } ,
140140 "debug-errors" : {
141141 description :
142- "Identify common HTTP and GraphQL errors and debug them effectively ." ,
142+ "Learn about common 'graphql-http' errors and how to debug them." ,
143143 icon : new URL ( "./icons/solve.svg" , import . meta. url ) . href ,
144144 section : "best-practices" ,
145145 } ,
0 commit comments