URLs for hosted app and website
Thanks to contributor @alecbcs for starting this conversation.
Problem/Opportunity Statement
-
When we implement #617 (closed), we will have both 1. a software project that is hosted and delivered as a web application (what currently lives at
try.exosphere.app
), and 2. a web site that describes this software project. Each of these things will need a URL. If someone is searching for information about Exosphere, they should be taken to the web site first. If they are accessing the application by direct navigation for the first time (not logged into any OpenStack projects), and the referrer is not from the web site, they should probably also be taken to the web site first. But when they want to start using Exosphere, navigating to the login page of the web application should be a frictionless experience. Similarly, when using the web application, navigation to the web site should be discoverable. -
The hosted web application is currently at
https://try.exosphere.app/exosphere
, and if you browse to https://try.exosphere.appyou get redirected to
/exosphere. This URL is longer than necessary, and we can probably get rid of the
/exosphere`. -
The "try" in
try.exosphere.app
may give people the wrong impression, i.e. that the hosted application is only for trial/demonstration purposes instead of for "real use".
What would success / a fix look like?
- Our plan to fix all of this should preserve backward compatibility with current URLs that start with
https://try.exosphere.app
. That is, if someone has an existing deep link into the app, we should avoid breaking it, and redirect appropriately. - However we decide to do this, it needs to be reasonably implementable in Nginx.
- This arrangement should be re-usable / configurable for white-labeled deployers. For example,
https://exosphere.jetstream-cloud.org
should be configurable to guide people tohttps://jetstream-cloud.org
if they are a first-time visitor and not logged into anything yet. - For developers, it should be easy to work on only the application, or only the website, without having to set up a complicated local development environment.
Some possibilities:
- Different hostnames. The application is at
https://exosphere.app
and the website is athttps://about.exosphere.app
orhttps://exosphere.somethingelse
. (Note: subdomainstry
,dogfood
, anduse
are to be avoided.)-
GitLab does it this way: a new, not-logged-in visitor is redirected to
https://about.gitlab.com
, and if you click "log in" from the hamburger menu, you end up athttps://gitlab.com/users/sign_in
.
-
GitLab does it this way: a new, not-logged-in visitor is redirected to
- Same hostname, different paths. For example,
https://exosphere.app
is the application, andhttps://exosphere.app/about
is the web site. Or,https://exosphere.app
is the web site, andhttps://exosphere.app/exosphere
is the application (or perhapshttps://exosphere.app/home
).- privacy.com does it this way: the bare domain is a landing page, and then there's https://privacy.com/login, and the app at https://privacy.com/home.