<?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: Zonayed Ahmed</title>
    <description>The latest articles on DEV Community by Zonayed Ahmed (@zonayedpca).</description>
    <link>https://dev.to/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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F181381%2F291311e6-0aa2-4769-870a-ee7682181e89.jpeg</url>
      <title>DEV Community: Zonayed Ahmed</title>
      <link>https://dev.to/zonayedpca</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zonayedpca"/>
    <language>en</language>
    <item>
      <title>Are we software engineers doomed? Yes, because of AI!</title>
      <dc:creator>Zonayed Ahmed</dc:creator>
      <pubDate>Tue, 15 Sep 2026 04:22:14 +0000</pubDate>
      <link>https://dev.to/zonayedpca/are-we-software-engineers-doomed-yes-because-of-ai-4g74</link>
      <guid>https://dev.to/zonayedpca/are-we-software-engineers-doomed-yes-because-of-ai-4g74</guid>
      <description>&lt;p&gt;Companies have stopped hiring, and layoffs have become more and more common. Job postings are rarely found. New types of roles are appearing and disappearing so fast that it is now nearly impossible to get experienced in something and then get that job. Even if you prepare for a role, by the time you finish preparing, that position might also be gone.&lt;/p&gt;

&lt;p&gt;And also, let's be real, there is no denying the AI advancement happening right now. Claude Fable 5 and GPT 6 Astra are doing great. They are capable of handling so many things with less effort. And they will get even better after a few months, more powerful than they are now. And things will only get worse.&lt;/p&gt;

&lt;p&gt;You might be thinking of moving into some other role, maybe becoming an architect, moving into system design, management, or something that requires more decision-making. But eventually, those things will also get replaced or covered by AI sooner than we can even realize.&lt;/p&gt;

&lt;p&gt;Thinking of taking more responsibility or ownership? Yeah, maybe that helps for a while. But what if one person becomes enough to handle an entire side of a company that previously needed 100, 500, or even 1,000 people? AI could make one person capable of handling a huge amount of responsibility, decision making, planning, implementation, and coordination. So even the "just move up the ladder" idea does not feel completely safe anymore.&lt;/p&gt;

&lt;p&gt;I have spent almost 16 years in this software development field, got a computer science degree, and after all of this, this happened. It seems like my entire life got ruined. I think most of you people might also be feeling the same.&lt;/p&gt;

&lt;p&gt;Anthropic, on one side, is warning that in the worst case scenario, software engineers might have to move towards fields like nursing or becoming electricians. And the speed of advancement happening here is quite unprecedented.&lt;/p&gt;

&lt;p&gt;Are we done? Is our entire life a waste, then?&lt;/p&gt;

&lt;p&gt;What do you think? I want to know your thoughts. I want to live up to the reality.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>career</category>
      <category>discuss</category>
      <category>programming</category>
    </item>
    <item>
      <title>Build APIs from Any Data, Without Running a Backend Every Time</title>
      <dc:creator>Zonayed Ahmed</dc:creator>
      <pubDate>Thu, 21 May 2026 13:31:39 +0000</pubDate>
      <link>https://dev.to/zonayedpca/build-apis-from-any-data-without-running-a-backend-every-time-3eam</link>
      <guid>https://dev.to/zonayedpca/build-apis-from-any-data-without-running-a-backend-every-time-3eam</guid>
      <description>&lt;p&gt;A lot of app data is already somewhere.&lt;/p&gt;

&lt;p&gt;Maybe it is in another API.&lt;br&gt;&lt;br&gt;
Maybe it is in a CMS.&lt;br&gt;&lt;br&gt;
Maybe it is in a spreadsheet.&lt;br&gt;&lt;br&gt;
Maybe it is in GitHub.&lt;br&gt;&lt;br&gt;
Maybe it is in your docs, product data, changelog, config files, or some internal service.&lt;/p&gt;

&lt;p&gt;But your app still needs one clean API endpoint.&lt;/p&gt;

&lt;p&gt;So what do we usually do?&lt;/p&gt;

&lt;p&gt;We build a backend.&lt;/p&gt;

&lt;p&gt;The backend fetches data from one or more sources, reshapes the response, removes the fields we do not need, maybe combines it with another source, and finally returns a clean API response to the frontend.&lt;/p&gt;

&lt;p&gt;That makes sense when the data is always changing.&lt;/p&gt;

&lt;p&gt;But many times, it is not.&lt;/p&gt;

&lt;p&gt;Sometimes the source API is slow.&lt;br&gt;&lt;br&gt;
Sometimes it has rate limits.&lt;br&gt;&lt;br&gt;
Sometimes the response time is unpredictable.&lt;br&gt;&lt;br&gt;
Sometimes the same data is requested again and again.&lt;br&gt;&lt;br&gt;
Sometimes the data only changes when a webhook fires, a file changes, a release happens, or someone updates content.&lt;/p&gt;

&lt;p&gt;And still, every request goes through runtime logic.&lt;/p&gt;

&lt;p&gt;That is the part that kept bothering me.&lt;/p&gt;

&lt;p&gt;Because in many cases, the API output could be prepared ahead of time.&lt;/p&gt;

&lt;p&gt;The source data may be messy.&lt;br&gt;&lt;br&gt;
The final response can still be clean.&lt;/p&gt;

&lt;p&gt;The source API may be slow.&lt;br&gt;&lt;br&gt;
The final API does not have to be.&lt;/p&gt;

&lt;p&gt;The source may have rate limits.&lt;br&gt;&lt;br&gt;
Your users should not hit that source every time.&lt;/p&gt;

&lt;p&gt;That is the idea behind &lt;strong&gt;StatikAPI OSS CLI&lt;/strong&gt;.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://github.com/zonayedpca/statikapi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The simple idea
&lt;/h2&gt;

&lt;p&gt;StatikAPI is an open-source CLI for generating clean API outputs ahead of time.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;Build APIs from your data — without running a backend on every request.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Or the shorter developer version:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Static export, but for APIs.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The bigger idea is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Data sources → shape the response → publish a clean API output
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your data can come from files, route modules, third-party APIs, services, CMSs, docs, product data, or anything you can fetch or prepare during the build.&lt;/p&gt;

&lt;p&gt;Then StatikAPI lets you generate the final API output ahead of time.&lt;/p&gt;

&lt;p&gt;So instead of every user request doing this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;request → backend → fetch external API → reshape response → return data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can move that work earlier:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;source data changes → rebuild output → serve clean API response
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is the difference.&lt;/p&gt;

&lt;h2&gt;
  
  
  What problem this solves
&lt;/h2&gt;

&lt;p&gt;Let’s say your app needs product data.&lt;/p&gt;

&lt;p&gt;The data might come from a third-party API.&lt;/p&gt;

&lt;p&gt;That API might be slow sometimes.&lt;/p&gt;

&lt;p&gt;It might also return a huge response when you only need five fields.&lt;/p&gt;

&lt;p&gt;It might have rate limits.&lt;/p&gt;

&lt;p&gt;It might occasionally respond slower from one region and faster from another.&lt;/p&gt;

&lt;p&gt;But your frontend does not care about all that.&lt;/p&gt;

&lt;p&gt;Your frontend just needs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"basic-plan"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Basic Plan"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"price"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"features"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"Public API"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Scheduled updates"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Fast delivery"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If that data changes only when your product/pricing data changes, then why should every user request hit the original source again?&lt;/p&gt;

&lt;p&gt;Maybe the better workflow is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;fetch the source data during build&lt;/li&gt;
&lt;li&gt;shape it into the response your app actually needs&lt;/li&gt;
&lt;li&gt;generate a clean API output&lt;/li&gt;
&lt;li&gt;serve that prepared response fast&lt;/li&gt;
&lt;li&gt;rebuild it when the source changes&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That is the kind of workflow StatikAPI is exploring.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the OSS CLI works
&lt;/h2&gt;

&lt;p&gt;The current open-source version starts with a simple workflow:&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/ → build → api-out/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You define API-like route files inside &lt;code&gt;src-api/&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Those route files can return prepared data, fetch from sources during build, or shape data into the API response you want.&lt;/p&gt;

&lt;p&gt;Then StatikAPI builds the output into &lt;code&gt;api-out/&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;So instead of running backend code every time someone requests the endpoint, you generate the response first and serve the prepared output.&lt;/p&gt;

&lt;p&gt;The question becomes:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Can this API response be prepared before the request happens?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If yes, StatikAPI may fit.&lt;/p&gt;

&lt;h2&gt;
  
  
  A small example
&lt;/h2&gt;

&lt;p&gt;Imagine your app needs a changelog API.&lt;/p&gt;

&lt;p&gt;Maybe the changelog data comes from a file, a release note, GitHub, a CMS, or another API.&lt;/p&gt;

&lt;p&gt;The final response might look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"latest"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"v1.0.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Initial release"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-05-20"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Does this need to be computed again and again on every request?&lt;/p&gt;

&lt;p&gt;Maybe not.&lt;/p&gt;

&lt;p&gt;Maybe it only needs to be rebuilt when the changelog changes.&lt;/p&gt;

&lt;p&gt;That is the kind of API StatikAPI is built for.&lt;/p&gt;

&lt;h2&gt;
  
  
  Updating when needed
&lt;/h2&gt;

&lt;p&gt;Static does not mean stale forever.&lt;/p&gt;

&lt;p&gt;This is important.&lt;/p&gt;

&lt;p&gt;The idea is not:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;generate once → forget forever
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The idea is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;data changes → rebuild output → publish updated API
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The update can happen manually.&lt;/p&gt;

&lt;p&gt;It can happen during a build.&lt;/p&gt;

&lt;p&gt;It can happen through webhook-based workflows depending on how you deploy it.&lt;/p&gt;

&lt;p&gt;So the API does not need to be live-computed on every request, but it can still be updated predictably when the data changes.&lt;/p&gt;

&lt;p&gt;That is the balance I wanted:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fast reads
clean API output
predictable updates
less unnecessary runtime work
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Standalone or Cloudflare
&lt;/h2&gt;

&lt;p&gt;StatikAPI OSS CLI can work standalone.&lt;/p&gt;

&lt;p&gt;You can generate the API outputs and decide where to serve them from.&lt;/p&gt;

&lt;p&gt;There is also optional &lt;strong&gt;Cloudflare support&lt;/strong&gt; for people who want to deploy generated API outputs closer to the edge.&lt;/p&gt;

&lt;p&gt;The Cloudflare adapter path is useful if you want a setup where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;generated API outputs can be deployed to Cloudflare&lt;/li&gt;
&lt;li&gt;public outputs can be served fast&lt;/li&gt;
&lt;li&gt;updates can be triggered through webhook-based workflows&lt;/li&gt;
&lt;li&gt;the project can still keep the “generate first, serve later” model&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cloudflare is not required.&lt;/p&gt;

&lt;p&gt;It is an option.&lt;/p&gt;

&lt;p&gt;The main idea stays the same:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Generate the API output first, then serve it from the place that makes sense for your project.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What kind of APIs fit this?
&lt;/h2&gt;

&lt;p&gt;StatikAPI is useful when the data is mostly read-heavy and predictable.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;h3&gt;
  
  
  Third-party API data
&lt;/h3&gt;

&lt;p&gt;If you depend on a slow or rate-limited API, but the data does not need to be fresh on every request, you can fetch and reshape it ahead of time.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/products
/pricing
/external-data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Docs navigation
&lt;/h3&gt;

&lt;p&gt;A docs sidebar or navigation tree usually changes when docs change, not on every request.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/docs/nav
/docs/sidebar
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Changelog feed
&lt;/h3&gt;

&lt;p&gt;Release notes change when you publish a release.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/changelog
/releases/latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Product catalog
&lt;/h3&gt;

&lt;p&gt;Product data often changes on a schedule or when the source changes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/products
/catalog
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Public config
&lt;/h3&gt;

&lt;p&gt;Frontend apps often need public config or metadata.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/config
/site-meta
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Release metadata
&lt;/h3&gt;

&lt;p&gt;Version, release, and build information can often be generated ahead of time.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/release
/build-info
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  AI-readable content
&lt;/h3&gt;

&lt;p&gt;Structured API output can also be useful when tools, agents, or AI systems need clean data instead of scraping pages.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/content/feed
/knowledge-base
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I am not saying StatikAPI is an AI platform.&lt;/p&gt;

&lt;p&gt;I am saying clean structured API output can be useful for tools that need to read your content clearly.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this is not for
&lt;/h2&gt;

&lt;p&gt;StatikAPI is not for every API.&lt;/p&gt;

&lt;p&gt;It is not for payment logic.&lt;br&gt;&lt;br&gt;
It is not for private user dashboards.&lt;br&gt;&lt;br&gt;
It is not for realtime collaboration.&lt;br&gt;&lt;br&gt;
It is not for mutation-heavy systems.&lt;br&gt;&lt;br&gt;
It is not for anything that needs to be computed uniquely for every user on every request.&lt;/p&gt;

&lt;p&gt;Those things need a real backend.&lt;/p&gt;

&lt;p&gt;And that is fine.&lt;/p&gt;

&lt;p&gt;StatikAPI is for another kind of API:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;APIs where the data can be prepared ahead of time and updated when needed.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Why I built it
&lt;/h2&gt;

&lt;p&gt;I kept seeing the same pattern.&lt;/p&gt;

&lt;p&gt;The backend was there.&lt;br&gt;&lt;br&gt;
The API existed.&lt;br&gt;&lt;br&gt;
But the endpoint was mostly returning predictable data.&lt;/p&gt;

&lt;p&gt;Sometimes it was fetching from another API.&lt;br&gt;&lt;br&gt;
Sometimes it was combining data from multiple places.&lt;br&gt;&lt;br&gt;
Sometimes it was cleaning up a response that the frontend did not want to deal with.&lt;br&gt;&lt;br&gt;
Sometimes it was only hiding the messiness of the source data.&lt;/p&gt;

&lt;p&gt;And still, every request had to go through runtime logic.&lt;/p&gt;

&lt;p&gt;That felt heavier than necessary.&lt;/p&gt;

&lt;p&gt;So I wanted to build something that treats API output more like publishable content.&lt;/p&gt;

&lt;p&gt;Not every API response needs to be alive all the time.&lt;/p&gt;

&lt;p&gt;Some responses can be prepared, shaped, published, cached, and updated when needed.&lt;/p&gt;

&lt;p&gt;That is the idea behind StatikAPI.&lt;/p&gt;
&lt;h2&gt;
  
  
  The OSS CLI is available now
&lt;/h2&gt;

&lt;p&gt;The open-source CLI is available now.&lt;/p&gt;

&lt;p&gt;Current focus:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;define API-like route files&lt;/li&gt;
&lt;li&gt;fetch or prepare data during build&lt;/li&gt;
&lt;li&gt;shape the response the way your app needs&lt;/li&gt;
&lt;li&gt;generate API outputs ahead of time&lt;/li&gt;
&lt;li&gt;serve the generated output&lt;/li&gt;
&lt;li&gt;update when the source changes&lt;/li&gt;
&lt;li&gt;run standalone or use optional Cloudflare deployment support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The project is still early, and I am putting it out in the open because I want feedback from real use cases.&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 API would you generate ahead of time?&lt;/li&gt;
&lt;li&gt;Would this help with third-party APIs, docs, changelogs, configs, or public data?&lt;/li&gt;
&lt;li&gt;Where does this idea break?&lt;/li&gt;
&lt;li&gt;What would make it useful in an actual project?&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://github.com/zonayedpca/statikapi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The simplest idea to remember:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Data sources → clean API output → predictable updates
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or the developer version:&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/ → build → api-out/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

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

&lt;p&gt;That would be wrong.&lt;/p&gt;

&lt;p&gt;I am saying many apps have API responses that are already predictable, already read-heavy, and often based on data that comes from somewhere else.&lt;/p&gt;

&lt;p&gt;For those cases, maybe we do not need to fetch, reshape, and return the same kind of response on every request.&lt;/p&gt;

&lt;p&gt;Maybe we can build the API output ahead of time.&lt;/p&gt;

&lt;p&gt;That is what I am exploring with StatikAPI OSS CLI.&lt;/p&gt;

&lt;p&gt;The hosted StatikAPI app is also being prepared, but for now the open-source CLI is available and ready for feedback.&lt;/p&gt;

&lt;p&gt;If the idea makes sense, please check out the repo, try it, share it with someone who might find it useful, and if you think it deserves it, a GitHub star would mean a lot.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://github.com/zonayedpca/statikapi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>webdev</category>
      <category>opensource</category>
      <category>api</category>
      <category>programming</category>
    </item>
    <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://dev.to/zonayedpca/static-export-but-for-apis-why-i-built-statikapi-i34</link>
      <guid>https://dev.to/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://dev.to/zonayedpca/introducing-electron-gatsby-boilerplate-19ll</link>
      <guid>https://dev.to/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>
