<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mamadou</title>
    <description>The latest articles on DEV Community by Mamadou (@domutala).</description>
    <link>https://dev.to/domutala</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1135405%2F55b40497-e504-49ed-b4d6-9f32a76513f1.png</url>
      <title>DEV Community: Mamadou</title>
      <link>https://dev.to/domutala</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/domutala"/>
    <language>en</language>
    <item>
      <title>Bringing Convention over Configuration to Fastify with @syora/fastify</title>
      <dc:creator>Mamadou</dc:creator>
      <pubDate>Wed, 22 Jul 2026 08:05:22 +0000</pubDate>
      <link>https://dev.to/domutala/bringing-convention-over-configuration-to-fastify-with-syorafastify-5bp0</link>
      <guid>https://dev.to/domutala/bringing-convention-over-configuration-to-fastify-with-syorafastify-5bp0</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hi everyone 👋&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you enjoy Fastify's performance but sometimes miss the developer experience of file-system routing, this project might interest you.&lt;/p&gt;

&lt;p&gt;I've been working for some time on &lt;strong&gt;&lt;a href="https://github.com/syorajs/fastify" rel="noopener noreferrer"&gt;@syora/fastify&lt;/a&gt;&lt;/strong&gt;, a library that brings the &lt;strong&gt;Convention over Configuration&lt;/strong&gt; approach to Fastify.&lt;/p&gt;

&lt;p&gt;🚀 &lt;strong&gt;How it works&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of manually declaring and importing routes, hooks, and plugins, everything is inferred from your project's directory structure.&lt;/p&gt;

&lt;p&gt;The key idea is that everything happens &lt;strong&gt;ahead of runtime&lt;/strong&gt;. During startup, &lt;code&gt;@syora/fastify&lt;/code&gt; scans your project, generates optimized manifests and TypeScript type definitions, and then Fastify only loads those generated files.&lt;/p&gt;

&lt;p&gt;👉 The result is &lt;strong&gt;no filesystem scanning while handling requests&lt;/strong&gt;, while preserving Fastify's API and performance characteristics.&lt;/p&gt;

&lt;p&gt;For example, this structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;api/
  users/
    index.ts
    [id].ts
    [id].post.ts

middlewares/
  auth.ts

plugins/
  cors.ts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;...automatically generates the corresponding routes, middleware registrations, and plugin registrations.&lt;/p&gt;

&lt;p&gt;The goal isn't to replace Fastify, but to provide a convention layer for developers who enjoy this style of development—similar to frameworks like Nuxt or Next.js—while staying true to Fastify's philosophy.&lt;/p&gt;

&lt;p&gt;The project has just reached &lt;strong&gt;v1.1.0&lt;/strong&gt;, and I'd really appreciate your feedback:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Do you think this approach makes sense for real-world applications?&lt;/li&gt;
&lt;li&gt;Can you spot any technical limitations, edge cases, or trade-offs that I may have overlooked?&lt;/li&gt;
&lt;li&gt;What features would you consider essential for the project's next steps?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're curious, you can find the project here:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://github.com/syorajs/fastify" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Feedback, suggestions, and contributions are all very welcome.&lt;/p&gt;

&lt;p&gt;And a huge thank you to the entire Fastify team for building such an amazing ecosystem. ❤️&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;fastify&lt;/strong&gt; &lt;strong&gt;typescript&lt;/strong&gt; &lt;strong&gt;node&lt;/strong&gt; &lt;strong&gt;opensource&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>backend</category>
      <category>javascript</category>
      <category>typescript</category>
    </item>
  </channel>
</rss>
