<?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: techinpanko</title>
    <description>The latest articles on DEV Community by techinpanko (@techinpanko).</description>
    <link>https://dev.to/techinpanko</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%2F4111665%2F4dc47800-6731-4136-bcc9-b27bdfd104c3.png</url>
      <title>DEV Community: techinpanko</title>
      <link>https://dev.to/techinpanko</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/techinpanko"/>
    <language>en</language>
    <item>
      <title>i made a dumb little freelance invoice spreadsheet because i kept losing receipts</title>
      <dc:creator>techinpanko</dc:creator>
      <pubDate>Sat, 05 Sep 2026 22:53:54 +0000</pubDate>
      <link>https://dev.to/techinpanko/i-made-a-dumb-little-freelance-invoice-spreadsheet-because-i-kept-losing-receipts-1ojf</link>
      <guid>https://dev.to/techinpanko/i-made-a-dumb-little-freelance-invoice-spreadsheet-because-i-kept-losing-receipts-1ojf</guid>
      <description>&lt;p&gt;i kept making freelance invoices in blank docs and then wondering where the receipts went.&lt;/p&gt;

&lt;p&gt;not my finest system.&lt;/p&gt;

&lt;p&gt;so i made a dumb little spreadsheet to keep the boring bits in one place:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;invoices, without starting from a totally blank page&lt;/li&gt;
&lt;li&gt;expenses, so receipts have somewhere to live&lt;/li&gt;
&lt;li&gt;a rough tax set-aside view (not tax advice, obviously)&lt;/li&gt;
&lt;li&gt;a basic client list&lt;/li&gt;
&lt;li&gt;a small dashboard so i can see what’s going on without opening 14 tabs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;it works in both Excel and Google Sheets. nothing fancy. no app to learn. just cells, formulas, and fewer tiny admin fires.&lt;/p&gt;

&lt;p&gt;if you’re new to freelancing and want to try the smallest version, i put out a free invoice-only sample:&lt;br&gt;
&lt;a href="https://payhip.com/b/A4tQU" rel="noopener noreferrer"&gt;https://payhip.com/b/A4tQU&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;and if you want the full invoice + expenses + clients + dashboard pack, it’s $9:&lt;br&gt;
&lt;a href="https://payhip.com/b/ROHw3" rel="noopener noreferrer"&gt;https://payhip.com/b/ROHw3&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;made by Hatchery Records. hope it saves somebody else from my receipt-hoarding era.&lt;/p&gt;

</description>
      <category>freelance</category>
      <category>productivity</category>
      <category>spreadsheet</category>
    </item>
    <item>
      <title>i wrote down ~100 public saas pricing pages so i'd stop guessing</title>
      <dc:creator>techinpanko</dc:creator>
      <pubDate>Sat, 05 Sep 2026 21:55:39 +0000</pubDate>
      <link>https://dev.to/techinpanko/i-wrote-down-100-public-saas-pricing-pages-so-id-stop-guessing-22k5</link>
      <guid>https://dev.to/techinpanko/i-wrote-down-100-public-saas-pricing-pages-so-id-stop-guessing-22k5</guid>
      <description>&lt;p&gt;I kept pricing off gut instinct + one competitor for way too long.&lt;/p&gt;

&lt;p&gt;You know the move. competitor is $29 so you're $19. or you're $49 because "premium." neither is a strategy. it's just… anchoring with extra steps, so i did something kind of dumb and kind of useful: opened a bunch of public pricing pages and wrote them down. analytics tools, email tools, form builders, newsletter stuff, hosting, that kind of indie/bootstrappy SaaS. no login walls. if i couldn't see a number, i didn't invent one.&lt;/p&gt;

&lt;p&gt;Sticker prices were less useful than noticing the shape:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;where free cuts off&lt;/li&gt;
&lt;li&gt;what the mid tier is actually selling (usually "remove friction," not "more features")&lt;/li&gt;
&lt;li&gt;whether the unit is seats, usage, projects, subscribers, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;copying one competitor's number skips all of that.&lt;/p&gt;

&lt;h2&gt;
  
  
  if you want the sheet
&lt;/h2&gt;

&lt;p&gt;I packaged it as an excel workbook (pricing tab + a patterns tab + a blank experiments sheet). yellow/uncertain cells mean i refused to make a number up.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;free 12-row sample: &lt;a href="https://payhip.com/b/0Ubzu" rel="noopener noreferrer"&gt;https://payhip.com/b/0Ubzu&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;full ~100 comps: &lt;a href="https://payhip.com/b/l72jY" rel="noopener noreferrer"&gt;https://payhip.com/b/l72jY&lt;/a&gt; ($19)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;otherwise curious how people here actually did comps when they first shipped. interviews? gut? one rival's page? something else?&lt;br&gt;
ended up with ~100 rows in a spreadsheet. product, category, url, model (flat / seat / usage / freemium+paid / whatever), entry/mid/top when it was on the page, free tier y/n, annual discount if obvious, a short note, date checked.&lt;/p&gt;

&lt;h2&gt;
  
  
  what got boring after enough of them
&lt;/h2&gt;

&lt;p&gt;some of it stops being interesting once you've seen it twenty times:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;usable free tiers that do one real job, then you pay to remove branding / raise limits / unlock collab. not the "7-day demo of everything" free.&lt;/li&gt;
&lt;li&gt;annual is weirdly consistent. like, ~two months free / ~15–20% off shows up a lot.&lt;/li&gt;
&lt;li&gt;a ton of indie entry prices live in this unglamorous $9–25 band. not always, but enough that "$79 starter" starts looking like a choice, not a default.&lt;/li&gt;
&lt;li&gt;not everything is per-seat. flat-by-project / flat-by-workspace shows up more than i expected. i wasn't really looking for that at first.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;none of that is a law. it's just what kept repeating on public pages.&lt;/p&gt;

</description>
      <category>saas</category>
      <category>startup</category>
      <category>buildinpublic</category>
      <category>pricing</category>
    </item>
  </channel>
</rss>
