Support routes in query string (/?/
) to allow web app to be completely statically hosted.
#4018
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Draft of an idea discussed with @haileyok in a thread this morning.
This lowers the barrier to entry for hosting forks of the app as no paths other than
/
are ever requested from the server, ergo no code needs to run on the server to support resolving deep links. Instead, the routes are encoded as query strings. For example/profile/username.bsky.social/
can be accessed as/?/profile/username.bsky.social
. This means, for example, you could host a forked bsky web client with GitHub Pages, or potentially even serve it over IPFS or other non-HTTP protocols.This still supports parsing old-style links; however, all links generated in the UI should be in the new style. A slightly more complex solution would be to detect old vs new style links and switch the generation appropriately to allow both versions to exist in parallel in perpetuity. Creating as a draft PR for discussion as I'm not sure what the considerations are here from the perspective of the official client.
[edit]
you can test how this works with: