-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rework homepage #3579
Rework homepage #3579
Conversation
- Call to action to get started - Break up large blocks of text - Remove recent projects
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall looks good some small points to bring up though.
- I would have "Free docs hosting" be the first block. I think this is the most important out of the four.
- We switch between the term "docs" and "documentation" a lot we should stick to one. At least within title sections e.g. "Free documentation hosting"
readthedocs/templates/homepage.html
Outdated
{% blocktrans %} | ||
We can host and build multiple versions of your docs so having a | ||
1.0 version of your docs and a 2.0 version of your docs is as easy | ||
as having a separate branch or tag in version control. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"version control software"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I really like this update.
I would like to add something that makes it feel alive. This current version looks very static, and won't really change. Perhaps something like "7 million builds and counting" or "Now hosting <projects.count> projects" or something. "X projects build in the past 24 hours".
for build in latest_builds: | ||
if (build.project not in latest and len(latest) < 10): | ||
latest.append(build.project) | ||
context['project_list'] = latest |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was a killer query for our DB as well. Glad to have it gone :)
readthedocs/templates/homepage.html
Outdated
@@ -4,6 +4,10 @@ | |||
|
|||
{% load pagination_tags %} | |||
|
|||
{% block extra_metas %} | |||
<meta name="description" content="{% trans "Read the Docs simplifies technical documentation by automating building, versioning, and hosting for you. Build up-to-date documentation for the web, print, and eReaders on every version control push automatically." %}"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
eReaders is a bit odd here. Perhaps we should just say "for online and offline use" or something.
context['featured_list'] = Project.objects.filter(featured=True) | ||
context['projects_count'] = Project.objects.count() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I timed this against the prod database and it ran in ~20ms. If that's too expensive, we could consider caching it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should be fine, but probably worth caching since that seems like a lot of time for no real reason. We can likely just use the Django view cache decorator at a minute or 5 minute interval, if we don't have anything much live updating!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know if we can cache the whole page especially for logged in users. They have the username/dashboard fragment at the top. Perhaps we could do something with the cache
template tag.
I made updates based on the feedback. One thing we do support on the home page but it doesn't appear to be used is to have featured projects. These could be large, popular, or other projects we want to highlight (it's useful in dev too!). I believe we should use that as that will make the home page feel more alive. One concern I do have with this is that the search is below the fold on my laptop screen. Search is fairly important on this page although arguably not as important as login/signup or getting started. Currently ~7.5% of non-bouncing visitors do a search from this page. While I think this homepage is bit better than the previous one, I also have some thoughts on how to objectively gauge that:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me!
As a note when this goes live, I would feature a couple projects. Here's a decent list to start:
|
Packages are featured, except for |
This PR reworks the homepage with the hope that it makes getting started with RTD easier. Here's a summary: