<?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: Polyform Prints</title>
    <description>The latest articles on DEV Community by Polyform Prints (@polyformprints).</description>
    <link>https://dev.to/polyformprints</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%2F3938727%2F330f46c7-75b2-4529-92d1-5bc661a1cac9.png</url>
      <title>DEV Community: Polyform Prints</title>
      <link>https://dev.to/polyformprints</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/polyformprints"/>
    <language>en</language>
    <item>
      <title>I built a 3D print pricing API on Cloudflare Workers — here's why and how</title>
      <dc:creator>Polyform Prints</dc:creator>
      <pubDate>Mon, 18 May 2026 21:33:32 +0000</pubDate>
      <link>https://dev.to/polyformprints/i-built-a-3d-print-pricing-api-on-cloudflare-workers-heres-why-and-how-140b</link>
      <guid>https://dev.to/polyformprints/i-built-a-3d-print-pricing-api-on-cloudflare-workers-heres-why-and-how-140b</guid>
      <description>&lt;p&gt;I've been trying to start a small 3D printing business on Etsy, and kept running into the same problem: pricing by gut feel. &lt;/p&gt;

&lt;p&gt;You finish a print, look at it, and pick a number that "feels right." Then at the end of the month you realise you've been working for free.&lt;/p&gt;

&lt;p&gt;So I built PolyQuote — a REST API that calculates a recommended sale price from filament type, weight, print time, and markup. It handles material cost, electricity, failure rate buffer, packaging costs, and platform fees for Etsy, eBay, and Shopify. Responses come back in GBP, USD, and EUR.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The stack:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Cloudflare Workers (compute)&lt;br&gt;
Cloudflare KV (API key storage, rate limiting, filament defaults)&lt;br&gt;
Stripe (subscription billing)&lt;br&gt;
Resend (transactional email)&lt;br&gt;
Deployed via Wrangler&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A few things I learned:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Cloudflare Workers are genuinely impressive for this use case — cold starts are essentially zero, global distribution is free, and KV is good enough for simple key-value storage at this scale. The free tier gets you surprisingly far.&lt;/p&gt;

&lt;p&gt;Currency conversion was originally hardcoded (embarrassing in retrospect). I swapped it out for live rates from the Frankfurter API, cached at the edge for an hour. One fetch call, Cloudflare handles the caching.&lt;/p&gt;

&lt;p&gt;Rate limiting without a database is simpler than I expected — just KV keys with TTLs. Not bulletproof at high scale but fine for where I am now.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's live:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Free tier: 200 calls/month, no credit card&lt;br&gt;
Maker: £5/month, 5,000 calls&lt;br&gt;
Pro: £15/month, 25,000 calls&lt;br&gt;
Public demo with no signup required&lt;/p&gt;

&lt;p&gt;If you sell 3D prints or build tools for people who do, I'd genuinely love feedback. The Postman collection is public if you want to poke around without signing up.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Landing page:&lt;/strong&gt; api.polyformprints.co.uk&lt;/p&gt;

&lt;p&gt;**Postman: **&lt;a href="https://documenter.getpostman.com/view/54931854/2sBXqRjwqj" rel="noopener noreferrer"&gt;https://documenter.getpostman.com/view/54931854/2sBXqRjwqj&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>webdev</category>
      <category>api</category>
      <category>cloudflare</category>
    </item>
  </channel>
</rss>
