At Battlefy we build esports experiences with game publishers and brands. Often this entails hosting a website of the engagement.
For each website, 3 common URL requirements are
Context path is the first segment of an URL path. For example, given the URL
https://battlefy.com/marketing-event-name/about, the context path is
marketing-event-name. The context path is decided by the client and the entire engagement is scoped under it. For the rest of the path, we are in full control and design it for our needs.
Our engagements often span multiple seasons, but the later seasons may not be public yet. For example, for the first release of a new engagement, if we choose a URL
https://battlefy.com/marketing-event-name/season-01/about, that would leak information. The path segment
season-01, implies the existence of up to
But how can we design stable URLs? If we fail to do so, we would break the Internet.
Let's say we shipped the first season of an engagement with the URL
https://battlefy.com/marketing-event-name/about. But when the second season is released, we need to archive the first season, but still make it available. There are many ways to go about this, but most of them break existing URLs. I.E. they break the Internet.
This violates 2 requirements. First, we are not in control of the context path, the client is. Second, other websites that linked to
https://battlefy.com/marketing-event-name/... expecting season 1 would suddenly get season 2. We broke the Internet.
OK, what if we move season 1 into a subpath?
While we have avoided changing the context path, we still broke the Internet. The season 2 URL is the old season 1 URL. But this does get us closer the actual solution.
https://battlefy.com/marketing-event-name/season-1/...(not a wildcard, but explicit for each URL)
https://battlefy.com/marketing-event-name/season-2/(not a wildcard)
Doesn't this violate the requirement of not leaking information? Doesn't this imply the existence of season 3? We are free to add a season subpath now that we have more than one season. The season subpath is used to distinguish existing seasons and no more.
But doesn't this still break the Internet? Other websites that linked
https://battlefy.com/marketing-event-name/ would suddenly get redirected to season 2. This isn't typically consider a breakage as
https://battlefy.com/marketing-event-name/ is the top level entry point. The top level content will always change and link to other information. What would be considered a breakage are deeply linked content. For example, we need to carefully redirect
Note a simple wildcard redirect
https://battlefy.com/marketing-event-name/* should not be used to send all remaining URLs to either season 1 nor season 2. Using wildcard redirects would either send users to the wrong season or break the Internet for future seasons. We do not want to paint ourselves into a corner. Redirects should be explicit. We know the finite set of all our URLs.
Do you want to add to the Internet without breaking it? You're in luck, Battlefy is hiring.