Offprint — Publishing infrastructure for the open web.
Offprint
Offprint
Verified

Publishing infrastructure for the open web.

Publishing infrastructure for the open web.

Offprint helps writers own their words, audience, and future with publishing infrastructure for the open web. It is built for creating a durable reader relationship and making it easier to take your audience with you if you ever move.

Screenshots
Reviews
(6)
4.8

I really appreciate the simplicity of Offprint compared to Wordpress.com, which has become obsessed with AI and I find now that WP’s themes and design editing is too overwhelming and complicated for me, even as someone who’s historically been into a lot of that kind of stuff. I think it’s got to the point now where they have become totally out of touch with bloggers, and they seem instead to be trying to just be the world’s default website maker for serious publications and other corporate websites. Offprint is so simple to use and has everything you need; aside from a few additional features that are coming. For example: imports from other blogging services, maybe an app, a more advanced editor etc. But I trust the developers that this stuff is in the works and in the meantime, it has everything a new blogger needs to get started. I’m really excited for the future of blogging on the ATmosphere. I think it’s the way forward for the internet in general. To make sure people have real control over their own data online.

Jul 7, 2026

Really good blogging service, would recommend it for those moving away from apps like medium or substack.

However, I wish that there were more customization options (a la wordpress, mainly font uploads, and creating/editing/removing parts of the website), as well as custom domain support; would be nice to have my blog live inside "writing.bunniesin.space" or similar.

May 6, 2026
View all
UpdatesView all
Standard.site Summer, on Bluesky's tabFor the rest of the summer, your first year of Offprint Pro is 25% off. That is $52/yr instead of $70/yr. Standard.site Summer deal is being ran in partnership with and funded by Bluesky (@bsky.app), they're paying for your summer of Pro. It applies automatically at checkout, no extra steps. What Pro is? Pro is the complete version of Offprint. You get a newsletter that reaches your own subscribers, a custom domain, more storage for your media, and the design tools to make your publication look like yours and not just a template. Why Bluesky is funding it? Bluesky is covering the first three months of every new annual plan. Offprint (@offprint.app), pckt.blog (@pckt.blog), and Leaflet (@leaflet.pub) are all built on the same open standard called Standard.site (@standard.site) and a healthier open social web means more writers owning their work instead of renting space on a closed platform. This is Bluesky investing in that. Feel free to read through their article here: How to claim it? Start an annual Pro plan and the discount is applied automatically at checkout. If you are already on a monthly plan, switch to yearly and you get the same first-year price. Monthly pricing is unchanged. How long it lasts? The offer runs through July 31, 2026. It is a limited run, so if Pro has been sitting in your maybe pile, this is the moment. > Own your writing, own your audience, take both anywhere.
Jun 22, 2026
Your writing, now native to BlueskyBuilding an open standard only works if others build on it too. When we started Standard.site (@standard.site) alongside the teams at Leaflet (@leaflet.pub) and Pckt.blog (@pckt.blog), that felt like a bet worth making. Today, Bluesky is officially integrating the site.standard.* lexicons. We are glad the bet paid off. A bit of history When we started building Offprint on the AT Protocol, we were not the only ones. The teams behind Leaflet and Pckt.blog were working toward the same thing independently. Each of us had arrived at similar schemas on our own, which was encouraging, but it also meant we were headed toward a fragmented ecosystem where content on one platform would be invisible to another. We got together and decided to align. Some approaches were combined, some were set aside. The result was Standard.site, a shared set of open lexicons that define what a publication is, what a document contains, and how readers connect to both. The idea was that any platform could implement it without being constrained by it. We just had to build something worth implementing. What does this mean? When you share an Offprint article on Bluesky, you will now get an enhanced link card. Not a plain URL preview. A card that shows your publication name, your icon, your article title, an estimated reading time pulled directly from the content, and themed call to action button based on your publication theme. Your publication is recognized as a publication. Your writing shows up in the feed looking like the work you put into it. This is what the protocol is supposed to feel like. Your content living in your repository, recognized natively across the network, without any extra steps on your part. What you need to know This rolls out in phases. The first phase, landing now, detects Standard.site records on shared links and uses them to render enhanced previews in the Bluesky post composer and feed. For Offprint writers, nothing changes on your end. Your publications and documents already sync to the protocol. Offprint handles the verification tags and record references automatically. Share your work the same way you always have. Under the hood For those curious about what is actually happening, here is the short version. Bluesky has added a new field called associatedRefs to their external post embed record. When you share an Offprint article, the embed includes two references: one pointing to your site.standard.document record and one pointing to your site.standard.publication record. When Bluesky hydrates that post in the feed, it fetches those records and uses them to construct the enhanced link card. { "$type": "app.bsky.embed.external", "external": { "uri": "https://yourname.offprint.app/a/your-article", "title": "Your Article Title", "associatedRefs": [ { "uri": "at://did:plc:xxx/site.standard.document/abc", "cid": "bafyrei..." }, { "uri": "at://did:plc:xxx/site.standard.publication/xyz", "cid": "bafyrei..." } ] } } Verification works through <link /> tags embedded in the page head. Bluesky fetches the URL being shared, finds the tags referencing your AT Protocol records, and confirms they match. Offprint handles all of this automatically. ☝🏽 One thing worth noting: Bluesky is not launching with live-updating link cards. The data present when a post is written is what gets rendered. It is a reasonable limitation to ship with while they work through the moderation implications. This is one of those moments where the open web actually delivers on what it promises. We are glad to have been part of building the foundation that made it possible. If you are not on Offprint yet, now is a good time.
May 28, 2026
Custom domains now work with Cloudflare and CDNsIf you use a custom domain on Offprint, SSL certificates now provision and renew correctly regardless of whether your domain is behind Cloudflare, Fastly, or any other CDN. The problem we were asking people to live with When you connected a custom domain, Offprint used Let's Encrypt to issue an SSL certificate. The way that worked was straightforward: Let's Encrypt would make an HTTP request to your domain, our server would respond with a verification file, and the certificate would be issued. This fell apart the moment anything sat between your domain and our server. Cloudflare's proxy is the most common case. With the orange cloud enabled, Let's Encrypt reached Cloudflare instead of us. The verification failed. No certificate. Our answer was to tell people to disable the proxy. That worked, but it meant giving up DDoS protection, caching, and Cloudflare's analytics. What we changed Instead of verifying certificates over HTTP, Offprint now verifies them through DNS. The difference matters because DNS resolution happens at a layer that CDNs and proxies do not touch. Here is what that looks like. When you add a custom domain, Offprint generates a unique ID for your domain. You add a single DNS record, a CNAME that points _acme-challenge.yourdomain.com to that ID on our DNS zone. When it is time to issue or renew a certificate, our server creates a temporary record on our side of that chain. Let's Encrypt follows the CNAME, finds the record, and issues the certificate. Your proxy status, CDN configuration, and firewall rules are all irrelevant to this process. The certificate just works. What this means if you already have a custom domain Your current certificate is still valid. Nothing breaks today. When it comes up for renewal in the next 60 days, the new method takes over. Your domain settings page now shows a third DNS record alongside the existing ones. Adding the _acme-challenge CNAME before your next renewal ensures a smooth transition. It takes about a minute. ⛅ If you had Cloudflare's proxy disabled because we told you to, you can re-enable it. Setting up the new ACME record If you already have a custom domain, or you are adding one for the first time, here is how to add the SSL record. Step 1: Find your DNS records in Offprint Go to your publication settings and open the custom domain section. You will see three DNS records listed. The new one is the ACME record at the bottom, a CNAME starting with _acme-challenge. Step 2: Add the CNAME in your DNS provider Log into your DNS provider (Cloudflare, Namecheap, Google Domains, or wherever you manage DNS) and add a new CNAME record. - Type: CNAME - Name: _acme-challenge.blog.yourdomain.com (some providers only need _acme-challenge as the name, without your domain appended) - Target: The value shown in your Offprint settings, something like a7x9k2m4p1n3.acme.offprint.app 💡 If you are using Cloudflare, the proxy can be enabled or disabled, up to you. This record does not receive any traffic, so it should be fine with it enabled (as it is by default). Step 3: Re-enable Cloudflare proxy (if applicable) If you previously disabled Cloudflare's proxy on your main domain CNAME (the one pointing to to.offprint.app), you can now turn it back on. The orange cloud is safe to enable. Step 4: Verify in Offprint Back in your domain settings, click the verify button. Offprint will check all three records and confirm that your domain is ready for automatic SSL provisioning. That is it. Certificates will provision and renew on their own from here. For the curious We went with DNS-01 challenges exclusively rather than keeping HTTP-01 as a fallback. A fallback would reintroduce the same problem for anyone who had not added the new record yet. One consistent method is simpler to reason about and simpler to troubleshoot. The infrastructure side was relatively clean. Our server runs Caddy, which uses CertMagic for certificate management. CertMagic already knows how to follow CNAME chains when resolving challenge domains. We added the Cloudflare DNS module, pointed it at our offprint.app DNS zone, and the rest followed from there. We also cleaned up the domain setup flow in the dashboard. The Cloudflare-specific warnings and error messages are gone. The UI now shows three DNS records: one for routing, one for ownership verification, and one for SSL. No special-case guidance for specific providers. One new DNS record, and it just works. That is how it should have been from the start.
Apr 14, 2026
Mentions

@offprint.app please, add ALT text to images. that's the only complaint I have to be honest 😮

7/3/26, 5:08 PM

The ads account does the ads. For the writing, the features, and the publications worth reading Follow us over here → @offprint.app

7/2/26, 12:05 PM