<?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: Athin</title>
    <description>The latest articles on Forem by Athin (@athingeo).</description>
    <link>https://forem.com/athingeo</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%2F3934244%2Fd8c33d17-8caa-4338-8e2b-fbd670c5ba0c.png</url>
      <title>Forem: Athin</title>
      <link>https://forem.com/athingeo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/athingeo"/>
    <language>en</language>
    <item>
      <title>I built a one-file proposal generator for freelancers — no server, no subscription, no BS</title>
      <dc:creator>Athin</dc:creator>
      <pubDate>Sat, 16 May 2026 05:26:30 +0000</pubDate>
      <link>https://forem.com/athingeo/i-built-a-one-file-proposal-generator-for-freelancers-no-server-no-subscription-no-bs-49i7</link>
      <guid>https://forem.com/athingeo/i-built-a-one-file-proposal-generator-for-freelancers-no-server-no-subscription-no-bs-49i7</guid>
      <description>&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;Photographer friends kept paying $40–50/month for HoneyBook and Dubsado. When I asked what they actually used, the answer was almost always the same: proposals. Maybe contracts. &lt;br&gt;
The CRM, booking pages, and workflow automations? Untouched.&lt;/p&gt;

&lt;p&gt;That felt like a real inefficiency. Not everyone needs a full business platform. Some people just need to send a professional proposal and get paid.&lt;/p&gt;

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

&lt;p&gt;A completely self-contained HTML file. One file. You open it in any browser, fill in your details, click "export," and get a 3-page PDF proposal—cover page, packages &amp;amp; pricing, and terms with a signature field.&lt;/p&gt;

&lt;p&gt;No server. No account. No data sent anywhere. Everything stays on your machine via localStorage.&lt;/p&gt;

&lt;p&gt;Features that ended up mattering more than I expected:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Logo upload&lt;/strong&gt; — photographers care a lot about branding&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Drawn or typed signature&lt;/strong&gt;—surprisingly, the canvas-drawn sig felt more "real" to users&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;7 currencies&lt;/strong&gt; — because not every photographer is billing in USD&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Email template generator&lt;/strong&gt;—the proposal itself is step 1; following up is step 2&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Greek version&lt;/strong&gt; — I'm based in Greece, so I built a localized version with an embedded Greek font (FreeSans) for correct PDF rendering. Turns out very few tools bother with proper Greek typesetting.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The architecture decision I'm glad I made early
&lt;/h2&gt;

&lt;p&gt;The biggest risk with canvas-based image handling is resolution loss. If you resize an image on the canvas and then export from that canvas, you lose quality. I side-stepped this by keeping resize as preview-only—all crop coordinates map back mathematically to the original pixel dimensions at export, always drawing from the original data URL. 300 DPI output stays&lt;br&gt;
300 DPI.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I haven't solved yet: distribution
&lt;/h2&gt;

&lt;p&gt;The tool is live on Gumroad ($29 one-time). The code is done. The thing I'm genuinely uncertain about is whether freelancers will find it, trust it, and pay for it—when a "free Google Docs template" is always one search away.&lt;/p&gt;

&lt;p&gt;If you're a freelancer who sends proposals, I'd love to give you a free copy in exchange for 20 minutes of honest feedback. Not a review, not a testimonial — just "this confused me" or "this is missing."&lt;/p&gt;

&lt;p&gt;Drop a comment or reach out directly.&lt;/p&gt;

&lt;p&gt;Live listing: athingeo.gumroad.com/l/proposal-builder&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>webdev</category>
      <category>freelance</category>
      <category>buildinpublic</category>
    </item>
  </channel>
</rss>
