<?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: Belkacem Halim</title>
    <description>The latest articles on DEV Community by Belkacem Halim (@qlf296).</description>
    <link>https://dev.to/qlf296</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%2F4020087%2F50f89271-cd79-4563-956b-a52d1a14dd95.jpeg</url>
      <title>DEV Community: Belkacem Halim</title>
      <link>https://dev.to/qlf296</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/qlf296"/>
    <language>en</language>
    <item>
      <title>Why I built a tool with 0 frameworks, 0 backend, and why it's better for your data privacy</title>
      <dc:creator>Belkacem Halim</dc:creator>
      <pubDate>Fri, 10 Jul 2026 10:25:33 +0000</pubDate>
      <link>https://dev.to/qlf296/why-i-built-a-tool-with-0-frameworks-0-backend-and-why-its-better-for-your-data-privacy-1pfk</link>
      <guid>https://dev.to/qlf296/why-i-built-a-tool-with-0-frameworks-0-backend-and-why-its-better-for-your-data-privacy-1pfk</guid>
      <description>&lt;p&gt;Every modern side-project seems to follow the same blueprint: Spin up a massive Next.js repo, configure a complex database, hook up authentication, and force users to create an account just to generate a simple file.&lt;/p&gt;

&lt;p&gt;I got tired of this bloatware culture. Especially for something as sensitive as a resume.&lt;/p&gt;

&lt;p&gt;When you build a CV on standard online builders, your personal details, email, phone number, and work history are stored on a third-party database. Often, you finish typing everything only to hit a paywall right before downloading your PDF.&lt;/p&gt;

&lt;p&gt;I wanted to fix both the developer bloat and the user experience. So I built forgcv.com.&lt;/p&gt;

&lt;p&gt;The Minimalist Stack&lt;br&gt;
I challenged myself to keep the code footprint as close to zero as possible. No frameworks, no heavy dependencies:&lt;/p&gt;

&lt;p&gt;Frontend: Vanilla JavaScript &amp;amp; Tailwind CSS (for fast, lightweight utility styling).&lt;/p&gt;

&lt;p&gt;Backend: Absolute zero. There is no database.&lt;/p&gt;

&lt;p&gt;Privacy: 100% Client-Side via LocalStorage. Your personal details stay directly inside your own browser. I don't own, track, or look at your data.&lt;/p&gt;

&lt;p&gt;Rendering: Clean HTML layout structures designed to be completely lightning-fast and structurally optimized for parsing systems (ATS).&lt;/p&gt;

&lt;p&gt;Here is a quick 30-second workflow video showing the engine in action:&lt;/p&gt;

&lt;p&gt;[INSÈRE TA VIDÉO ICI OU METS UN LIEN VERS TON POST X / YOUTUBE]&lt;/p&gt;

&lt;p&gt;Why Deleting Features Was the Best Feature&lt;br&gt;
The baseline instinct for an app like this is to give infinite customization—color wheels, custom fonts, multi-column dragging layouts.&lt;/p&gt;

&lt;p&gt;But looking at recruitment tracking data, too much layout freedom actually causes users to build unreadable resumes that get rejected by automated filters.&lt;/p&gt;

&lt;p&gt;By locking down the grid, standardizing the vertical axes, and only offering 6 optimized typography layouts, the tool handles the architectural guardrails. The user just focuses on writing their achievements. It decouples content creation from layout rendering.&lt;/p&gt;

&lt;p&gt;Check it out&lt;br&gt;
The tool is completely live, open, and free to use. No ads, no hidden credit card screens.&lt;/p&gt;

&lt;p&gt;Live App: forgcv.com&lt;/p&gt;

&lt;p&gt;I'd love to hear your thoughts, especially from other developers here: Do you still prefer picking a framework (React/Vue/Next) by default for simple utilities, or do you still see the power in pure Vanilla JS execution? Let's discuss in the comments below!&lt;br&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvu1glkv6hca1x60fu6o3.jpg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvu1glkv6hca1x60fu6o3.jpg" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Why I built a CV maker with 0 dependencies, 0 backend, and 0 signups published: true</title>
      <dc:creator>Belkacem Halim</dc:creator>
      <pubDate>Thu, 09 Jul 2026 17:55:32 +0000</pubDate>
      <link>https://dev.to/qlf296/why-i-built-a-cv-maker-with-0-dependencies-0-backend-and-0-signups-published-true-4l3k</link>
      <guid>https://dev.to/qlf296/why-i-built-a-cv-maker-with-0-dependencies-0-backend-and-0-signups-published-true-4l3k</guid>
      <description>&lt;p&gt;The online resume builder market is fundamentally broken. You spend an hour carefully crafting your experience, adjusting the margins, and tailoring your bullet points. You click "Export"... and BOOM. A hidden paywall pops up asking for $19.99/month.&lt;/p&gt;

&lt;p&gt;As an Operations Manager and developer, I absolutely hate useless friction. So I spent my nights engineering a solution that respects users.&lt;/p&gt;

&lt;p&gt;I built &lt;em&gt;ForgCV&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;-The Philosophy&lt;br&gt;
&lt;em&gt;Zero Signups:&lt;/em&gt; No accounts, no email verification, no onboarding wheels.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;100% Privacy-first:&lt;/em&gt; No database. Your data never leaves your browser and stays completely local (LocalStorage).&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Pure Performance:&lt;/em&gt; No React, no Vue, no heavy framework. Just Vanilla JS and Tailwind CSS. It loads in under a second.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Technical Challenge: Pixel-Perfect PDFs&lt;br&gt;
One of the biggest hurdles was generating a clean, ATS-optimized PDF directly on the client side without a backend server. Getting a multi-language layout (supporting 8 languages) to render beautifully with custom print margins took weeks of tuning. &lt;/p&gt;

&lt;p&gt;I relied heavily on clean, semantic HTML structure so automated application tracking systems (ATS) can parse the text perfectly.&lt;/p&gt;

&lt;p&gt;The tool is live, 100% free, and open-source:&lt;br&gt;
👉 &lt;a href="https://forgcv.com" rel="noopener noreferrer"&gt;https://forgcv.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'd love to hear your thoughts on the architecture! How do you usually handle heavy client-side document generation? &lt;/p&gt;

&lt;p&gt;Drop your feedback below! &lt;br&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl0g81vk5lff9bys7slan.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl0g81vk5lff9bys7slan.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>showdev</category>
      <category>javascript</category>
      <category>productivity</category>
    </item>
    <item>
      <title>I built a free CV builder with no signup – here’s what I learned</title>
      <dc:creator>Belkacem Halim</dc:creator>
      <pubDate>Wed, 08 Jul 2026 18:33:57 +0000</pubDate>
      <link>https://dev.to/qlf296/i-built-a-free-cv-builder-with-no-signup-heres-what-i-learned-2f8n</link>
      <guid>https://dev.to/qlf296/i-built-a-free-cv-builder-with-no-signup-heres-what-i-learned-2f8n</guid>
      <description>&lt;h1&gt;
  
  
  I built a free CV builder with no signup – here’s what I learned
&lt;/h1&gt;

&lt;p&gt;Creating a CV online is often more complicated than it should be.&lt;/p&gt;

&lt;p&gt;Most tools require signup, limit features, or push users into paid plans before they can even download a basic resume.&lt;/p&gt;

&lt;p&gt;I wanted to change that.&lt;/p&gt;

&lt;h2&gt;
  
  
  The idea
&lt;/h2&gt;

&lt;p&gt;I built a simple CV builder that lets anyone:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;create a resume instantly
&lt;/li&gt;
&lt;li&gt;download it as PDF
&lt;/li&gt;
&lt;li&gt;without creating an account
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;a href="https://forgcv.com" rel="noopener noreferrer"&gt;https://forgcv.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The goal was to remove friction completely.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why no signup?
&lt;/h2&gt;

&lt;p&gt;I noticed something simple:&lt;/p&gt;

&lt;p&gt;For quick tasks like creating a CV, users don’t want to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;create accounts
&lt;/li&gt;
&lt;li&gt;verify emails
&lt;/li&gt;
&lt;li&gt;remember passwords
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They just want to get the job done.&lt;/p&gt;

&lt;p&gt;So I removed that step entirely.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I focused on
&lt;/h2&gt;

&lt;p&gt;Instead of building a complex platform, I focused on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;speed
&lt;/li&gt;
&lt;li&gt;simplicity
&lt;/li&gt;
&lt;li&gt;mobile usability
&lt;/li&gt;
&lt;li&gt;instant PDF generation
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The experience is:&lt;/p&gt;

&lt;p&gt;open → fill → download → done&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges
&lt;/h2&gt;

&lt;p&gt;One of the biggest challenges was generating a clean and consistent PDF across devices.&lt;/p&gt;

&lt;p&gt;Another was keeping the UI simple without limiting usability.&lt;/p&gt;

&lt;p&gt;It’s very easy to overbuild — I tried not to.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Simplicity is harder than complexity
&lt;/li&gt;
&lt;li&gt;Removing friction improves user experience
&lt;/li&gt;
&lt;li&gt;Users value speed more than features
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;I’m currently improving the product and exploring:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;better templates
&lt;/li&gt;
&lt;li&gt;multi-language support
&lt;/li&gt;
&lt;li&gt;UX improvements
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you try it, I’d really appreciate your feedback.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://forgcv.com" rel="noopener noreferrer"&gt;https://forgcv.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>showdev</category>
      <category>sideprojects</category>
      <category>ux</category>
    </item>
    <item>
      <title>I built a free CV builder in vanilla JS — no frameworks, no backend</title>
      <dc:creator>Belkacem Halim</dc:creator>
      <pubDate>Tue, 07 Jul 2026 19:10:05 +0000</pubDate>
      <link>https://dev.to/qlf296/i-built-a-free-cv-builder-in-vanilla-js-no-frameworks-no-backend-1772</link>
      <guid>https://dev.to/qlf296/i-built-a-free-cv-builder-in-vanilla-js-no-frameworks-no-backend-1772</guid>
      <description>&lt;p&gt;I spent the last few months building ForgCV — a free CV and cover letter &lt;br&gt;
builder that runs entirely in the browser.&lt;/p&gt;

&lt;p&gt;No React, no Vue, no npm. Pure HTML/CSS/JS.&lt;/p&gt;

&lt;p&gt;Why vanilla JS?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Loads in under 1 second&lt;/li&gt;
&lt;li&gt;Zero dependencies to break&lt;/li&gt;
&lt;li&gt;Works on any device&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The hardest part wasn't the tech — it was the PDF generation. &lt;br&gt;
jsPDF works, but getting pixel-perfect output from HTML took weeks of tuning.&lt;/p&gt;

&lt;p&gt;The product: forgcv.com&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;6 ATS templates&lt;/li&gt;
&lt;li&gt;Cover letter generator (8 languages)
&lt;/li&gt;
&lt;li&gt;Country guides (France, Germany, UK, Netherlands...)&lt;/li&gt;
&lt;li&gt;Zero data collected&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Happy to answer questions about the architecture.&lt;/p&gt;

</description>
      <category>career</category>
      <category>javascript</category>
      <category>showdev</category>
      <category>sideprojects</category>
    </item>
  </channel>
</rss>
