Custom domains
A paid plan can serve your blog from a domain you own, at its root:
https://your-domain.example/ instead of https://you.ortszeit.app/
Same blog, same posts, same routes — the trip pages, /archive/, /map/,
/feed/ and the rest all appear under your domain. One custom domain per blog.
Set it up
1. Point DNS at us.
For a subdomain like travel.your-domain.example, a CNAME is all it takes:
travel.your-domain.example. CNAME ortszeit.app.
For a bare domain (your-domain.example with no subdomain), DNS does not allow
a CNAME at the root. Use the A and AAAA records instead, or your
provider’s flattening record if it has one — some call it ALIAS, some call it
ANAME. The current addresses are shown on the domain page in the editor.
2. Enter the domain in the editor, under the blog’s settings.
3. Wait for the first request. The certificate is issued automatically, on the first visit to the new name, from Let’s Encrypt. There is nothing to upload, nothing to renew and nothing to pay for.
A certificate is only issued once the domain is entered on a blog with an active paid plan. Until then the name is refused — which is what stops anyone who points a DNS record at us from minting certificates on our account.
Once it is live
- Your domain becomes the blog’s canonical address. The
<link rel="canonical">on every page points at it, so search engines credit your domain rather than the subdomain. - The
<you>.ortszeit.appaddress keeps working. - Images continue to be served from
img.ortszeit.app. That is deliberate: one image host for the whole platform is what keeps the running cost of a photo-heavy product from scaling with the number of customers.
If a paid plan lapses
The policy, in full:
- Your custom domain keeps serving the blog for 30 days.
- After that it redirects permanently to your
ortszeit.appaddress. The blog is still there; the address in the browser bar changes. - Nothing is deleted for twelve months, and export keeps working the whole time.
- Renew within the grace period and nothing has changed.
Troubleshooting
The certificate does not appear. Check that the DNS record resolves — a new record can take a while — and that the plan is active. The certificate is requested on the first request to the domain, not at the moment you save it.
The blog shows on the subdomain but not the domain. The domain has to be entered in the editor as well as pointed in DNS. Both steps, in either order.
The domain is entered but a certificate is refused. That is the deliberate gate above: the domain must be set on a blog with an active paid plan.