PrintSend
Project 7 Launched: Day 12 April 20, 2025

PrintSend

Upload PDFs to be printed and mailed to your address without the hassle of owning a printer

printing mail pdf service utility

Project Timeline

14.6h

Work Sessions

Day 13 April 21, 2025
Audio journalling about printsend.app
29m
Day 12 April 20, 2025
UIUX + functionality printsend.app
6h 59m
UIUX + functionality printsend.app
2h 4m
Setting up the project, CICD, domain, email etc printsend.app
2h 32m
Day 7 April 15, 2025
Researching print on demand services, planning out a service with physical post printsend.app
2h 30m

Launch Day

Day 12
View Launch Day Details

Backstory

I saw a viral post on Hacker News from someone who made bieterpost.nl. They made something so simple and to the point that I thought there's a lot more space for businesses doing this. Their project focused on sending physical letters to other people, but they found people were using it to print things and send to themselves. I thought that was such a brilliant idea that I wanted to build a project specifically targeting people who want to print stuff for themselves. This isn't a novel idea - companies have been doing this for decades, and the first page of Google is full of established businesses, so SEO will be tough. But I had my boilerplate project set up with CI/CD, so I could start hacking at it quickly.

The Challenge

The challenge was creating that simple, elegant UI and integrating seamlessly the payment processing and print-on-demand backend. The print-on-demand backend proved to be the most difficult part - the APIs are either inconsistent or undocumented, with restrictions the companies don't tell you about, like file size limitations, and the errors they pass are nondescriptive. At launch on day 12, I still hadn't managed to send a valid API request despite trying two companies with supposedly the best APIs. The user experience flow was also challenging - I'm thinking about switching from sending login links to TOTP codes that are valid for 10 minutes because link copying is unfriendly, especially on mobile.

Features

  • Upload a PDF
  • Input your address
  • Get a price estimate including service fee
  • Pay with Apple Pay on Apple devices or card everywhere else
  • Save your address for future use
  • Custom email inbox integration (planned)
  • Telegram bot integration (planned)
  • Generates compliant first page with address for the PDF
  • Shows limitations for each country (e.g., max 16 pages for Netherlands)

Technical Implementation

Built on my standard stack with Python Flask and my custom CI/CD pipeline on GitHub. I used Hetzner servers for the first time, and they're amazing - for the price cheaper than DigitalOcean's cheapest option, you get a midrange server with 8x more memory (4GB vs 512MB), 2 vCPUs instead of 1, and 40GB disk space instead of 10GB. I'm using various libraries for working with PDF files and print-on-demand services, though I'm still deciding which print-on-demand company to integrate with.

Monetization

Service fee set as a percentage of the final print and delivery price

What I Learned

I learned that sometimes things you think are easy might not be for unexpected reasons. I thought API integration with print-on-demand companies would be a breeze - they'd have a Python SDK, you send one request, boom, done. But it's not that simple, and I spent way too much time on it. I also learned that shopping for better server providers is worth it because it scales. For one server, paying €1 extra doesn't matter much, but for 30 servers that's €300 per year - not nothing. I'll probably migrate all my servers from DigitalOcean to Hetzner.

Final Thoughts

I'm getting into documenting a lot more. Audio is a great medium for documentation - I still edit what the AI gathers from the transcript, but overall it's a good way to get thoughts out of your head. I'm going to build some convenience features for monologues to make that process even nicer.