Is it possible to change lemmy's domain after I have already started it once and produced some content? I am thinking of moving to a subdomain but I'm not sure if it will go smoothly
It can cause some wackiness… basically you will need to maintain that old domain forever and everything will still refer to that old domain.
For example, your post looks like this from an ActivityPub/federation perspective:
undefined
{
[...]
"id": "https://atosoul.zapto.org/post/24325",
"attributedTo": "https://atosoul.zapto.org/u/Soullioness",
[...]
"content": "<p>I'm curious if I can migrate my instance (a single user) to a different domain? Right now I'm on a free DNS from no-ip but I might get a prettier paid domain name sometime.</p>\n",
}
The post itself has an ID that references your domain, and the the attributedTo points to your user which also references your domain. AFAIK there is no reasonable way to update/change this. IDs are forever.
It would also break all of the subscriptions for an existing instance, as the subscriptions are all set to deliver to that old domain.
IMO your best bet would be to start a new instance on the new domain, update your profile on the old one saying that your user is now @Soullioness@newinstance.whatever and maintain that old server in a read-only manner for as long as you can bear.
Yeh, It is big fault in ActivityPub design that IDs are linked to domain name. Should not be a case. Some UUID + public keys will make it way more flexible and resilient.
Having a "source of truth" makes many things easier but less resilient. One place to go get the latest version of something mutable. The fediverse/ActivityPub needs to get on board with some form of DID or something similar before worrying about improving the ID system (and the ID system is inherently tied to JSON-LD, so AP would need to stop using that or there would need to be a new version of it) IMO.