If there's anything you'd like to know about regarding Pagecord, do let me know and maybe I'll write about it, plus it's always nice to hear from people anyway.
Internet flâneur · Built Pagecord
Posts tagged with pagecord
If there's anything you'd like to know about regarding Pagecord, do let me know and maybe I'll write about it, plus it's always nice to hear from people anyway.
Choosing self-managed databases
What it actually costs to run Pagecord (March 2026)
I thought it would be interesting to document the costs of running Pagecord, the product and the business. This isn't something that many indie developers share and it's pretty interesting to me, so here's the breakdown of what it costs to keep the lights on as of March 2026 (when Hetzner's prices go up).
Note that I take no salary or dividends, and any meagre profits stay in the business so I can call on them when needed.
Service |
Details |
Monthly Cost |
|---|---|---|
Google Workspace |
Email and spreadsheets |
$9.44 |
Domain name |
At-cost from Cloudflare |
$0.87 |
Hetzner |
Server, IPs, backup etc |
$32.08 |
Amazing deployment tool for Rails apps |
$10.20 |
|
Cloudflare R2 |
Image storage, plus backup storage |
$0.68 |
Cloudflare Images |
Proxy for image optimisation |
$5.00 |
Postmark |
Inbound emails plus newsletters |
$16.50 |
Mailpace |
Transactional email |
$3.37 |
Claude Pro |
AI developer |
$24.27 |
Accountancy |
I do most of it myself but I need someone to verify the books |
$33.59 |
Virtual office |
So someone else can handle the business address and official mail etc ⊹╰(⌣ʟ⌣)╯⊹ |
$29.93 |
Total |
$165.93 |
A few more details
Pagecord lives in Hetzner, in Germany. I've found it's the most cost-effective hosting provider out there, and with Hatchbox handling custom domains (via Caddy), server config and one-click deployments, it's super-productive and I love it. I don't think it's possible to get this cost down other than buying a cheaper server which would be counter-productive.
Email is split across two providers which is a historic anomaly. I used to use Postmark for everything, but I found delivery times to be unstable so I switched to Mailpace for all transactional emails which has been much better. Postmark still handles inbound emails (it just works) as well as sending all the newsletters via their bulk sending feature which is very good. At some point I'll probably move everything to Resend, but their inbound email functionality isn't as slick as Postmark yet (early days) and, frankly, what I have right now works great so there's little incentive to move. It's actually handy having two providers since it gives me some redundancy should I need it.
Cloudflare R2 is where all the uploaded images, videos and other attachments live. It's great and better value than AWS S3. The data is all in the EU location. I use Cloudflare Images as an image proxy which I think is amazing. It resizes all the images from Pagecord blogs to an optimal size and serves them in webp format from edge locations across the world. That it only costs me $5/mo (for now, at least) blows my mind.
The accountancy and virtual office costs are due to setting up a UK limited company for Pagecord recently. I was increasingly uncomfortable running it as a sole trader and being liable for any trouble bad actors might be able to cause. More than happy with the increased cost for the peace of mind it brings.
What isn't on this list
Pagecord uses Sentry (error tracking) on the free plan, plus AppSignal (for observability) which doesn't cost me anything right now. Pagecord also uses AWS Cloudfront for caching Rails' static assets. I could probably move this to Cloudflare but what I have just works and costs less than $0.01/mo so I can't be bothered.
The bottom line
Someone emailed me today and complained about the upcoming price increase: "I don't understand how you can have so much costs for just hosting texts and some pictures?". Well, hopefully this post clears that up.
I think $165/month to host 700+ blogs (large portion being on free accounts btw – plz subscribe!) on a fast, reliable (🤞), monitored and backed-up blogging platform for a registered UK company is pretty reasonable. I can't see how I could reduce these costs in any meaningful way right now. It's about as lean as it gets without being dangerously underweight.
This post might not age well since costs change all the time, especially for a growing business, but hopefully it gives you some useful insight into how things run behind the scenes as of right now.
Styling a Pagecord blog like the Bear Blog Archie theme
I come across posts hosted on Bear Blog quite often and many of them use the Archie theme. I wondered whether Pagecord could be styled in this way, and it turns out it can fairly easily.
A few more tweaks would be needed to complete it (I didn't look at styling the email subscription box for example – I just turned it off), but that's all doable if you wanted. My intention here isn't to steal Bear's thunder, but if someone was migrating and wanted to keep the same vibe, then now I know they definitely can.
I'd like to add a template theme gallery at some point (basically just pre-cooked custom CSS), but until then here's the CSS if you wanted a similar style.
/* Use the Roboto Mono font */
@import url('https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@100;200;300;400;500;600;700;800;900&display=swap');
body {
font-family: "Roboto Mono", monospace;
}
/* Use flex to allow header block order to be rearranged */
header {
display: flex;
flex-direction: column;
}
/* Move nav to the second position (after the title) */
header > nav {
order: 2;
justify-content: flex-start;
margin-bottom: 1.75em;
gap: 1rem;
}
/* Ensure the titlebar div appears first */
header > .titlebar {
order: 1;
}
/* Assign orders to subsequent elements to keep them in place */
header > .bio {
order: 3;
}
header > .email-subscriber-form {
order: 4;
}
header > hr {
order: 5;
}
/* give nav links and article body links an accent underline */
nav a, .lexxy-content a {
color: var(--lexxy-color-ink);
border-bottom: 3px solid var(--color-accent);
text-decoration: none;
font-weight: normal;
}
/* dotted lines under header and above footer */
header hr {
border-top: 3px dotted #232333;
}
footer.blog-footer {
border-top: 3px dotted #232333;
}
I've been experimenting with Ubicloud this morning as a new home for the Pagecord database. It's pretty neat – they support Hetzner (which is where the Pagecord app lives) and offer the usual benefits of managed databases, but for much less cost than the main cloud providers charge.
Unfortunately Ubicloud don't support Hetzner's Nuremberg data centre, only Falkenstein. I opted for Nuremberg a while back, so this means there's a bit more jiggery-pokery to migrate the app and the database to a new DC whereas it would have been simpler if the app was already in Falkenstein. There's a further complication with a number of blogs on custom domains because floating IPs in Hetzner are not transportable across DCs, so these customers will need to update their DNS to point to a new IP, or use the (far better) CNAME approach. That can be deferred though because I can configure the Nuremberg app instance to connect to the Falkenstein database. It just means these blogs will feel a little less snappy until the DNS gets switched over (I tested this today – most people probably wouldn't notice).
I'll probably do this in a couple of weeks. I'll announce it on the Pagecord blog beforehand (there will be a small 2-3 min outage) and also contact custom domain owners who will be affected. If anyone reading has used Ubicloud, I'd be interested to hear about your experience.
There's a Pagecord ad in the latest Good Internet magazine! I created this in a hurry months ago so the feature list is missing loads of new stuff, but hopefully a few people will spot it and sign up.
It's worth checking out the magazine, it has a great philosophy.
Good Internet is a volunteer-run, not-for-profit print and digital biannual magazine for personal website owners and those interested in using the internet as a means of self-expression, art, and recreation.
Pagecord Product Hunt re-launch
You may have seen this on the official Pagecord blog, but if not… Pagecord is relaunching on Product Hunt today!
https://www.producthunt.com/products/pagecord
If you’re willing and able, I’d really appreciate an upvote and a comment.
You can do multiple launches on Product Hunt as long as you leave a good amount of time between them, and (presumably) if your product has evolved a lot since the last one. Pagecord is SO much better than it was a year ago (the previous launch) so I’m hoping it garners a bit more attention today.
Thank you! 🙏
Proper sticky toolbars on iOS when the keyboard is visible
The Pagecord post editor works pretty well on iOS, but there's been a long-standing issue with the toolbar. The toolbar is "sticky" so if you're editing a long post, the toolbar should pin itself at the top as the page scrolls. This basic CSS works great on a laptop web browser, but on iOS it fails miserably when the virtual keyboard is visible.
I got Gemini to figure out a way to make this work today via a Stimulus controller that prevents the toolbar from being pushed off-screen. It's hacky, and there's some jitter when scrolling, but the benefits of actually being able to see buttons far outweighs this. I've included a video below. It's behind a feature toggle for now, but I can enable it for you if you'd like to try it.
I don't have an Android device so I'm not sure if there's a similar problem that needs to be fixed there (Gemini says not) but do let me know if there is. If you know of a better way to solve this problem, I'm all ears!
Thoughts on Pagecord pricing in 2026
A few paying customers have suggested I charge a bit more for Pagecord. I'm now considering upping the price in the next few weeks, for new customers, to $39/year. Existing customers will stay on their original plan unless they actually want to pay a bit more. Unlikely, but I'll happy increase your renewal price! 😅
There are a few reasons why I'd like to do this:
- The Pagecord price (currently $29/year) includes sales tax wherever you're based. Many products add this on at checkout but I find that annoying as a customer myself, so I want the price on the website to reflect what you actually pay. No surprises. The downside of this is that I take a ~20% hit on the list price, plus another 5% for Paddle processing fees. This means I actually receive $21.75 a year for each full price subscription. World's smallest violin, I know, but it's actually a meaningful difference.
- The current price is one of the (if not the) cheapest on the market, and there's an argument for it being too cheap for all the features. Most blogging apps of Pagecord's feature depth are $5/mo or $49+/year, and so $3.25 a month for an all-you-can-eat blogging platform feels good value to me.
- I'm incorporating a Limited Company for Pagecord now it's sustainable so my annual costs are going to increase quite a bit as a result (higher tax and accounting bills, insurance, virtual office etc). Since existing customers are being grandfathered, I have to take the hit here but Pagecord has some growth so I'm confident it will be fine in time.
- I now have costs for AI for both my own coding agents, as well as routine spam blog detection. It's pricey and eats into my meagre margins, but it really does make life as an indie dev 10x better.
- I plan to add a bit more resilience to Pagecord's server stack which will increase ongoing costs and deplete margins.
If you're a customer (or thinking about being a customer) I'd value your thoughts on this, positive or negative! Bear in mind that I receive no personal income from Pagecord (yet), and it is only just profitable. A price rise will mainly offset the new costs, I don't expect to make a personal profit until I reach 300+ paying customers (some way to go yet!).
I'd really like to write more blog posts about the Pagecord stack, my approach to dev, and other "internal" things, so please also let me know if there's something you'd like me to write about.
You can easily let me know by clicking the email reply link below – it would be great to hear from you.
Tables are coming to Pagecord
I noticed on GitHub that Zoltán Hosszú (designer at 37signals) opened a pull request that introduces support for tables to the Lexxy editor. This means table support for Pagecord could happen soon! 🤩
After years of living with the mothballed Trix, it feels liberating for us Rails developers to be treated to such a proper, rich and extensible editor as Lexxy. It’s a true open source gift, including Lexical from Meta which is the underlying foundation of Lexxy.
My weak brain struggles with comprehending complex JavaScript libraries like this, so I’m immensely thankful for the people (and companies who support them) who put in the hard yards that make my life immensely easier, and my product so much better.
After Christmas has been and gone I’ll finally be switching everyone over to Lexxy in anticipation of this (and, all being well, image galleries!).
I've just enabled a new feature on all premium Pagecord accounts that generates an Open Graph image for all posts that don't have images in them (if a blog post has an image, the first image in the post is used as the open graph image). I'm not enabling it for everyone yet because, (A) I want to test it for a while to make sure it's robust, and (B) maybe it should only be for premium customers since there is a (minuscule, admittedly) processing cost over time.
Let me know what you think. All being well, this post should have such an OG image :)