<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Dart Frog | Blog</title><description/><link>https://dart-frog.dev/</link><language>en</language><item><title>Dart Frog and GraphQL Basics</title><link>https://dart-frog.dev/blog/dart-frog-graphql-basics/</link><guid isPermaLink="true">https://dart-frog.dev/blog/dart-frog-graphql-basics/</guid><description>A guide on the basics of building a GraphQL server powered by Dart Frog.

</description><pubDate>Sun, 22 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;While Dart Frog doesn’t provide an “out of the box” way to implement a GraphQL
schema, in this blog we’ll walk through how to build a GraphQL server powered by
Dart Frog with just a few additional Dart packages.&lt;/p&gt;
&lt;aside aria-label=&quot;Note&quot;&gt;&lt;p aria-hidden=&quot;true&quot;&gt;Note&lt;/p&gt;&lt;div&gt;&lt;p&gt;The goal of this guide is not to discuss the pros and cons of using GraphQL over
REST or other protocols. This guide is focused on illustrating one way to
implement a GraphQL server powered by Dart Frog.&lt;/p&gt;&lt;/div&gt;&lt;/aside&gt;
&lt;div&gt;&lt;h2 id=&quot;getting-started&quot;&gt;Getting Started&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;To get started, simply create a dart frog server as you would normally would
using the &lt;code dir=&quot;auto&quot;&gt;dart_frog create&lt;/code&gt; command.&lt;/p&gt;
&lt;p&gt;Once you have a project, add two dependencies from &lt;a href=&quot;https://pub.dev&quot;&gt;pub.dev&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://pub.dev/packages/graphql_schema2&quot;&gt;&lt;code dir=&quot;auto&quot;&gt;graphql_schema2&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://pub.dev/packages/graphql_server2&quot;&gt;&lt;code dir=&quot;auto&quot;&gt;graphql_server2&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;dart&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;pub&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;add&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;graphql_schema2&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;dart&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;pub&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;add&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;graphql_server2&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;The &lt;code dir=&quot;auto&quot;&gt;graphql_schema2&lt;/code&gt; package will be used to create the schema and
&lt;code dir=&quot;auto&quot;&gt;graphql_server2&lt;/code&gt; will transform the schema into a server, or in our case, a
route in our Dart Frog server.&lt;/p&gt;
&lt;p&gt;Next, we need to create the schema. Consider this hypothetical API:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Cool Games API is a GraphQL server that provides a way to query cool games
for cool people to download.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Our example schema is composed of an entity called game, that has three fields,
&lt;code dir=&quot;auto&quot;&gt;id&lt;/code&gt;, &lt;code dir=&quot;auto&quot;&gt;name&lt;/code&gt;, &lt;code dir=&quot;auto&quot;&gt;downloadLink&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;We can model that entity with the following plain Dart class:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Game&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Game&lt;/span&gt;&lt;span&gt;({&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;required&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.id,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;required&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.name,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;required&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;this&lt;/span&gt;&lt;span&gt;.downloadLink,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;});&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;final&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; id;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;final&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;String&lt;/span&gt;&lt;span&gt; name;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;final&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;String&lt;/span&gt;&lt;span&gt; downloadLink;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;We can then describe that model in a GraphQL schema:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;GraphQLObjectType&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;createGameSchema&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;RequestContext&lt;/span&gt;&lt;span&gt; context,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;) {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;final&lt;/span&gt;&lt;span&gt; gameType &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;objectType&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;&apos;game&apos;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;fields&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;field&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&apos;id&apos;&lt;/span&gt;&lt;span&gt;, graphQLInt, resolve&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; (obj, args) &lt;/span&gt;&lt;span&gt;=&gt;&lt;/span&gt;&lt;span&gt; (obj &lt;/span&gt;&lt;span&gt;as&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Game&lt;/span&gt;&lt;span&gt;).id),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;field&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;&apos;name&apos;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;graphQLString,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;resolve&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; (obj, args) &lt;/span&gt;&lt;span&gt;=&gt;&lt;/span&gt;&lt;span&gt; (obj &lt;/span&gt;&lt;span&gt;as&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Game&lt;/span&gt;&lt;span&gt;).name,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;field&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;&apos;downloadLink&apos;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;graphQLString,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;resolve&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; (obj, args) &lt;/span&gt;&lt;span&gt;=&gt;&lt;/span&gt;&lt;span&gt; (obj &lt;/span&gt;&lt;span&gt;as&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Game&lt;/span&gt;&lt;span&gt;).downloadLink,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;],&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; gameType;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Next, we need to create a full schema that includes the queries we will expose
from our server.&lt;/p&gt;
&lt;p&gt;Let’s write a repository that we can use to query games:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;GameRepository&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;Future&lt;/span&gt;&lt;span&gt;&amp;#x3C;&lt;/span&gt;&lt;span&gt;List&lt;/span&gt;&lt;span&gt;&amp;#x3C;&lt;/span&gt;&lt;span&gt;Game&lt;/span&gt;&lt;span&gt;&gt;&gt; &lt;/span&gt;&lt;span&gt;fetchGames&lt;/span&gt;&lt;span&gt;() &lt;/span&gt;&lt;span&gt;async&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&gt;&lt;/span&gt;&lt;span&gt; _games;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;Future&lt;/span&gt;&lt;span&gt;&amp;#x3C;&lt;/span&gt;&lt;span&gt;Game&lt;/span&gt;&lt;span&gt;?&gt; &lt;/span&gt;&lt;span&gt;fetchGameById&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; id) &lt;/span&gt;&lt;span&gt;async&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;final&lt;/span&gt;&lt;span&gt; result &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; _games.&lt;/span&gt;&lt;span&gt;where&lt;/span&gt;&lt;span&gt;((game) &lt;/span&gt;&lt;span&gt;=&gt;&lt;/span&gt;&lt;span&gt; game.id &lt;/span&gt;&lt;span&gt;==&lt;/span&gt;&lt;span&gt; id);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (result.isEmpty) &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;null&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; result.first;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt; _games &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;Game&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;name&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;Mine Cat Digger&apos;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;downloadLink&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;https://g4me.info/catdigger&apos;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;Game&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;name&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;Pixelado&apos;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;downloadLink&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;https://g4me.info/pixelado&apos;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;];&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;aside aria-label=&quot;Tip&quot;&gt;&lt;p aria-hidden=&quot;true&quot;&gt;Tip&lt;/p&gt;&lt;div&gt;&lt;p&gt;Don’t forget to provide the repository to our context using
&lt;a href=&quot;https://dart-frog.dev/basics/dependency-injection&quot;&gt;dependency injection&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;/aside&gt;
&lt;p&gt;The code to create the queries would look something like:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;GraphQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;createGraphQL&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;RequestContext&lt;/span&gt;&lt;span&gt; context) {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;final&lt;/span&gt;&lt;span&gt; gameSchema &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;createGameSchema&lt;/span&gt;&lt;span&gt;(context);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;final&lt;/span&gt;&lt;span&gt; schema &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;graphQLSchema&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;queryType&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;objectType&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;&apos;Query&apos;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;fields&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;field&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;          &lt;/span&gt;&lt;span&gt;&apos;games&apos;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;          &lt;/span&gt;&lt;span&gt;listOf&lt;/span&gt;&lt;span&gt;(gameSchema),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span&gt;resolve&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; (_, __) &lt;/span&gt;&lt;span&gt;=&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span&gt;context.&lt;/span&gt;&lt;span&gt;read&lt;/span&gt;&lt;span&gt;&amp;#x3C;&lt;/span&gt;&lt;span&gt;GameRepository&lt;/span&gt;&lt;span&gt;&gt;()&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;              &lt;/span&gt;&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;fetchGames&lt;/span&gt;&lt;span&gt;(),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;field&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;          &lt;/span&gt;&lt;span&gt;&apos;findGame&apos;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span&gt;gameSchema,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span&gt;inputs&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;            &lt;/span&gt;&lt;span&gt;GraphQLFieldInput&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&apos;id&apos;&lt;/span&gt;&lt;span&gt;, graphQLInt),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span&gt;],&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span&gt;resolve&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; (_, args) &lt;/span&gt;&lt;span&gt;=&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span&gt;context.&lt;/span&gt;&lt;span&gt;read&lt;/span&gt;&lt;span&gt;&amp;#x3C;&lt;/span&gt;&lt;span&gt;GameRepository&lt;/span&gt;&lt;span&gt;&gt;().&lt;/span&gt;&lt;span&gt;fetchGameById&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;              &lt;/span&gt;&lt;/span&gt;&lt;span&gt;args[&lt;/span&gt;&lt;span&gt;&apos;id&apos;&lt;/span&gt;&lt;span&gt;] &lt;/span&gt;&lt;span&gt;as&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;],&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;GraphQL&lt;/span&gt;&lt;span&gt;(schema);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Finally, we need to expose this via a route. Let’s create a &lt;code dir=&quot;auto&quot;&gt;graphql.dart&lt;/code&gt; route
in our server with the following code:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;Future&lt;/span&gt;&lt;span&gt;&amp;#x3C;&lt;/span&gt;&lt;span&gt;Response&lt;/span&gt;&lt;span&gt;&gt; &lt;/span&gt;&lt;span&gt;onRequest&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;RequestContext&lt;/span&gt;&lt;span&gt; context) &lt;/span&gt;&lt;span&gt;async&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (context.request.method &lt;/span&gt;&lt;span&gt;!=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;HttpMethod&lt;/span&gt;&lt;span&gt;.post) {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Response&lt;/span&gt;&lt;span&gt;(statusCode&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;405&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;final&lt;/span&gt;&lt;span&gt; queryJson &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;await&lt;/span&gt;&lt;span&gt; context.request.&lt;/span&gt;&lt;span&gt;json&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (queryJson &lt;/span&gt;&lt;span&gt;is!&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Map&lt;/span&gt;&lt;span&gt;&amp;#x3C;&lt;/span&gt;&lt;span&gt;String&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;dynamic&lt;/span&gt;&lt;span&gt;&gt; &lt;/span&gt;&lt;span&gt;||&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;!&lt;/span&gt;&lt;span&gt;queryJson.&lt;/span&gt;&lt;span&gt;containsKey&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&apos;query&apos;&lt;/span&gt;&lt;span&gt;)) {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Response&lt;/span&gt;&lt;span&gt;(statusCode&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;400&lt;/span&gt;&lt;span&gt;, body&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;Missing &quot;query&quot; field in JSON.&apos;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;final&lt;/span&gt;&lt;span&gt; query &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; queryJson[&lt;/span&gt;&lt;span&gt;&apos;query&apos;&lt;/span&gt;&lt;span&gt;] &lt;/span&gt;&lt;span&gt;as&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;String&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;final&lt;/span&gt;&lt;span&gt; variables &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; queryJson[&lt;/span&gt;&lt;span&gt;&apos;variables&apos;&lt;/span&gt;&lt;span&gt;] &lt;/span&gt;&lt;span&gt;as&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Map&lt;/span&gt;&lt;span&gt;&amp;#x3C;&lt;/span&gt;&lt;span&gt;String&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;dynamic&lt;/span&gt;&lt;span&gt;&gt;&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;final&lt;/span&gt;&lt;span&gt; graphQL &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;createGraphQL&lt;/span&gt;&lt;span&gt;(context);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;final&lt;/span&gt;&lt;span&gt; data &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;await&lt;/span&gt;&lt;span&gt; graphQL.&lt;/span&gt;&lt;span&gt;parseAndExecute&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;query,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;variableValues&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; variables &lt;/span&gt;&lt;span&gt;??&lt;/span&gt;&lt;span&gt; {},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Response&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;json&lt;/span&gt;&lt;span&gt;(body&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;span&gt;&apos;data&apos;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; data &lt;/span&gt;&lt;span&gt;as&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Map&lt;/span&gt;&lt;span&gt;&amp;#x3C;&lt;/span&gt;&lt;span&gt;String&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;dynamic&lt;/span&gt;&lt;span&gt;&gt;});&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;And that’s all there is to it! You can now query your server for games using
GraphQL:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;$&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;curl&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;http://localhost:8080/graphql&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;\&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;-H&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;Content-Type: application/json&quot;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;\&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;-X&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;POST&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;\&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;-d&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&apos;{ &quot;query&quot;: &quot; query AllGames() { games() { id name downloadLink } } &quot;}&apos;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;The above query should produce the following response:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;data&quot;&lt;/span&gt;&lt;span&gt;: {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;&quot;games&quot;&lt;/span&gt;&lt;span&gt;: [&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;&quot;id&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;1&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;&quot;name&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;Mine Cat Digger&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;&quot;downloadLink&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;https://g4me.info/catdigger&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;&quot;id&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;2&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;&quot;name&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;Pixelado&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;&quot;downloadLink&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;https://g4me.info/pixelado&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;aside aria-label=&quot;Note&quot;&gt;&lt;p aria-hidden=&quot;true&quot;&gt;Note&lt;/p&gt;&lt;div&gt;&lt;p&gt;These are real games that I made! Download them for free on Android or iOS to
support my work 💙&lt;/p&gt;&lt;/div&gt;&lt;/aside&gt;
&lt;div&gt;&lt;h2 id=&quot;summary&quot;&gt;Summary&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;In this blog we walked through how to set up the base schema and expose queries.
To see a real working example, check out the
&lt;a href=&quot;https://github.com/erickzanardo/game_list_server&quot;&gt;full source&lt;/a&gt; and feel free to
clone and run the example locally.&lt;/p&gt;</content:encoded><category>guide</category></item><item><title>Fall 2025 Recap</title><link>https://dart-frog.dev/blog/fall-2025-recap/</link><guid isPermaLink="true">https://dart-frog.dev/blog/fall-2025-recap/</guid><description>A short recap of all the changes that have happened since the project was transferred as well as a peak at what&apos;s to come.

</description><pubDate>Mon, 29 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;We can’t believe it’s been two months since
&lt;a href=&quot;https://dart-frog.dev/blog/future-of-dart-frog&quot;&gt;Dart Frog moved to a new organization&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Here’s a quick recap of what the team has been up to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Migrated and redesigned the &lt;a href=&quot;https://dart-frog.dev&quot;&gt;&lt;strong&gt;Dart Frog Website&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Migrated the
&lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=DartFrog.dart-frog-dev&quot;&gt;&lt;strong&gt;VSCode Extension&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Released &lt;a href=&quot;https://pub.dev/packages/dart_frog_lint&quot;&gt;&lt;strong&gt;package:dart_frog_lint&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Added support for
&lt;a href=&quot;https://github.com/dart-frog-dev/dart_frog/pull/1825&quot;&gt;&lt;strong&gt;Pub Workspaces&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Contributed benchmarks to
&lt;a href=&quot;https://github.com/TechEmpower/FrameworkBenchmarks/pull/10048&quot;&gt;&lt;strong&gt;TechEmpower Framework Benchmarks&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Created a new &lt;a href=&quot;https://dart-frog.dev/discord&quot;&gt;&lt;strong&gt;Discord Server&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Published
&lt;a href=&quot;https://pub.dev/publishers/dart-frog.dev/packages&quot;&gt;&lt;strong&gt;14 package releases to pub.dev&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Closed over
&lt;a href=&quot;https://github.com/dart-frog-dev/dart_frog/pulls?q=is%3Apr+is%3Aclosed&quot;&gt;&lt;strong&gt;20 pull requests&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;-meet-dart-frogdev&quot;&gt;🌐 Meet &lt;a href=&quot;https://dart-frog.dev&quot;&gt;dart-frog.dev&lt;/a&gt;&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;One of the first things we worked on was migrating the official website and
documentation to an independent domain. The site is now powered by
&lt;a href=&quot;https://starlight.astro.build&quot;&gt;Starlight&lt;/a&gt; and includes a refreshed design, full
text search, updated documentation, a new blog with an
&lt;a href=&quot;https://dart-frog.dev/blog/rss.xml&quot;&gt;RSS Feed&lt;/a&gt;, and more!&lt;/p&gt;
&lt;img src=&quot;https://dart-frog.dev/_astro/website_redesign_dark.DRbzEj8c_745bA.webp&quot; alt=&quot;website redesign&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1920&quot; height=&quot;1080&quot;&gt;
&lt;img src=&quot;https://dart-frog.dev/_astro/website_redesign_light.B1a9rMp0_PSYq.webp&quot; alt=&quot;website redesign&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1920&quot; height=&quot;1080&quot;&gt;
&lt;div&gt;&lt;h2 id=&quot;-new-package-dart_frog_lint&quot;&gt;📦 New Package: &lt;a href=&quot;https://pub.dev/packages/dart_frog_lint&quot;&gt;&lt;code dir=&quot;auto&quot;&gt;dart_frog_lint&lt;/code&gt;&lt;/a&gt;&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;While updating documentation and examples, we realized we could provide a much
better developer experience configuring lint rules.&lt;/p&gt;
&lt;p&gt;We released the &lt;a href=&quot;https://pub.dev/packages/dart_frog_lint&quot;&gt;&lt;code dir=&quot;auto&quot;&gt;dart_frog_lint&lt;/code&gt;&lt;/a&gt;
package to standardize lint rules across all Dart Frog projects.&lt;/p&gt;
&lt;p&gt;New projects created via &lt;code dir=&quot;auto&quot;&gt;dart_frog create&lt;/code&gt; now ship with &lt;code dir=&quot;auto&quot;&gt;dart_frog_lint&lt;/code&gt;
automatically.&lt;/p&gt;
&lt;p&gt;Existing projects can add &lt;code dir=&quot;auto&quot;&gt;dart_frog_lint&lt;/code&gt; by following these steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Install &lt;code dir=&quot;auto&quot;&gt;dart_frog_lint&lt;/code&gt; as a dev dependency&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;dart&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;pub&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;add&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--dev&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;dart_frog_lint&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;Use the recommended rules in the &lt;code dir=&quot;auto&quot;&gt;analysis_options.yaml&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;include&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;package:dart_frog_lint/recommended.yaml&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;With over 8,400 downloads in the last 30 days, it’s awesome to see the impact
&lt;code dir=&quot;auto&quot;&gt;dart_frog_lint&lt;/code&gt; is having already within the community!&lt;/p&gt;
&lt;img src=&quot;https://dart-frog.dev/_astro/lint_dark.BqVzCI29_1il0UX.webp&quot; alt=&quot;Dart Frog Lint&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1920&quot; height=&quot;908&quot;&gt;
&lt;img src=&quot;https://dart-frog.dev/_astro/lint_light.D14Nbw6I_2rnTYx.webp&quot; alt=&quot;Dart Frog Lint&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1920&quot; height=&quot;908&quot;&gt;
&lt;div&gt;&lt;h2 id=&quot;-pub-workspaces-support&quot;&gt;🎯 Pub Workspaces Support&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;A highly-anticipated feature was adding support for
&lt;a href=&quot;https://dart.dev/tools/pub/workspaces&quot;&gt;pub workspaces&lt;/a&gt;. Since Dart 3.6.0, pub
supports organizing repositories into a workspace using a single shared
resolution for all packages. Using workspaces for large repositories reduces the
amount of memory required for analysis, hence improving performance.&lt;/p&gt;
&lt;p&gt;As of
&lt;a href=&quot;https://github.com/dart-frog-dev/dart_frog/pull/1825&quot;&gt;Dart Frog CLI v1.2.9&lt;/a&gt;,
Dart Frog fully supports pub workspaces! Dart Frog workspaces is already being
used in production at &lt;a href=&quot;https://shorebird.dev&quot;&gt;Shorebird&lt;/a&gt; to serve millions of
patches all over the world. If your team is using pub workspaces with Dart Frog,
&lt;a href=&quot;https://dart-frog.dev/discord&quot;&gt;let us know&lt;/a&gt; — we’d love to hear about your
experience!&lt;/p&gt;
&lt;img src=&quot;https://dart-frog.dev/_astro/workspaces_dark.Kk0IpULI_Dp5ND.webp&quot; alt=&quot;Workspace Support&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1920&quot; height=&quot;515&quot;&gt;
&lt;img src=&quot;https://dart-frog.dev/_astro/workspaces_light.DXuIrAud_ZUHeVs.webp&quot; alt=&quot;Workspace Support&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1920&quot; height=&quot;501&quot;&gt;
&lt;div&gt;&lt;h2 id=&quot;️-new-benchmarks&quot;&gt;🏎️ New Benchmarks&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;As part of burning down a variety of longstanding issues, we added basic
performance benchmarks to
&lt;a href=&quot;https://www.techempower.com/benchmarks/#section=data-r23&quot;&gt;TechEmpower Framework Benchmarks&lt;/a&gt;
for both &lt;a href=&quot;https://github.com/TechEmpower/FrameworkBenchmarks/pull/10025&quot;&gt;Shelf&lt;/a&gt;
and &lt;a href=&quot;https://github.com/TechEmpower/FrameworkBenchmarks/pull/10048&quot;&gt;Dart Frog&lt;/a&gt;.
This is just the first many benchmarks we plan to add in order to both measure
and improve the performance of Dart Frog servers.&lt;/p&gt;
&lt;img src=&quot;https://dart-frog.dev/_astro/benchmarks_dark.DNmNUKKJ_1HOcLX.webp&quot; alt=&quot;benchmarks&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1920&quot; height=&quot;733&quot;&gt;
&lt;img src=&quot;https://dart-frog.dev/_astro/benchmarks_light.DrW_2XMn_2m38Nh.webp&quot; alt=&quot;benchmarks&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1920&quot; height=&quot;733&quot;&gt;
&lt;div&gt;&lt;h2 id=&quot;-updated-vscode-extension&quot;&gt;🧑‍💻 Updated VSCode Extension&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;As part of the migration to a new GitHub organization, we also had to migrate
the Dart Frog VSCode extension. Since the VSCode marketplace does not support
transferring an existing extension to a different publisher, we have published a
new Dart Frog
&lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=DartFrog.dart-frog-dev&quot;&gt;&lt;strong&gt;VSCode Extension&lt;/strong&gt;&lt;/a&gt;.
We are working on deprecating the old extension in order to provide a smooth,
seamless transition so stay tuned for additional updates over the coming days.&lt;/p&gt;
&lt;img src=&quot;https://dart-frog.dev/_astro/vscode_dark.ClSKNqzb_2dVbQd.webp&quot; alt=&quot;VSCode Extension&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1920&quot; height=&quot;441&quot;&gt;
&lt;img src=&quot;https://dart-frog.dev/_astro/vscode_light.BAA_fnpp_Z1yt7n1.webp&quot; alt=&quot;VSCode Extension&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1920&quot; height=&quot;441&quot;&gt;
&lt;div&gt;&lt;h2 id=&quot;-dedicated-discord-server&quot;&gt;💬 Dedicated Discord Server&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Finally, Dart Frog now has an official
&lt;a href=&quot;https://dart-frog.dev/discord&quot;&gt;Discord Server&lt;/a&gt;! You can join the community, get
support from the team, show off you work and more! We’re currently at 99 active
members so join us and help us continue to grow the community!&lt;/p&gt;
&lt;img src=&quot;https://dart-frog.dev/_astro/discord_dark.CVyjuIiU_Z1ex13q.webp&quot; alt=&quot;Discord Server&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1920&quot; height=&quot;1080&quot;&gt;
&lt;img src=&quot;https://dart-frog.dev/_astro/discord_light.DKUGgmOt_Z1StfiH.webp&quot; alt=&quot;Discord Server&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1920&quot; height=&quot;1080&quot;&gt;
&lt;div&gt;&lt;h2 id=&quot;-whats-next&quot;&gt;👀 What’s Next&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;While we’ve gotten a lot done over the last two months, there’s still much to
look forward to!&lt;/p&gt;
&lt;p&gt;Next, we’ll focus on burning down the existing backlog of issues which includes
tackling some highly requested features such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/dart-frog-dev/dart_frog/issues/152&quot;&gt;API Documentation Generation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/dart-frog-dev/dart_frog/issues/151&quot;&gt;Dart API Client Generation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/dart-frog-dev/dart_frog/issues/153&quot;&gt;Logger Support&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If there’s anything you feel is missing or can be improved, please
&lt;a href=&quot;https://github.com/dart-frog-dev/dart_frog/issues/new&quot;&gt;let us know&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;None of this would be possible without the community so thanks everyone for the
support and we’ll see you in the next update! ✌️&lt;/p&gt;</content:encoded><category>community</category></item><item><title>The Future of Dart Frog</title><link>https://dart-frog.dev/blog/future-of-dart-frog/</link><guid isPermaLink="true">https://dart-frog.dev/blog/future-of-dart-frog/</guid><description>About recent changes to Dart Frog and a closer look at what&apos;s in store for the project and ecosystem.

</description><pubDate>Fri, 01 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;We’re very grateful for how far Dart Frog has come while under the
&lt;a href=&quot;https://github.com/verygoodopensource&quot;&gt;VeryGoodOpenSource&lt;/a&gt; organization and
incredibly thankful to &lt;a href=&quot;https://verygood.ventures&quot;&gt;Very Good Ventures&lt;/a&gt; for
&lt;a href=&quot;https://verygood.ventures/blog/dart-frog-has-found-a-new-pond&quot;&gt;investing in Dart Frog&lt;/a&gt;
and taking it from idea to reality.&lt;/p&gt;
&lt;p&gt;After many discussions with Very Good Ventures, Dart Frog maintainers, and the
community at large, &lt;strong&gt;Dart Frog has moved to a
&lt;a href=&quot;https://github.com/dart-frog-dev&quot;&gt;new GitHub organization&lt;/a&gt;&lt;/strong&gt;! We feel confident
that this move will empower the community to take Dart Frog to the next level.&lt;/p&gt;
&lt;p&gt;As Dart Frog moves to an independent organization, we’re opening the doors for a
broader range of developers to get involved and help shape the project’s
direction. Rest assured that the
&lt;a href=&quot;https://pub.dev/publishers/dart-frog.dev/packages&quot;&gt;&lt;code dir=&quot;auto&quot;&gt;dart_frog&lt;/code&gt; ecosystem&lt;/a&gt; isn’t
going anywhere — teams can confidently continue building their backends without
any interruptions or migrations.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;about-the-organization&quot;&gt;About the organization&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;The organization will consist of the same group of core maintainers who have
worked on Dart Frog since its inception in April 2022:
&lt;a href=&quot;https://github.com/alestiago&quot;&gt;&lt;strong&gt;Alejandro Santiago&lt;/strong&gt;&lt;/a&gt;,
&lt;a href=&quot;https://github.com/erickzanardo&quot;&gt;&lt;strong&gt;Erick Zanardo&lt;/strong&gt;&lt;/a&gt;,
&lt;a href=&quot;https://github.com/felangel&quot;&gt;&lt;strong&gt;Felix Angelov&lt;/strong&gt;&lt;/a&gt;,
&lt;a href=&quot;https://github.com/wolfenrain&quot;&gt;&lt;strong&gt;Jochum van der Ploeg&lt;/strong&gt;&lt;/a&gt;,
&lt;a href=&quot;https://github.com/marcossevilla&quot;&gt;&lt;strong&gt;Marcos Sevilla&lt;/strong&gt;&lt;/a&gt;, and
&lt;a href=&quot;https://github.com/renancaraujo&quot;&gt;&lt;strong&gt;Renan Araujo&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;div&gt;&lt;a href=&quot;https://github.com/alestiago&quot; aria-label=&quot;About Alejandro&quot;&gt;&lt;img alt=&quot;Alejandro Profile Picture&quot; src=&quot;https://avatars.githubusercontent.com/u/44524995?v=4&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/erickzanardo&quot; aria-label=&quot;About Erick&quot;&gt;&lt;img alt=&quot;Erick Profile Picture&quot; src=&quot;https://avatars.githubusercontent.com/u/835641?v=4&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/felangel&quot; aria-label=&quot;About Felix&quot;&gt;&lt;img alt=&quot;Felix Profile Picture&quot; src=&quot;https://avatars.githubusercontent.com/u/8855632?v=4&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/wolfenrain&quot; aria-label=&quot;About Jochum&quot;&gt;&lt;img alt=&quot;Jochum Profile Picture&quot; src=&quot;https://avatars.githubusercontent.com/u/15887627?v=4&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/marcossevilla&quot; aria-label=&quot;About Marcos&quot;&gt;&lt;img alt=&quot;Marcos Profile Picture&quot; src=&quot;https://avatars.githubusercontent.com/u/31174242?v=4&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/renancaraujo&quot; aria-label=&quot;About Renan&quot;&gt;&lt;img alt=&quot;Renan Profile Picture&quot; src=&quot;https://avatars.githubusercontent.com/u/6718144?v=4&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;hr&gt;
&lt;p&gt;This group may change over time based on contributions, availability, and other
factors. We plan to take inspiration from other successful open source
organizations like &lt;a href=&quot;https://flame-engine.org&quot;&gt;Flame&lt;/a&gt; that provide a nice
blueprint to follow.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;whats-the-impact&quot;&gt;What’s the impact?&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;The good news is we’ve worked really hard to make sure nothing changes for you
as a developer! You can continue to use the same
&lt;a href=&quot;https://pub.dev/packages/dart_frog&quot;&gt;&lt;code dir=&quot;auto&quot;&gt;dart_frog&lt;/code&gt;&lt;/a&gt; package and ecosystem. We aim
to release more frequently so stay tuned for new features, bug fixes, and more.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;whats-next&quot;&gt;What’s next?&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Speaking of what’s next, here’s a high level overview of what we have planned
for the rest of the year. We (the core maintainers) will be meeting in the near
future to do a more in-depth planning session and will update the public roadmap
as part of that meeting. Some of the work we have planned includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Maintenance&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Publish a new release to distribute all existing bug fixes&lt;/li&gt;
&lt;li&gt;Automate releasing to pub.dev and the VSCode marketplace&lt;/li&gt;
&lt;li&gt;Triage and burn down the existing backlog of issues&lt;/li&gt;
&lt;li&gt;Review and burn down open pull requests&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Features&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Add support for Dart workspaces&lt;/li&gt;
&lt;li&gt;Add Dart API client generation&lt;/li&gt;
&lt;li&gt;Add Dart API documentation generation&lt;/li&gt;
&lt;li&gt;Prioritize and begin work on new features identified during our planning&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ecosystem&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Formally meet for the first time and do a planning session&lt;/li&gt;
&lt;li&gt;Invest in growing and moderating the
&lt;a href=&quot;https://dart-frog.dev/discord&quot;&gt;new Dart Frog Discord Server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Establish a larger social presence &amp;#x26; plan events for the community&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;h2 id=&quot;how-can-you-help&quot;&gt;How can you help?&lt;/h2&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;💬 Come join the community on &lt;a href=&quot;https://dart-frog.dev/discord&quot;&gt;Discord&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;🙋
&lt;a href=&quot;https://github.com/dart-frog-dev/dart_frog/issues/new/choose&quot;&gt;Open an issue&lt;/a&gt;
if you encounter a bug or would like a new feature added.&lt;/li&gt;
&lt;li&gt;👀 Stay tuned for more updates in the near future including new feature
releases, documentation improvements, community events, and more!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks for all your support 💙&lt;/p&gt;
&lt;p&gt;We’re more excited than ever for the future of Dart Frog 🎯 🐸&lt;/p&gt;</content:encoded><category>community</category></item></channel></rss>