cd /news/ai-products/we-spent-5-months-building-ai-featur… · home › topics › ai-products › article
[ARTICLE · art-166907] src=dev.to ↗ pub= topic=ai-products verified=true sentiment=↑ positive

We spent 5 months building AI features nobody paid for—until a user asked for 300 DPI PDFs and Watermarks

A developer behind an online fuse-bead and pixel-art pattern generator (pindouai.app) spent five months earning $0 MRR from an AI cartoonizer credit model, then shipped a 300 DPI PDF export with custom watermarks and logo headers after a craft seller said she would pay for it on the spot. The feature uses an offscreen TypeScript rendering pipeline with jsPDF, a 24px-per-bead cell density, aspect-safe bounding boxes and a diagonally tiled low-opacity watermark, and the requesting user upgraded immediately, followed by other craft sellers.

by read3 min views1 publishedNov 10, 2026

As developers, we have a bad habit: we equate technical complexity with commercial value.

If a feature involves fine-tuning prompts, WebAssembly background removal, and LAB color-space quantization on an HTML5 Canvas, we assume users will gladly pay for it. If a feature is just drawing text at a 30-degree angle and wrapping a canvas inside jsPDF, we treat it as an afterthought.

That exact mindset cost my project 5 months of zero revenue. Here is the breakdown of how we got stuck in the "cool tech, no monetization" trap, and how a single feature request for high-res PDFs and custom watermarks turned non-paying users into immediate buyers.

We built an online fuse bead (Perler/Hama) and pixel art pattern generator. Under the hood, it was a fun engineering challenge:

transform: scale() matrices. We hit 4,000+ monthly active users organically. People loved the editor.

Our monetization plan? Sell "Magic Beans" (credits) for the AI cartoonizer.

The result? Almost five months of $0 MRR from our core audience.

Why? Because hobbyists only make one or two patterns a month. Once their free credits ran out, they either uploaded pre-made pixel art (bypassing the AI completely) or just took a screenshot of the browser viewport.

Last month, a user who sells physical bead kits and digital patterns reached out. She wasn't using our AI credits at all. Instead, she spent hours every week on our canvas designing patterns by hand, exporting them, and then opening Photoshop to do three tedious things:

She told us straight up: "If you build a 300 DPI PDF export with my custom watermark and logo header built-in, I will buy it today."

Instead of exporting the visible DOM <canvas> (which is constrained by viewport zoom and device pixel ratio), we architected an isolated offscreen rendering pipeline in TypeScript (you can see it live at https://pindouai.app):

// Simplified view of our high-DPI offscreen PDF pipeline
export async function exportPatternToPdf(options: ExportPdfOptions): Promise<void> {
  const { config, pageSize = "a4", watermark } = options;

  // Force a higher cell density (24px per bead cell) specifically for 300 DPI print crispness
  const canvas = await generateExportCanvasAsync({
    ...options,
    cellSize: 24,
  });

  const orientation = config.effW > config.effH ? "landscape" : "portrait";
  const pdf = new jsPDF({
    orientation,
    unit: "mm",
    format: pageSize === "letter" ? "letter" : "a4",
    compress: true,
  });

  // Calculate aspect-ratio-safe bounding box with 10mm physical print margins
  const pageWidth = pdf.internal.pageSize.getWidth();
  const pageHeight = pdf.internal.pageSize.getHeight();
  // ... render composite sheet (Header + Grid + Diagonal Tiled Watermark + BOM Legend)
}

We added four specific capabilities to this offscreen compositor:

HTMLImageElement , calculates aspect-safe bounding boxes, and renders their shop name and social links at the top of the sheet.ctx.rotate(-Math.PI / 6)) and loops over the pattern bounds to stamp a low-opacity copyright string right across the bead coordinates. The moment we shipped this and notified the user, she upgraded immediately. Other craft sellers followed right behind her.

For five months, we tried to charge people for an AI wrapper. It took one conversation with a real seller to realize that prosumers pay for IP protection and print-ready deliverables.

If your side project has traffic but zero sales, stop tweaking your AI prompts. Look at how your heaviest users export data out of your app, and automate the Photoshop steps they are forced to do right after leaving your tab.

── more in #ai-products 4 stories · sorted by recency
── more on @pindouai.app 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/we-spent-5-months-bu…] indexed:0 read:3min 2026-11-10 · —