Pretty cool! I would consider changing your URL patterns though. It's not ideal to change them after launch, but it will be harder to change them a year from now if/when you run into issues.
1. Using '#' in URLs is not great.
- When requesting a page, the browser doesn't include anything after the hash, which means:
- Tag pages rely solely on client-side routing — they'll never work with JS disabled. You might not support no-JS right now, but if you ever want to allow for it in the future, it's incompatible with hash-based routing.
- SEO will probably be impacted; not sure how well crawlers deal with hash-based routing.
- If someone links to non.io/#dog on social media, I think the opengraph preview will also ignore the hash.
If you want client-side routing, you should use a library or the JS history API[0]. That way you can use normal URLs and potentially support server-side rendering to allow for no-JS clients.
2. Putting user-generated URLs at the root of your site could be bad.
- Keep that namespace for yourself: what if you want to make a page at non.io/support but someone already named their post 'support'?
- Some stuff needs to be at the root (currently non.io/robots.txt 404s and seems to be trying to render a post).
- There are other standards that look for specific URLs, or non-standards: e.g. BlueSky was authenticating domain names in a dumb way [1]
To be fair, Twitter does put usernames at the root (not sure if they regret that), but they have some careful exceptions (/home, /i/, etc). If you don't want to switch your post URLs away from the root, you should at least set aside some of the useful URL real-estate.
If you do decide to make these changes, you should try and set up redirects for any existing URLs, at least for a while.
1. Using '#' in URLs is not great.
If you want client-side routing, you should use a library or the JS history API[0]. That way you can use normal URLs and potentially support server-side rendering to allow for no-JS clients.2. Putting user-generated URLs at the root of your site could be bad.
To be fair, Twitter does put usernames at the root (not sure if they regret that), but they have some careful exceptions (/home, /i/, etc). If you don't want to switch your post URLs away from the root, you should at least set aside some of the useful URL real-estate.If you do decide to make these changes, you should try and set up redirects for any existing URLs, at least for a while.
[0] https://developer.mozilla.org/en-US/docs/Web/API/History
[1] https://news.ycombinator.com/item?id=35820368