<?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>Forem: Jawahar Vignesh</title>
    <description>The latest articles on Forem by Jawahar Vignesh (@jawacompu10).</description>
    <link>https://forem.com/jawacompu10</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%2F337008%2Ff557b1e5-5f75-49f6-849c-e395d19b0d82.jpg</url>
      <title>Forem: Jawahar Vignesh</title>
      <link>https://forem.com/jawacompu10</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/jawacompu10"/>
    <language>en</language>
    <item>
      <title>The Anti-SaaS Resume Builder: Privacy-First, Local-Only, and Zero-Backend 🛡️</title>
      <dc:creator>Jawahar Vignesh</dc:creator>
      <pubDate>Wed, 11 Mar 2026 20:44:11 +0000</pubDate>
      <link>https://forem.com/jawacompu10/the-anti-saas-resume-builder-privacy-first-local-only-and-zero-backend-1dj4</link>
      <guid>https://forem.com/jawacompu10/the-anti-saas-resume-builder-privacy-first-local-only-and-zero-backend-1dj4</guid>
      <description>&lt;p&gt;A few weeks ago, I shared my "&lt;a href="https://dev.to/jawacompu10/stop-paying-subscriptions-for-your-own-resume-5e99"&gt;Really Free Resume&lt;/a&gt;" template—a simple, no-build JSON-to-HTML project. The goal was simple: &lt;strong&gt;Break the shackles&lt;/strong&gt; of predatory resume builders that hold your PDF hostage behind a $20 subscription.&lt;/p&gt;

&lt;p&gt;But that project had a high barrier to entry. Not everyone wants to edit a JSON file in a text editor. So, I took it a step further.&lt;/p&gt;

&lt;p&gt;I’ve built a full-featured web application that gives you the convenience of a modern UI with the privacy of a local text file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check it out:&lt;/strong&gt; &lt;a href="https://really-free-resumes.netlify.app/" rel="noopener noreferrer"&gt;Really Free Resumes&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The "Anti-SaaS" Philosophy
&lt;/h2&gt;

&lt;p&gt;Most "free" tools online are just data-harvesting machines in disguise. They want your email, your work history, and eventually, your credit card.&lt;/p&gt;

&lt;p&gt;I wanted to build a "For Good" project—something that has a real impact on people's lives without asking for anything in return. That meant designing an architecture that &lt;strong&gt;physically cannot&lt;/strong&gt; steal your data.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Zero-Backend Architecture
&lt;/h3&gt;

&lt;p&gt;There is no database. There is no API. There is no tracking.&lt;br&gt;
The entire site is a collection of static files hosted on Netlify. When you "save" a resume, it isn't sent to a server; it stays on your device.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Privacy-First Storage (IndexedDB)
&lt;/h3&gt;

&lt;p&gt;Using the power of the modern browser, the app uses &lt;strong&gt;IndexedDB&lt;/strong&gt; to store multiple resume profiles. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Offline Support:&lt;/strong&gt; Since the logic and data are local, it works even if your internet drops.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Security:&lt;/strong&gt; Your professional history never leaves your browser’s sandbox.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Data Sovereignty
&lt;/h3&gt;

&lt;p&gt;You can download your entire profile as a &lt;code&gt;resume.json&lt;/code&gt; file at any time. This ensures you are never "locked in." If my website disappears tomorrow, your data is still yours, in a standard format, ready to be used elsewhere.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Tech Stack: Lean and Mean
&lt;/h2&gt;

&lt;p&gt;I chose tools that prioritize speed and simplicity:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Alpine.js:&lt;/strong&gt; Handles the reactive UI, form state, and live preview logic without the overhead of a massive framework like React.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tailwind CSS:&lt;/strong&gt; For a clean, professional aesthetic that looks great on both screen and print.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IndexedDB:&lt;/strong&gt; The "Local Database" that makes multi-profile support possible.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Font Awesome &amp;amp; Google Fonts:&lt;/strong&gt; To ensure the output is "Recruiter-Ready."&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live Preview:&lt;/strong&gt; See your changes in real-time as you type.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Profile Support:&lt;/strong&gt; Tailor different resumes for different roles (e.g., "Software Engineer" vs. "QA Manager").&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PDF Export:&lt;/strong&gt; Uses browser-native printing with optimized CSS for a pixel-perfect, professional document.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JSON Import/Export:&lt;/strong&gt; For easy backups and cross-device portability.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;In a world of "AI-driven" everything and massive data breaches, we need more tools that treat users like humans, not "users." &lt;/p&gt;

&lt;p&gt;Whether you're a seasoned developer with 15 years of experience or a student looking for your first internship, you shouldn't have to pay or trade your privacy for a professional resume.&lt;/p&gt;

&lt;p&gt;I’m building this as a labor of love—a way to provide value and help others in their job-seeking experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Give it a spin and let me know what you think!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://really-free-resumes.netlify.app/" rel="noopener noreferrer"&gt;https://really-free-resumes.netlify.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks to &lt;a href="https://www.netlify.com/" rel="noopener noreferrer"&gt;Netlify&lt;/a&gt; for making this possible. They provide a free plan - so I do not have to worry about monetizing or server costs. They also have an Open Source Plan for OSS projects like this. &lt;a href="https://github.com/jawacompu10/simple_web_resume" rel="noopener noreferrer"&gt;Here&lt;/a&gt; is my source code if you are interested. Next up, I want to work on adding different layouts and themes.&lt;/p&gt;

</description>
      <category>career</category>
      <category>privacy</category>
      <category>showdev</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Stop Paying Subscriptions for Your Own Resume 📄</title>
      <dc:creator>Jawahar Vignesh</dc:creator>
      <pubDate>Wed, 25 Feb 2026 14:35:17 +0000</pubDate>
      <link>https://forem.com/jawacompu10/stop-paying-subscriptions-for-your-own-resume-5e99</link>
      <guid>https://forem.com/jawacompu10/stop-paying-subscriptions-for-your-own-resume-5e99</guid>
      <description>&lt;p&gt;We’ve all been there. You spend an hour meticulously crafting your resume on a "free" online builder, only to hit a massive "Pay $19.99 to download PDF" button at the very end. &lt;/p&gt;

&lt;p&gt;Worse yet, many of these platforms are moving toward subscription models. Why do I need a monthly subscription for a document I update once or twice a year? Is the goal to keep me perpetually job-hunting?&lt;/p&gt;

&lt;p&gt;I decided I’d had enough. I wanted a resume that was &lt;strong&gt;truly free&lt;/strong&gt;, private, and lived in my own version control.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem with "Free" Resume Builders
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Paywalled Features:&lt;/strong&gt; "Free" often means "1-page limit" or "only the boring templates."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Download Trap:&lt;/strong&gt; Seeing your resume is free; owning the PDF is not.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy:&lt;/strong&gt; Your professional data is stored on a centralized server you don't control.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tooling Overkill:&lt;/strong&gt; Even great open-source projects often require &lt;code&gt;npm&lt;/code&gt;, CLIs, or complex build steps just to see a preview.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  My Solution: The "Really Free" Resume
&lt;/h2&gt;

&lt;p&gt;I built a simple, zero-tooling web resume template. It follows a "Data-Driven, No-Build" philosophy:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Separation of Concerns:&lt;/strong&gt; All your data lives in a single &lt;code&gt;resume.json&lt;/code&gt; file. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vanilla Everything:&lt;/strong&gt; No React, no Tailwind, no Webpack. Just pure HTML5, CSS3, and Vanilla JavaScript.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Print-First Design:&lt;/strong&gt; The CSS is optimized specifically for the "Print to PDF" feature built into every modern browser.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Version Controlled:&lt;/strong&gt; Since it's just code and JSON, you can host it on GitHub Pages for free and keep your history in Git.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How it Works
&lt;/h2&gt;

&lt;p&gt;The logic is intentionally dead-simple. When you load the page, a small script fetches your &lt;code&gt;resume.json&lt;/code&gt;, parses the data, and injects it into the DOM.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. The Data (&lt;code&gt;resume.json&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;You don't touch the HTML structure for updates. You just edit a JSON object:&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;"personalInfo"&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;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;"Jawahar Vignesh"&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;"Senior Software Engineer"&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;span class="nl"&gt;"experience"&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="err"&gt;...&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;h3&gt;
  
  
  2. The Delivery
&lt;/h3&gt;

&lt;p&gt;Because modern browsers have strict security (CORS), you can't just double-click &lt;code&gt;index.html&lt;/code&gt; to load the JSON. But as developers, we already have the tools to fix this. A simple one-liner serves the project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Python&lt;/span&gt;
python3 &lt;span class="nt"&gt;-m&lt;/span&gt; http.server 8000

&lt;span class="c"&gt;# Node.js&lt;/span&gt;
npx serve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2F0jkvsr1p7v8ybwqkwnjk.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%2F0jkvsr1p7v8ybwqkwnjk.png" alt="Sample Resume" width="800" height="900"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. The "Export"
&lt;/h3&gt;

&lt;p&gt;Forget proprietary PDF generators. Open your browser, hit &lt;code&gt;Ctrl + P&lt;/code&gt;, and "Save as PDF." The CSS media queries handle the rest, ensuring margins, fonts, and page breaks are professional and clean.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why You Should Care
&lt;/h2&gt;

&lt;p&gt;As developers, we value ownership and simplicity. By using a JSON-driven approach:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Your data is portable.&lt;/strong&gt; You can easily transform your &lt;code&gt;resume.json&lt;/code&gt; to work with other tools later.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You own the source.&lt;/strong&gt; No one can ever charge you to "unlock" your own work experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It’s a portfolio piece.&lt;/strong&gt; It shows you understand the basics—clean code, data structures, and the power of the platform.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Check it out
&lt;/h2&gt;

&lt;p&gt;I've open-sourced the template on GitHub. Feel free to fork it, swap in your details, and never pay for a resume builder again.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/jawacompu10/simple_web_resume" rel="noopener noreferrer"&gt;Simple Web Resume - GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro Tip:&lt;/strong&gt; Since this is a zero-tooling, plain HTML/CSS project, it is incredibly easy to tweak using AI IDEs or tools (like Cursor, Windsurf, or Copilot). If you want to change the color scheme, add a new section, or change the layout, just ask the AI to modify the style.css or index.html—it works perfectly because the logic isn't buried under layers of frameworks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What’s your take?&lt;/strong&gt; Do you prefer using established tools like JSON Resume, or do you like the "Zero-Tooling" approach of plain HTML/CSS? Let me know in the comments!&lt;/p&gt;

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