<?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>Forem: Zonayed Ahmed</title>
    <description>The latest articles on Forem by Zonayed Ahmed (@zonayedpca).</description>
    <link>https://forem.com/zonayedpca</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F181381%2F291311e6-0aa2-4769-870a-ee7682181e89.jpeg</url>
      <title>Forem: Zonayed Ahmed</title>
      <link>https://forem.com/zonayedpca</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/zonayedpca"/>
    <language>en</language>
    <item>
      <title>Static Export, but for APIs: Why I Built StatikAPI</title>
      <dc:creator>Zonayed Ahmed</dc:creator>
      <pubDate>Sat, 16 May 2026 05:55:18 +0000</pubDate>
      <link>https://forem.com/zonayedpca/static-export-but-for-apis-why-i-built-statikapi-i34</link>
      <guid>https://forem.com/zonayedpca/static-export-but-for-apis-why-i-built-statikapi-i34</guid>
      <description>&lt;p&gt;Static site generation feels normal now.&lt;/p&gt;

&lt;p&gt;Nobody finds it strange when a website page is built ahead of time and served from a CDN as a file. In fact, for many types of websites, that is exactly what we prefer. It is faster, simpler, cheaper, and usually more predictable.&lt;/p&gt;

&lt;p&gt;But when it comes to JSON APIs, we often behave differently.&lt;/p&gt;

&lt;p&gt;Even when the response is already known.&lt;br&gt;
Even when the data changes slowly.&lt;br&gt;
Even when the endpoint is mostly just returning structured content.&lt;/p&gt;

&lt;p&gt;We still put a runtime behind it almost by default.&lt;/p&gt;

&lt;p&gt;That kept bothering me.&lt;/p&gt;

&lt;p&gt;I kept seeing APIs that were doing almost nothing at request time. A docs navigation endpoint. A changelog feed. A public product catalog. Release metadata. A feature list. Public config. AI-readable content.&lt;/p&gt;

&lt;p&gt;The response was not really being “computed” in any meaningful way on every request. The backend was mostly just standing there, breathing behind the JSON.&lt;/p&gt;

&lt;p&gt;That felt weird to me.&lt;/p&gt;

&lt;p&gt;At some point, the idea became very simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What if some APIs could be generated ahead of time, just like static pages?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That is where StatikAPI came from.&lt;/p&gt;

&lt;p&gt;The simplest way to explain it is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Static export, but for APIs.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  The problem I kept noticing
&lt;/h2&gt;

&lt;p&gt;In a lot of projects, the API is not actually as “live” as we make it look.&lt;/p&gt;

&lt;p&gt;Sometimes it is just structured content.&lt;br&gt;
Sometimes it is a list of products, docs pages, team members, feature flags, metadata, or public configuration.&lt;br&gt;
Sometimes the backend exists mostly to take some source data and return it as JSON.&lt;/p&gt;

&lt;p&gt;And yes, runtime APIs are absolutely needed for many things.&lt;/p&gt;

&lt;p&gt;Payments need a runtime.&lt;br&gt;
User-specific dashboards need a runtime.&lt;br&gt;
Mutation-heavy systems need a runtime.&lt;br&gt;
Anything that depends on live request-time logic probably needs a runtime.&lt;/p&gt;

&lt;p&gt;But many endpoints are not like that.&lt;/p&gt;

&lt;p&gt;Many endpoints are read-heavy. The data changes only when the source changes. The response shape is predictable. The work can happen earlier.&lt;/p&gt;

&lt;p&gt;And yet we still keep a server or function alive for every request.&lt;/p&gt;

&lt;p&gt;That means more moving parts than we need.&lt;br&gt;
More latency than we need.&lt;br&gt;
More things to deploy, secure, observe, debug, and pay for.&lt;/p&gt;

&lt;p&gt;Not because the problem is always complex.&lt;/p&gt;

&lt;p&gt;Sometimes the delivery model is just heavier than the actual problem.&lt;/p&gt;

&lt;p&gt;That is the part I wanted to explore.&lt;/p&gt;
&lt;h2&gt;
  
  
  The simple idea
&lt;/h2&gt;

&lt;p&gt;StatikAPI generates JSON API outputs ahead of time.&lt;/p&gt;

&lt;p&gt;Instead of rendering HTML ahead of time, it generates JSON ahead of time.&lt;/p&gt;

&lt;p&gt;Instead of running a function on every request, it writes the response to disk as a static JSON file.&lt;/p&gt;

&lt;p&gt;Instead of asking a backend to recompute the same response again and again, it builds the response once and lets you serve the output directly.&lt;/p&gt;

&lt;p&gt;The source of truth is route files inside &lt;code&gt;src-api/&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Those route files map to URLs, and the build turns them into static JSON endpoints inside &lt;code&gt;api-out/&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;project&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;StatikAPI&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;example&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;basic&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;toISOString&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
  &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Hello from example/basic!&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is the basic shape.&lt;/p&gt;

&lt;p&gt;A route file exports JSON-serializable data. StatikAPI builds it and writes the output as a JSON endpoint.&lt;/p&gt;

&lt;p&gt;So instead of thinking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I need an API server for this.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Can this response be generated before the request even happens?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If the answer is yes, then maybe that endpoint does not need to be alive all the time.&lt;/p&gt;

&lt;p&gt;Maybe it just needs a build step.&lt;/p&gt;

&lt;h2&gt;
  
  
  What StatikAPI does today
&lt;/h2&gt;

&lt;p&gt;The current OSS version is intentionally direct.&lt;/p&gt;

&lt;p&gt;I did not want the first version to be clever. I wanted the model to be obvious:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;src-api/&lt;/code&gt; in, JSON out.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Right now, StatikAPI can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;turn filesystem route modules into static JSON endpoints&lt;/li&gt;
&lt;li&gt;write the generated output into &lt;code&gt;api-out/&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;generate a manifest at &lt;code&gt;.statikapi/manifest.json&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;run a local dev flow with watch/rebuild behavior&lt;/li&gt;
&lt;li&gt;provide a preview UI at &lt;code&gt;/_ui/&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;scaffold a new project through &lt;code&gt;create-statikapi&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The routing model is filesystem-based, so the structure feels familiar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;src-api/index.js          -&amp;gt; /
src-api/about.js          -&amp;gt; /about
src-api/users/[id].js     -&amp;gt; /users/:id
src-api/docs/[...slug].js -&amp;gt; /docs/*slug
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For dynamic routes, &lt;code&gt;paths()&lt;/code&gt; tells StatikAPI which concrete outputs to generate.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;paths&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;2&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;3&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;4&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;5&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;6&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;data&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;params&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;params&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;extra&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;value&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is the part that makes the idea click for me.&lt;/p&gt;

&lt;p&gt;The route still feels like an API route.&lt;/p&gt;

&lt;p&gt;But the final result is not a runtime response.&lt;/p&gt;

&lt;p&gt;It is a prebuilt JSON output.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters
&lt;/h2&gt;

&lt;p&gt;I built StatikAPI for the kind of data that does not need to be recomputed on every request.&lt;/p&gt;

&lt;p&gt;Things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;docs and content endpoints&lt;/li&gt;
&lt;li&gt;changelog feeds&lt;/li&gt;
&lt;li&gt;public metadata APIs&lt;/li&gt;
&lt;li&gt;product catalogs&lt;/li&gt;
&lt;li&gt;generated config or manifest endpoints&lt;/li&gt;
&lt;li&gt;feature lists&lt;/li&gt;
&lt;li&gt;read-heavy data that changes on a schedule&lt;/li&gt;
&lt;li&gt;build-time fetched data from another API or service&lt;/li&gt;
&lt;li&gt;AI-readable content endpoints&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For these use cases, static JSON can make a lot of sense.&lt;/p&gt;

&lt;p&gt;The request becomes simpler.&lt;/p&gt;

&lt;p&gt;It is not “run code, fetch data, transform data, return JSON.”&lt;/p&gt;

&lt;p&gt;It is just:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;read the already prepared JSON and serve it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That gives you fewer runtime dependencies.&lt;br&gt;
It can reduce latency.&lt;br&gt;
It can make deployment simpler.&lt;br&gt;
It can make the cost structure lighter.&lt;br&gt;
And honestly, it just makes the system easier to reason about.&lt;/p&gt;

&lt;p&gt;Predictability is underrated.&lt;/p&gt;

&lt;p&gt;When an endpoint is prebuilt, you know exactly where it came from.&lt;br&gt;
You know what file generated it.&lt;br&gt;
You know when it changed.&lt;br&gt;
You know what the output is before traffic hits it.&lt;/p&gt;

&lt;p&gt;A request becomes a read.&lt;/p&gt;

&lt;p&gt;Not a tiny execution environment.&lt;/p&gt;
&lt;h2&gt;
  
  
  What this is not for
&lt;/h2&gt;

&lt;p&gt;I do not think every API should become static.&lt;/p&gt;

&lt;p&gt;That would be a silly claim.&lt;/p&gt;

&lt;p&gt;StatikAPI is not for highly personalized request-time logic.&lt;br&gt;
It is not for payment flows.&lt;br&gt;
It is not for realtime mutation-heavy systems.&lt;br&gt;
It is not a replacement for every backend.&lt;/p&gt;

&lt;p&gt;If the data needs to be computed per user, per request, or per moment, then a runtime is still the right answer.&lt;/p&gt;

&lt;p&gt;But if the data is mostly read-only, predictable, and only changes when the source changes, then maybe the runtime is just extra weight.&lt;/p&gt;

&lt;p&gt;That is the line I care about.&lt;/p&gt;

&lt;p&gt;I wanted something boring, predictable, and fast for the class of APIs that can be prepared ahead of time.&lt;/p&gt;

&lt;p&gt;Not everything needs to be alive all the time.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why I kept pushing on this
&lt;/h2&gt;

&lt;p&gt;I have been thinking a lot about static-first and edge-first systems.&lt;/p&gt;

&lt;p&gt;Not because “edge” sounds cool.&lt;/p&gt;

&lt;p&gt;But because many products become expensive or complicated not only because their logic is complex, but because the delivery model is heavier than it needs to be.&lt;/p&gt;

&lt;p&gt;A lot of data is already known before the request comes in.&lt;/p&gt;

&lt;p&gt;A lot of content is prepared earlier.&lt;/p&gt;

&lt;p&gt;A lot of public JSON is closer to static output than live computation.&lt;/p&gt;

&lt;p&gt;So I kept coming back to the same question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If the response can be known earlier, why are we computing it later?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;StatikAPI came from that pressure point.&lt;/p&gt;

&lt;p&gt;Not as a grand theory.&lt;/p&gt;

&lt;p&gt;More like a practical reaction to a pattern I kept seeing again and again.&lt;/p&gt;

&lt;p&gt;There are plenty of places where the shape of the problem is closer to static output than runtime logic.&lt;/p&gt;

&lt;p&gt;Docs.&lt;br&gt;
Metadata.&lt;br&gt;
Public feeds.&lt;br&gt;
Product data.&lt;br&gt;
Generated content.&lt;br&gt;
AI-readable structured data.&lt;/p&gt;

&lt;p&gt;I wanted a tool that treated that seriously.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why I open-sourced it first
&lt;/h2&gt;

&lt;p&gt;I chose open source first because this idea needs real feedback.&lt;/p&gt;

&lt;p&gt;I do not want to hide the core behind a hosted product and ask people to trust the idea before they can inspect it.&lt;/p&gt;

&lt;p&gt;I want developers to read the files, understand the route model, try the build flow, and tell me where it breaks.&lt;/p&gt;

&lt;p&gt;Maybe the mental model makes sense.&lt;br&gt;
Maybe it needs better examples.&lt;br&gt;
Maybe the source integrations need to grow.&lt;br&gt;
Maybe some parts are still confusing.&lt;/p&gt;

&lt;p&gt;That is exactly the kind of feedback I want.&lt;/p&gt;

&lt;p&gt;Open source keeps the conversation honest.&lt;/p&gt;

&lt;p&gt;It also lets developers use the core idea without waiting for a hosted platform.&lt;/p&gt;

&lt;p&gt;That felt important to me.&lt;/p&gt;
&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;The quickest way to start is with the scaffold:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pnpm dlx create-statikapi my-api
&lt;span class="nb"&gt;cd &lt;/span&gt;my-api
pnpm dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;yarn dlx create-statikapi my-api
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx create-statikapi my-api
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The examples in the repo show the current shape:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;example/basic&lt;/code&gt; shows a simple static endpoint&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;example/dynamic&lt;/code&gt; shows dynamic and catch-all routes&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;example/showcase&lt;/code&gt; includes TypeScript and build-time remote fetches&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The basic idea is still the same:&lt;/p&gt;

&lt;p&gt;Create API-like route files.&lt;/p&gt;

&lt;p&gt;Build them.&lt;/p&gt;

&lt;p&gt;Get static JSON output.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I want feedback on
&lt;/h2&gt;

&lt;p&gt;I would genuinely love feedback on the idea.&lt;/p&gt;

&lt;p&gt;Especially around questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does this mental model make sense?&lt;/li&gt;
&lt;li&gt;What kind of APIs would you generate statically?&lt;/li&gt;
&lt;li&gt;What source integrations would make this more useful?&lt;/li&gt;
&lt;li&gt;Where would this fit in your real projects?&lt;/li&gt;
&lt;li&gt;What would stop you from using something like this?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the idea feels useful, I would really appreciate a star, comment, issue, or even criticism.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/zonayedpca/statikapi" rel="noopener noreferrer"&gt;https://github.com/zonayedpca/statikapi&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Closing
&lt;/h2&gt;

&lt;p&gt;I am not claiming every API should become static.&lt;/p&gt;

&lt;p&gt;I am saying some APIs probably should not need a runtime at all.&lt;/p&gt;

&lt;p&gt;That is the space I am exploring with StatikAPI.&lt;/p&gt;

&lt;p&gt;And instead of keeping the idea in my head forever, I wanted to put it out in the open and see what other developers think.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>api</category>
    </item>
    <item>
      <title>Introducing Electron Gatsby Boilerplate</title>
      <dc:creator>Zonayed Ahmed</dc:creator>
      <pubDate>Wed, 13 May 2020 21:51:05 +0000</pubDate>
      <link>https://forem.com/zonayedpca/introducing-electron-gatsby-boilerplate-19ll</link>
      <guid>https://forem.com/zonayedpca/introducing-electron-gatsby-boilerplate-19ll</guid>
      <description>&lt;p&gt;I was looking for a Gatsby Electron Boilerplate, but I didn't find any. Then I have decided to make one myself. This is what I have come up with till now. It is a simple, minimal Electron Gatsby Boilerplate. Create a new BrowserWindow easily and speed up your development experience. It also included Automatic Linting, Redux, TravisCI Configuration, and GitHub Release. &lt;/p&gt;

&lt;p&gt;GitHub Repo: &lt;a href="https://github.com/zonayedpca/electron-gatsby-boilerplate" rel="noopener noreferrer"&gt;https://github.com/zonayedpca/electron-gatsby-boilerplate&lt;/a&gt;&lt;br&gt;
Release Demo: &lt;a href="https://github.com/zonayedpca/electron-gatsby-boilerplate/releases" rel="noopener noreferrer"&gt;https://github.com/zonayedpca/electron-gatsby-boilerplate/releases&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F18544717%2F80925067-b8a70180-8dae-11ea-98bc-e5b459a846f8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F18544717%2F80925067-b8a70180-8dae-11ea-98bc-e5b459a846f8.png" alt="Demo Image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Any kind of Recommendation, issue, PR is welcome.&lt;/p&gt;

&lt;p&gt;Also, don't forget to give a star if you think it's useful. Thank You!&lt;/p&gt;

</description>
      <category>electron</category>
      <category>gatsby</category>
    </item>
  </channel>
</rss>
