A Look at Media Storage for Pagecord Blogs

Pagecord Premium customers are able to upload images to posts and pages, but free customers can't do this. Sometimes this surprises people because they're used to "free" apps like Instagram or Substack where image and video storage is seemingly unbounded, but storing data costs money and that has to come from somewhere. Instagram bombards you with ads, Substack takes a cut from monetised blogs. Pagecord is independent, bootstrapped and already run on a tight budget and is (barely) profitable only because of the kind people who subscribe.

Offering free image storage for all is something I could try, and it might help get more signups, but it could quickly erode profits, reduce paying customer conversion, and it would almost certainly increase spammy blogs and dodgy content. I think the current model is fair and sustainable, plus free customers can always host images elsewhere. I like how it works right now.

Is Pagecord storage unbounded?

Technically speaking, right now there is no upper bound on how much image/video/audio storage you can put on your blog. However, this is something that will need to be formalised as the number of images on people's blogs grows.

Media storage (Cloudflare R2 in EU) is good value right now at $0.18/GB per year. There's also an "image transformation" cost but this is low per-blog right now. Image transformations will be invisible to most people, but when someone views a Pagecord blog, any uploaded images are optimised by the CDN and delivered at 1600x1200 (max dimensions) in the WebP format. The originals are still stored, but only optimised images are served. This makes Pagecord blogs really fast, which makes the reader experience much better and also helps with your SEO because Google and Bing take into account page load time and image optimisation. Optimised sites rank more highly!

The current storage and transformation usage doesn't eat into Pagecord's profits that much right now. All except one blog sit below 1GB of storage. Here's the top 15 as of today:

Number of Posts Media Storage In Use
285 1.38 GB
109 780 MB
139 561 MB
61 559 MB
84 528 MB
176 429 MB
405 409 MB
159 323 MB
313 323 MB
55 218 MB
217 214 MB
251 209 MB
75 175 MB
60 163 MB
232 156 MB

What's a sensible storage limit?

Looking at the cost of storage and the net income from a Pagecord Premium customer, the sensible limit seems to be around 10GB. This would cost Pagecord ~$2/year, and the vast majority of people probably won't ever get close to this.

For those people who are uploading a very large number of large photos and start to exceed 10GB, it would make sense to introduce a new plan. A Pro plan, perhaps something like 50GB for $69/year?

At current rates, even the most avid image uploaders will have years of uploading before they hit this limit, hence there being no such plan on offer right now, and no urgency to add it.

Optimise before uploading, especially video

Since the Pagecord media storage in use for all blogs is currently only 10GB, most people never really have to worry about the size of image they're uploading. Most phone photos will be around 2-5MB these days (JPEG/HEIC), so you can upload thousands before getting near to a 10GB limit.

Videos are another matter though. Most people don't upload videos to their Pagecord blogs, even though it's supported. A typical video uploaded to Pagecord is around 50MB, so 10x larger than photos on average.

With this, if you are uploading videos or large photos, you might want to consider optimising them before uploading. But personally, for photos, I don't bother.

Conclusion

Hopefully this write-up is interesting and reassuring. I want to be transparent about how I’m building Pagecord, which is why it’s open source, but also about the cost side of things. Running Pagecord isn’t free, but I’m trying hard to keep costs as low as possible while maintaining an excellent service at an affordable price, and making sure the business can pay its way.

There’s currently no hard storage limit, but I’m likely to set a soft limit at 10GB. As people approach that, I’ll look at formalising it and adding an in-app view of storage usage. As I say, though, that’s currently a few years away even for the most image-heavy blogs!

-- Olly