<?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: Ricardo Rojas</title>
    <description>The latest articles on DEV Community by Ricardo Rojas (@ricardo_rojas_0c3f2a95209).</description>
    <link>https://dev.to/ricardo_rojas_0c3f2a95209</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%2F3821096%2Ff399faa2-4c3c-42b4-8a78-ee37a966c1a6.jpg</url>
      <title>DEV Community: Ricardo Rojas</title>
      <link>https://dev.to/ricardo_rojas_0c3f2a95209</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ricardo_rojas_0c3f2a95209"/>
    <language>en</language>
    <item>
      <title>I Built 39 Developer Tools in 10 Days — No Backend, No Tracking, No Ads</title>
      <dc:creator>Ricardo Rojas</dc:creator>
      <pubDate>Sun, 22 Mar 2026 02:28:35 +0000</pubDate>
      <link>https://dev.to/ricardo_rojas_0c3f2a95209/i-built-39-developer-tools-in-10-days-no-backend-no-tracking-no-ads-1732</link>
      <guid>https://dev.to/ricardo_rojas_0c3f2a95209/i-built-39-developer-tools-in-10-days-no-backend-no-tracking-no-ads-1732</guid>
      <description>&lt;h1&gt;
  
  
  I Built 39 Developer Tools in 10 Days — No Backend, No Tracking, No Ads
&lt;/h1&gt;

&lt;p&gt;Every developer has that moment: you need to format some JSON, generate a UUID, or check an HTTP status code, and you end up on a site covered in ads with cookie banners and trackers. Your data gets sent to some server you don't control. For a 2-second task.&lt;/p&gt;

&lt;p&gt;I got tired of it. So I built &lt;a href="https://toolnexus.dev" rel="noopener noreferrer"&gt;ToolNexus&lt;/a&gt; — &lt;strong&gt;39 developer tools that run 100% in your browser&lt;/strong&gt;. No backend. No tracking. No ads. Your data never leaves your device.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;39 tools across 6 batches, covering the most common developer tasks:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Text &amp;amp; Code&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;JSON Formatter (tree view, auto-repair, sort keys)&lt;/li&gt;
&lt;li&gt;SQL Formatter (custom tokenizer, syntax highlighting)&lt;/li&gt;
&lt;li&gt;Markdown Preview (custom parser, 0 dependencies)&lt;/li&gt;
&lt;li&gt;Regex Tester (live highlighting, capture groups)&lt;/li&gt;
&lt;li&gt;Diff Checker (LCS algorithm, ignore options)&lt;/li&gt;
&lt;li&gt;Text Case Converter (11 formats: camelCase, snake_case, etc.)&lt;/li&gt;
&lt;li&gt;Character Counter (words, sentences, bytes, reading time)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Encoding &amp;amp; Security&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Base64 Encoder/Decoder&lt;/li&gt;
&lt;li&gt;URL Encoder/Decoder&lt;/li&gt;
&lt;li&gt;Hash Generator (MD5, SHA-1/256/512 + HMAC)&lt;/li&gt;
&lt;li&gt;Password Generator (crypto.getRandomValues, entropy meter)&lt;/li&gt;
&lt;li&gt;JWT Decoder + JWT Generator (Web Crypto API)&lt;/li&gt;
&lt;li&gt;HTML Entity Encoder/Decoder&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CSS &amp;amp; Design&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Color Converter (HEX/RGB/HSL bidirectional)&lt;/li&gt;
&lt;li&gt;CSS Gradient Generator (linear/radial, presets)&lt;/li&gt;
&lt;li&gt;Box Shadow Generator (multi-layer, live preview)&lt;/li&gt;
&lt;li&gt;Border Radius Generator (4-corner control)&lt;/li&gt;
&lt;li&gt;Text Shadow Generator (6 presets: neon, glow, fire)&lt;/li&gt;
&lt;li&gt;Color Palette Generator (6 harmony types)&lt;/li&gt;
&lt;li&gt;CSS Unit Converter (px/rem/em/vh/vw)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Converters &amp;amp; Generators&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;JSON ↔ YAML Converter&lt;/li&gt;
&lt;li&gt;JSON ↔ CSV Converter&lt;/li&gt;
&lt;li&gt;CSV to SQL (4 SQL dialects)&lt;/li&gt;
&lt;li&gt;SVG to PNG (1x-4x scale)&lt;/li&gt;
&lt;li&gt;Image Compressor (Canvas API, quality slider)&lt;/li&gt;
&lt;li&gt;QR Code Generator&lt;/li&gt;
&lt;li&gt;Favicon Generator (text, emoji, image upload)&lt;/li&gt;
&lt;li&gt;Placeholder Image Generator&lt;/li&gt;
&lt;li&gt;Cron Expression Builder&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Reference &amp;amp; Utility&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;UUID Generator (v1 + v4, bulk, validator)&lt;/li&gt;
&lt;li&gt;Timestamp Converter (Unix ↔ human, timezones)&lt;/li&gt;
&lt;li&gt;Lorem Ipsum Generator&lt;/li&gt;
&lt;li&gt;Chmod Calculator (interactive grid, octal/symbolic)&lt;/li&gt;
&lt;li&gt;Aspect Ratio Calculator&lt;/li&gt;
&lt;li&gt;LLM Token Counter (GPT-4o, Claude, Llama, Gemini)&lt;/li&gt;
&lt;li&gt;HTTP Status Codes (34 codes, search, filter)&lt;/li&gt;
&lt;li&gt;CIDR Calculator (subnet masks, IP ranges)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Next.js 15&lt;/strong&gt; with App Router and TypeScript&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tailwind CSS v4&lt;/strong&gt; for styling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;next-intl&lt;/strong&gt; for i18n (English, Spanish, Portuguese)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero external dependencies&lt;/strong&gt; for processing (only &lt;code&gt;qrcode&lt;/code&gt; for Reed-Solomon error correction)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Self-hosted&lt;/strong&gt; on a Mini PC at home ($0/month hosting)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything is server-side rendered for SEO, but all tool logic runs client-side using native browser APIs: Canvas API, Web Crypto API, Clipboard API.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why 100% Client-Side?
&lt;/h2&gt;

&lt;p&gt;Three reasons:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Privacy&lt;/strong&gt; — Your JSON, your passwords, your JWTs never touch a server. Ever.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Speed&lt;/strong&gt; — No network latency. Everything is instant.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost&lt;/strong&gt; — No backend means no server costs. The whole thing runs on a Mini PC in my living room.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;h3&gt;
  
  
  AI-generated icons beat hand-coded SVGs
&lt;/h3&gt;

&lt;p&gt;I used &lt;a href="https://github.com/nicobailon/nanobanana-mcp-server" rel="noopener noreferrer"&gt;NanoBanana MCP&lt;/a&gt; (Gemini AI) to generate all 39 tool icons. What would have taken days of SVG iteration took minutes. I combined them into a single CSS sprite sheet (177KB, 1 HTTP request) for instant loading.&lt;/p&gt;

&lt;h3&gt;
  
  
  SEO structure matters more than you think
&lt;/h3&gt;

&lt;p&gt;Each tool page has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Schema markup (WebApplication + FAQPage)&lt;/li&gt;
&lt;li&gt;4 educational H2 sections&lt;/li&gt;
&lt;li&gt;Trilingual metadata (EN/ES/PT)&lt;/li&gt;
&lt;li&gt;Hreflang cross-references&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Google indexed 19 pages in the first 10 days with zero link building. The structured data does the heavy lifting.&lt;/p&gt;

&lt;h3&gt;
  
  
  "For dummies" UX converts better
&lt;/h3&gt;

&lt;p&gt;Every tool loads with sample data pre-filled. Users see the tool working before they paste their own data. This simple pattern dramatically reduces bounce rate — our average session is 6.6 minutes.&lt;/p&gt;

&lt;h3&gt;
  
  
  The sprite sheet trick
&lt;/h3&gt;

&lt;p&gt;34 individual icon PNGs = 34 HTTP requests = broken images on slow connections. One sprite sheet = 1 request = all icons load instantly. Simple CSS &lt;code&gt;background-position&lt;/code&gt; does the rest.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Numbers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;39 tools&lt;/strong&gt; across 6 batches&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;124+ pages&lt;/strong&gt; (39 tools × 3 languages + extras)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;3 languages&lt;/strong&gt; (English, Spanish, Portuguese)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;$0/month&lt;/strong&gt; hosting cost&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;0&lt;/strong&gt; external tracking scripts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;0&lt;/strong&gt; cookies&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1&lt;/strong&gt; npm dependency (qrcode)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://toolnexus.dev" rel="noopener noreferrer"&gt;toolnexus.dev&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The code is open source: &lt;a href="https://github.com/nexustools-dev/nexus-tools" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you have ideas for new tools, &lt;a href="https://github.com/nexustools-dev/nexus-tools/discussions/categories/ideas" rel="noopener noreferrer"&gt;suggest them here&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with Next.js, Tailwind CSS, and a lot of Claude Code sessions. The whole project — from zero to 39 tools — took 10 days.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>opensource</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
