<?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: Pranjal Srivastava</title>
    <description>The latest articles on DEV Community by Pranjal Srivastava (@pranjal_srivastava_b5e55f).</description>
    <link>https://dev.to/pranjal_srivastava_b5e55f</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%2F2236650%2F5a92e6fb-c278-42a4-9b77-7305ab631556.jpg</url>
      <title>DEV Community: Pranjal Srivastava</title>
      <link>https://dev.to/pranjal_srivastava_b5e55f</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pranjal_srivastava_b5e55f"/>
    <language>en</language>
    <item>
      <title>How I Built 65 Free Browser Tools in 2 Weeks Using AI (AstroJS + Cloudflare)</title>
      <dc:creator>Pranjal Srivastava</dc:creator>
      <pubDate>Wed, 10 Jun 2026 00:02:28 +0000</pubDate>
      <link>https://dev.to/pranjal_srivastava_b5e55f/how-i-built-65-free-browser-tools-in-2-weeks-using-ai-astrojs-cloudflare-1fo7</link>
      <guid>https://dev.to/pranjal_srivastava_b5e55f/how-i-built-65-free-browser-tools-in-2-weeks-using-ai-astrojs-cloudflare-1fo7</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Every time I needed a quick tool online, &lt;br&gt;
the same loop:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Search for free PDF compressor&lt;/li&gt;
&lt;li&gt;Find a promising site&lt;/li&gt;
&lt;li&gt;Hit a sign-up wall or paywall&lt;/li&gt;
&lt;li&gt;Repeat for every tool&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I got tired of it. So I built CrispToolHub — &lt;br&gt;
a hub of 65+ free browser-based tools.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;crisptoolhub.com&lt;/strong&gt; — 70 pages, 65+ tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📄 PDF Toolkit (10 tools using pdf-lib + PDF.js)&lt;/li&gt;
&lt;li&gt;📝 Resume &amp;amp; Career (10 tools with Gemini AI)&lt;/li&gt;
&lt;li&gt;🖼️ Image Tools (7 tools with WASM)&lt;/li&gt;
&lt;li&gt;💰 Financial Calculators (20 calculators)&lt;/li&gt;
&lt;li&gt;👨‍💻 Developer Tools (6 tools)&lt;/li&gt;
&lt;li&gt;✏️ Text Tools (6 tools)&lt;/li&gt;
&lt;li&gt;📏 Ruler &amp;amp; Compass&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AstroJS v6&lt;/strong&gt; — MPA (no SPA), static build&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tailwind CSS v4&lt;/strong&gt; — styling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloudflare Pages&lt;/strong&gt; — hosting (free)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloudflare Workers&lt;/strong&gt; — Gemini AI proxy&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Gemini 2.5 Flash&lt;/strong&gt; — AI features&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;pdf-lib&lt;/strong&gt; — PDF manipulation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PDF.js&lt;/strong&gt; — PDF rendering&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a class="mentioned-user" href="https://dev.to/imgly"&gt;@imgly&lt;/a&gt;/background-removal&lt;/strong&gt; — WASM AI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mammoth.js&lt;/strong&gt; — Word doc parsing&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How AI Helped
&lt;/h2&gt;

&lt;p&gt;I used Claude Code (Anthropic) for the entire &lt;br&gt;
development. The workflow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Write detailed specs for each tool&lt;/li&gt;
&lt;li&gt;Claude Code reads CLAUDE.md (project bible)&lt;/li&gt;
&lt;li&gt;Builds the tool following all conventions&lt;/li&gt;
&lt;li&gt;Runs tests automatically&lt;/li&gt;
&lt;li&gt;Deploys via Cloudflare Pages&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This reduced development time from months to weeks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Technical Decisions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;MPA over SPA:&lt;/strong&gt; Every page is a full reload. &lt;br&gt;
Better SEO, better performance, simpler code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Everything client-side:&lt;/strong&gt; All processing happens &lt;br&gt;
in the browser. No servers, no file uploads, &lt;br&gt;
complete privacy. PDF.js renders PDFs, WASM &lt;br&gt;
removes backgrounds, pdf-lib manipulates PDFs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lazy loading:&lt;/strong&gt; Heavy libraries (PDF.js, WASM, &lt;br&gt;
mammoth) only load when user clicks a button. &lt;br&gt;
Initial page load is near-instant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Currency system:&lt;/strong&gt; 6-currency toggle (USD/INR/&lt;br&gt;
EUR/GBP/AED/SAR) with canonical USD base value &lt;br&gt;
to prevent rounding drift.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lessons Learned
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Trailing slashes matter for SEO&lt;/strong&gt; — Google &lt;br&gt;
Search Console showed redirect errors for /ruler &lt;br&gt;
without trailing slash. Fixed with &lt;br&gt;
trailingSlash: "always" in Astro config.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Mobile file upload is different&lt;/strong&gt; — &lt;br&gt;
Blob.arrayBuffer() fails on iOS Safari. &lt;br&gt;
Solution: FileReader API universally works.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Gemini thinking models&lt;/strong&gt; — gemini-2.5-flash &lt;br&gt;
is a thinking model. Without thinkingBudget: 0, &lt;br&gt;
it burns all tokens on reasoning and returns &lt;br&gt;
empty response.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;PDF.js workers on mobile&lt;/strong&gt; — Web Workers &lt;br&gt;
fail on mobile browsers. Solution: CDN worker &lt;br&gt;
fallback with version matching.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Results After 3 Days
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;1,900 active users&lt;/li&gt;
&lt;li&gt;55% US traffic&lt;/li&gt;
&lt;li&gt;Top pages: Mortgage Calculator, Resume Builder&lt;/li&gt;
&lt;li&gt;70 pages indexed on Google&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Google AdSense (pending approval)&lt;/li&gt;
&lt;li&gt;Premium subscriptions (₹199/month)&lt;/li&gt;
&lt;li&gt;AI-powered reports (resume, finance)&lt;/li&gt;
&lt;li&gt;Video tools&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;&lt;strong&gt;&lt;a href="https://crisptoolhub.com" rel="noopener noreferrer"&gt;https://crisptoolhub.com&lt;/a&gt;&lt;/strong&gt; — completely free, &lt;br&gt;
no account needed.&lt;/p&gt;

&lt;p&gt;Would love feedback from the dev community — &lt;br&gt;
what tools are missing? What would you build next?&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with AstroJS + Cloudflare + Claude Code&lt;/em&gt;&lt;/p&gt;

</description>
      <category>astro</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
