<?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: EthenD</title>
    <description>The latest articles on DEV Community by EthenD (@_a798bd50d6d2b3762a7511).</description>
    <link>https://dev.to/_a798bd50d6d2b3762a7511</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%2F3686105%2Fdedb40af-6b3f-4414-9e37-42e02b2cb2f3.png</url>
      <title>DEV Community: EthenD</title>
      <link>https://dev.to/_a798bd50d6d2b3762a7511</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/_a798bd50d6d2b3762a7511"/>
    <language>en</language>
    <item>
      <title>Cursor Deep Dive: How I Built 100+ Web Tools in 24 Hours with One .cursorrules File</title>
      <dc:creator>EthenD</dc:creator>
      <pubDate>Tue, 30 Dec 2025 13:19:27 +0000</pubDate>
      <link>https://dev.to/_a798bd50d6d2b3762a7511/cursor-deep-dive-how-i-built-100-web-tools-in-24-hours-with-one-cursorrules-file-249p</link>
      <guid>https://dev.to/_a798bd50d6d2b3762a7511/cursor-deep-dive-how-i-built-100-web-tools-in-24-hours-with-one-cursorrules-file-249p</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;a href="https://webutilitykit.com/" rel="noopener noreferrer"&gt;WebUtilityKit.com&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/jiachaoDing/my-tools-matrix/" rel="noopener noreferrer"&gt;View Repository&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ⏱️ TL;DR
&lt;/h2&gt;

&lt;p&gt;Leveraging the powerful AI pair programming capabilities of &lt;strong&gt;Cursor&lt;/strong&gt;, I built an online platform containing over 100 practical web utilities in less than 24 hours.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project Highlights:&lt;/strong&gt; Pure Frontend, No Backend, No Frameworks (No React/Vue), Zero npm dependencies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Secret:&lt;/strong&gt; Relying on &lt;strong&gt;Vanilla JS&lt;/strong&gt;, &lt;strong&gt;Tailwind CSS&lt;/strong&gt;, and a carefully crafted &lt;strong&gt;&lt;code&gt;.cursorrules&lt;/code&gt;&lt;/strong&gt; file—which successfully turned AI into the architect that knows me best.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffxqv1hi8pz620zwrjdpd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffxqv1hi8pz620zwrjdpd.png" alt="Hero Image: WebUtilityKit.com" width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The Origin: From Prompt to Execution
&lt;/h2&gt;

&lt;p&gt;It all started with a simple question I asked Claude inside Cursor:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"List 100 common web utilities that can be implemented &lt;strong&gt;purely on the client-side&lt;/strong&gt;."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In seconds, the AI threw a detailed list at me: &lt;a href="https://webutilitykit.com/json-formatter" rel="noopener noreferrer"&gt;JSON Formatter&lt;/a&gt;, &lt;a href="https://webutilitykit.com/image-compressor" rel="noopener noreferrer"&gt;Image Compressor&lt;/a&gt;, &lt;a href="https://webutilitykit.com/password-generator" rel="noopener noreferrer"&gt;Strong Password Generator&lt;/a&gt;, Unit Converters, PDF Tools... everything I could imagine.&lt;/p&gt;

&lt;p&gt;Immediately, I asked the core architectural question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What is the simplest way to implement all of these with &lt;strong&gt;maximum code reuse&lt;/strong&gt;?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The AI's answer was direct: &lt;strong&gt;Build a "Design System as Code".&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  2. The Core: The &lt;code&gt;.cursorrules&lt;/code&gt; File
&lt;/h2&gt;

&lt;p&gt;Many people misunderstand AI coding assistants, treating every prompt as a one-off "Q&amp;amp;A". But the real power of AI lies in &lt;strong&gt;Context Persistence&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I spent the first 2 hours polishing the &lt;code&gt;.cursorrules&lt;/code&gt; file. But I didn't type these 300+ lines myself.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Trick: Meta-Prompting ("Inception" Style)
&lt;/h3&gt;

&lt;p&gt;I didn't start from scratch. I told Cursor:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I want to build a pure Vanilla JS + Tailwind project. The code style should be minimal like Linear, and backend code is strictly forbidden. &lt;strong&gt;Please draft a perfect .cursorrules file for me, including tech stack constraints, style guides, and SEO requirements.&lt;/strong&gt;"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The AI instantly generated 90% of the content. This file became the "DNA" of the project, defining:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;STRICT Stack:&lt;/strong&gt; No React/Vue allowed. Browser Native APIs only (FileReader, Blob, etc.).&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;UI/UX Standards:&lt;/strong&gt; No borders on containers. Cards must have a "floating" feel. Unified color variables.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Code Norms:&lt;/strong&gt; Enforce semantic HTML. No inline styles.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With this file, whenever I said "Make a Base64 Encoder," the AI didn't need me to explain the layout, button styles, or SEO structure again. It automatically read the rules and executed them perfectly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbjf014rmte83jec0ntp3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbjf014rmte83jec0ntp3.png" alt=".cursorrules File Screenshot" width="800" height="662"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  3. The 24-Hour Sprint Retrospective
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🔴 Hours 1-2: Infrastructure&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Generated and fine-tuned the &lt;code&gt;.cursorrules&lt;/code&gt; design system via AI.&lt;/li&gt;
&lt;li&gt;Established the directory structure and created shared Header/Footer components.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;🟡 Hours 3-8: Prototyping (The First 30)&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Efficiency:&lt;/strong&gt; ~10 mins per tool.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Strategy:&lt;/strong&gt; Used Tailwind CDN to validate ideas quickly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Output:&lt;/strong&gt; Completed basic tools like JSON Formatter and Password Generator.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;⚫ Hours 9-12: Architecture Crisis&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Hit a major snag migrating from Tailwind CDN to CLI (detailed below). Had to stop and refactor.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;🟢 Hours 13-20: Explosive Output (The Remaining 70)&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Efficiency:&lt;/strong&gt; An amazing &lt;strong&gt;~5 mins per tool&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Strategy:&lt;/strong&gt; Switched to Tailwind CLI and optimized prompt templates. Because the rules were clear, the AI code generation was almost "one-shot" perfect.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;🔵 Hours 21-24: Polish &amp;amp; Deploy&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Bulk addition of SEO Meta tags.&lt;/li&gt;
&lt;li&gt;Configured Cloudflare Pages for automated deployment.&lt;/li&gt;
&lt;li&gt;Mobile adaptation testing.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  4. The Trap: Tailwind CDN to CLI Migration
&lt;/h2&gt;

&lt;p&gt;The development process wasn't all smooth sailing. The biggest pitfall was &lt;strong&gt;switching the build method&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;During the prototyping phase, for speed, the code generated by AI heavily used custom syntax compatible with the CDN mode:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;style &lt;/span&gt;&lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text/tailwindcss"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nc"&gt;.btn-primary&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="err"&gt;@apply&lt;/span&gt; &lt;span class="err"&gt;px-4&lt;/span&gt; &lt;span class="err"&gt;py-2&lt;/span&gt; &lt;span class="err"&gt;bg-blue-500&lt;/span&gt; &lt;span class="err"&gt;text-white&lt;/span&gt; &lt;span class="err"&gt;rounded-lg;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/style&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This ran perfectly in CDN JIT mode. But when I migrated to &lt;strong&gt;Tailwind CLI&lt;/strong&gt; for production performance (loading speed), &lt;strong&gt;the page styles completely collapsed.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reason:&lt;/strong&gt; Standard Tailwind CLI cannot parse &lt;code&gt;@apply&lt;/code&gt; syntax inside HTML &lt;code&gt;&amp;lt;style&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Refactor:&lt;/strong&gt; I replaced all &lt;code&gt;@apply&lt;/code&gt; rules scattered across 30 HTML files directly into standard DOM utility classes (e.g., &lt;code&gt;class="px-4 py-2..."&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Update Rules:&lt;/strong&gt; Explicitly forbade CDN-style syntax in &lt;code&gt;.cursorrules&lt;/code&gt;:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Forbidden in HTML (do not generate):&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;&amp;lt;style type="text/tailwindcss"&amp;gt; ... &amp;lt;/style&amp;gt;&lt;/span&gt;
&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;Any @apply inside HTML &amp;lt;style&amp;gt; tags&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Lesson Learned:&lt;/strong&gt; Before letting AI generate code on a large scale, &lt;strong&gt;you must define production build constraints first&lt;/strong&gt;, otherwise, the cost of refactoring is extremely high.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Deployment: Cloudflare Pages is a Game Changer
&lt;/h2&gt;

&lt;p&gt;CI/CD has never been this simple.&lt;/p&gt;

&lt;p&gt;Just connect Cloudflare to your GitHub repository, and everything after that is automatic.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Setup Time:&lt;/strong&gt; 3 minutes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build Command:&lt;/strong&gt; None (Pure Static HTML, not even &lt;code&gt;npm run build&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hosting Cost:&lt;/strong&gt; &lt;strong&gt;$0 (Free Tier is enough)&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Benefits:&lt;/strong&gt; Global CDN + Auto HTTPS + Automatic deployment on every &lt;code&gt;git push&lt;/code&gt;.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6qkf73u77fmryzrldolx.png" alt="CloudflarePageUSE" width="800" height="446"&gt;
---&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  6. Project Stats
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total Tools&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;100+&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Dev Time&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;~24 Hours&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Lines of Code&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;80,000+&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Backend Code&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0 Lines&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;npm Dependencies&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Performance (FCP)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;&amp;lt; 0.5s&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  7. Technical Reflection: Why Vanilla JS?
&lt;/h2&gt;

&lt;p&gt;In a world dominated by React/Vue, why did I go against the grain?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Extreme Performance&lt;/strong&gt;: No Virtual DOM Diffing algorithms, no Hydration process. Browser native APIs are simply the fastest.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Absolute Simplicity&lt;/strong&gt;: Each tool is an independent HTML file. Want to add a new function? New Folder -&amp;gt; Paste -&amp;gt; Modify Logic. No complex Webpack/Vite configs needed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy &amp;amp; Security (Key Selling Point)&lt;/strong&gt;:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No Backend = Data stays local.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Image compression, PDF splitting, and password generation are all done in the browser using Web Crypto API or WASM. User data is never uploaded to my server.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhl8v1rzz2f6s857smrjg.png" alt="webutilitykit.com-UI-image" width="800" height="450"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Design Consistency&lt;/strong&gt;:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dark Mode First&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Unified "Privacy Badge" design to emphasize local processing and build user trust.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  8. Advice for Developers
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Invest in your `.cursorrules&lt;/strong&gt;`:
The 2 hours I spent writing rules saved me 20+ hours of repetitive prompting and debugging later. It is the "Config File" of the AI era.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prototype Fast, but Standardize Early&lt;/strong&gt;:
Don't be like me and wait until you've written 30 pages to unify your build tool (CLI). Refactoring is painful.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Constraints Fuel Creativity&lt;/strong&gt;:
"No Backend, No npm" sounds like a limitation, but it forced me to dig into the potential of native browser APIs, resulting in a more private, lightweight product.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  9. Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Building 100 tools in 24 hours isn't about how fast my hands are, nor is it about deep technical expertise.&lt;/p&gt;

&lt;p&gt;I want to emphasize: &lt;strong&gt;In this era of AI-assisted programming, the technical barrier has been lowered infinitely.&lt;/strong&gt; As long as you can screenshot errors to AI and clearly describe your requirements, &lt;strong&gt;everyone can be a full-stack engineer.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The &lt;code&gt;.cursorrules&lt;/code&gt; file is the real product here; these 100 tools are just its output.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you want to try it too, open Cursor now and start defining your own Rules.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The project is Open Source. Contributions and Stars ⭐ are welcome:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/jiachaoDing/my-tools-matrix/" rel="noopener noreferrer"&gt;my-tools-matrix&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;Live Demo&lt;/strong&gt;: &lt;a href="https://webutilitykit.com/" rel="noopener noreferrer"&gt;WebUtilityKit.com&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;If you have any technical questions, feel free to discuss them in the comments!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>ai</category>
      <category>beginnger</category>
    </item>
  </channel>
</rss>
