I wonder what to do. I feel like writing software such that it runs on Linux with ext4 filesystem and let other people figure it out if they use the software. Because I know the secret shame of every developer who thinks of using part of the URL path as a filename, like I do: UTF-8 NFC is the default, but UTF-8 NFD is used for HFS+ filesystems and UTF-16 is used for Windows and Go offers a system-agnostic layer on top of that (but you still have to do forward and backward slashes even though Windows can handle forward slashes) and then I get tired.
So now I feel bad because I use a lot of filepath.FromSlash and filepath.ToSlash and I never test it on other operating systems. It's interoperability theatre.
@tetrislife I wondered about using IRIs as a type in the code, clearly separating them from filenames. Sadly the program uses files for storage, so every page in the browser is also a file on the filesystem. I fear the two are inextricably linked.