<?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: yeong j</title>
    <description>The latest articles on DEV Community by yeong j (@vici).</description>
    <link>https://dev.to/vici</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%2F4020818%2F02cb49bb-b4cf-4ec8-a7b8-d7ef6ea63d70.png</url>
      <title>DEV Community: yeong j</title>
      <link>https://dev.to/vici</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vici"/>
    <language>en</language>
    <item>
      <title>I built 47 free static dev tools with no backend — lessons learned</title>
      <dc:creator>yeong j</dc:creator>
      <pubDate>Sat, 11 Jul 2026 01:58:28 +0000</pubDate>
      <link>https://dev.to/vici/i-built-47-free-static-dev-tools-with-no-backend-lessons-learned-h52</link>
      <guid>https://dev.to/vici/i-built-47-free-static-dev-tools-with-no-backend-lessons-learned-h52</guid>
      <description>&lt;p&gt;Over the past few weeks I shipped &lt;a href="https://tools.stackfreeks.com" rel="noopener noreferrer"&gt;47 free browser-based tools&lt;/a&gt; for developers and sysadmins — cost calculators, config generators, converters. No backend, no build step, no framework. Just static HTML/CSS/JS on Cloudflare Pages.&lt;/p&gt;

&lt;p&gt;Here's what I learned.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why static-only
&lt;/h2&gt;

&lt;p&gt;Every "free online tool" site I used had the same problems: slow, ad-stuffed, and quietly shipping my input to a server somewhere. For 90% of dev utilities that's absurd — a chmod calculator does not need a database.&lt;/p&gt;

&lt;p&gt;So I set one constraint: &lt;strong&gt;everything runs client-side.&lt;/strong&gt; If a tool can't work with the network tab empty, it doesn't get built. Paste a JWT into the &lt;a href="https://tools.stackfreeks.com/tools/jwt-decoder/" rel="noopener noreferrer"&gt;JWT decoder&lt;/a&gt; and nothing leaves your browser. Load a tool once and it works offline.&lt;/p&gt;

&lt;p&gt;That constraint turned out to be a feature, not a limitation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hosting costs $0.&lt;/strong&gt; Cloudflare Pages serves static files for free, with a CDN included.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nothing to maintain.&lt;/strong&gt; No server to patch, no dependencies to bump, no 3am pages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deploys are &lt;code&gt;git push&lt;/code&gt;.&lt;/strong&gt; Build pipeline: none.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Lesson 1: one HTML file per tool beats a framework
&lt;/h2&gt;

&lt;p&gt;Each tool is a single self-contained &lt;code&gt;index.html&lt;/code&gt; — inline CSS, inline JS. I expected this to get painful around tool #10. It never did.&lt;/p&gt;

&lt;p&gt;What I gained: zero shared state, zero build config, and any tool can be rewritten from scratch in an afternoon without touching the others. What I lost: some duplication (design tokens are copy-pasted into every file). I'll take that trade every time for a project like this — duplication is cheaper than the wrong abstraction.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lesson 2: niche tools beat generic tools
&lt;/h2&gt;

&lt;p&gt;My JSON formatter and password generator will never rank on Google — they compete with a hundred DR-90 sites. The tools that actually get found are the weirdly specific ones:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://tools.stackfreeks.com/tools/game-server-cost-calculator/" rel="noopener noreferrer"&gt;Game Server Cost Calculator&lt;/a&gt; — RAM and VPS cost by player count for Minecraft, Valheim, Rust&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://tools.stackfreeks.com/tools/fail2ban-jail-generator/" rel="noopener noreferrer"&gt;Fail2ban Jail Generator&lt;/a&gt; — pick services, get a ready &lt;code&gt;jail.local&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://tools.stackfreeks.com/tools/docker-ram-calculator/" rel="noopener noreferrer"&gt;Docker RAM Calculator&lt;/a&gt; — size containers before picking a VPS plan&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If I started over, I'd skip the generic utilities entirely and build only tools where I can name the exact person searching for it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lesson 3: static doesn't mean SEO-exempt
&lt;/h2&gt;

&lt;p&gt;Pure-JS tool pages look "thin" to crawlers. What moved the needle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real written content on every page: a how-to section and an FAQ, not just the widget&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;FAQPage&lt;/code&gt; + &lt;code&gt;WebApplication&lt;/code&gt; JSON-LD on every tool&lt;/li&gt;
&lt;li&gt;Aggressive internal cross-linking — every tool links 3 related tools, so there are no orphan pages&lt;/li&gt;
&lt;li&gt;Pairing each niche tool with a matching blog article that targets the informational version of the query&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Lesson 4: i18n in ~60 lines of vanilla JS
&lt;/h2&gt;

&lt;p&gt;The site is bilingual (EN/KO). I almost reached for a library, then wrote a tiny shared script instead: &lt;code&gt;data-i18n&lt;/code&gt; attributes for short strings, &lt;code&gt;.lang-en&lt;/code&gt; / &lt;code&gt;.lang-ko&lt;/code&gt; blocks for long content, a toggle that flips a class on &lt;code&gt;&amp;lt;html&amp;gt;&lt;/code&gt; and persists to &lt;code&gt;localStorage&lt;/code&gt;. Sixty lines, no dependencies, works on every page.&lt;/p&gt;

&lt;h2&gt;
  
  
  The stack, in full
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;HTML/CSS/JS (vanilla, no build)&lt;/li&gt;
&lt;li&gt;Cloudflare Pages (free tier) + Cloudflare Web Analytics (free, no cookies)&lt;/li&gt;
&lt;li&gt;GitHub for deploys — push to &lt;code&gt;main&lt;/code&gt;, live in ~1 minute&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's it. That's the whole stack.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;More long-tail calculators, and following the search data to decide what to build instead of guessing. The full collection is at &lt;a href="https://tools.stackfreeks.com" rel="noopener noreferrer"&gt;tools.stackfreeks.com&lt;/a&gt; — all free, no signup, nothing tracked beyond a page-view counter.&lt;/p&gt;

&lt;p&gt;If you've built something similar (or think static-only is a mistake), I'd love to hear about it in the comments. And if there's a niche dev tool you wish existed — tell me, I might just build it.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>showdev</category>
      <category>devops</category>
      <category>sideprojects</category>
    </item>
  </channel>
</rss>
