Rusty Web Improvement Bureau
8 simple missions to improve the Rust web presence. Should you choose
to accept them.
The Rust Project is assembling an elite team of hackers to execute a
number of vital missions for the betterment of The Rust Website. It
will be dangerous. You’ll be deep in enemy territory. But if you
return alive you will be a hero, your name praised and your tales
recounted from Rustonia to the Galvanic Sea!
Sign up below for daring and adventure.
Wut?
This is a project to better surface some crucial information through
the Rust website.
A major theme of this work is organizing and increasing the sub-pages
on the main website so there is more room for expansion. The website
started as just a home page, then added an install
page. Now we’ve also got the
team page, the code of
conduct, and also the
security policy (which is
not linked from anywhere on the website).
After this overhaul we will have the following pages:
- Home Page
- Documentation
- Downloads
- Community
- Contributing
- Teams
- Security Policy
- Code of Conduct
- Stability Guarantee
- FAQ
Each will be a work of stunning beauty.
Below are descriptions of, and links to, 8 issues describing limited
improvements that I, @aturon, @steveklabnik, and others would like to
make to Rust’s websites. We need help though. If you can help, say in
this thread what assignments interest you and we’ll divide them
up. Feel free to leave suggestions too, though please make them
specific and constrained more-or-less to the scope established
below. This is not the thread to talk about major redesigns.
Please give this a look and see what you think. In general, I’ve
described how I think they should be implemented, some in more
detail than others. I’m open to limited debate about the specifics but
also want to get this moving fast to make the information available.
Mission 1: Front page overhaul and nav restructure
Special agent on assignment: TBD
Issue link: https://github.com/rust-lang/rust-www/issues/175
The amount of content we need to present is outgrowing our nav
bar. Community links are growing and there are lots more links we need
to expose but no room.
Completely restructure the nav bar as a few ‘category’ links that lead
to their own pages:
- Documentation
- Community
- Downloads
- Contributing
The content of these pages is discussed in further missions
below. Because this adds ‘downloads’ to the navbar, we also need to
remove the redundant ‘Other Downloads’ button.
There are some other important links that need to be integrated
into the front page:
-
crates.io - It takes a lot of clicks to discover that crates.io
exists today! I don’t know the best way to integrate this, but one
possibility is to call the crate ecosystem out in the feature list
and hyperlink there.
-
play.rust-lang.org - To discover play.rlo you have to click ‘Run’,
then the ‘fold-out’ icon. This is a useful enough newbie tool
that it ought be completely obvious how to find it. Again, no great
ideas about where this link lives in the current design.
- stability guarantee - I like the idea of adjusting the sales pitch /
feature list to tout stability and making this an inline link there.
This isn’t written yet, discussed below in another missions.
- security policy - The page
exists but isn’t linked.
- GitHub - via banner is fine.
If these can’t all be integrated organically into the flow of the page
then you might consider adding them to a new footer.
Consider making the feature list link to various blog posts. Make sure
the page style continues to attract attention to the more crucial
links we already have.
Propose tweaks to the design to accomplish all these goals.
Mission 2: Community page
Special agent on assignment: @efindlay
Issue link: https://github.com/rust-lang/rust-www/issues/176
Today the navbar is overrun by ‘community’ links, but still there is more
info to disseminate. Create a new page, to be linked from a single new
’Community’ navbar link. This page needs to be a friendly and
accessible intro to the world of Rust.
Subjects covered should include:
- The importance of the COC (with link) and diversity
- Team structure (with link)
- The community and moderation teams in particular
- The RFC process, with link to RFC readme
- Subteam reports and TWiR
- Forums, IRC and other communication venues
- It should explicitly explain how to get help
- Calendar. Try to embed a combination of the event calendar and the release calendar.
- List of meetup groups
- blog
- twitter
Think about how to organize this by audience. Some community members
are devs and some are users. Consider that the primary audience for
this page is mostly users, for the contributing page is mostly devs.
Come up with a design that conveys all of this information, either
directly or through additional links, without being overwhelming. This
will be one of the most important newbie resources.
I’m most worried here about conveying a dedication to diversity, as we
don’t have a lot of existing material to crib off of, there’s overlap
with the CoC, and anything we say needs to be worded artfully.
Adapt material from the current
docs.
Mission 3: Contributing page
*Special agent on assignment: @sirDonQui *
Issue link: https://github.com/rust-lang/rust-www/issues/177
Create a contributing page that adapts nrc’s stuff
and CONTRIBUTING.md.
It should be simple and accessible, with consideration for non-coding contributions.
- It should have a link to instructions on submitting bug reports.
- It should lead people to instructions for getting involved in RFC process.
- It should provide leads for getting involved in evangelism.
It might highlight major initiatives, like IDE’s. Such initiatives would need
stable landing pages to link to, like internals threads or GitHub issues.
Cross-link with CONTRIBUTING.md.
Scala’s page is good to crib off of.
Mission 4: Stability guarantee
Special agent on assignment: @geofft
Issue link: https://github.com/rust-lang/rust-www/issues/178
Write a simple, user-oriented ‘stability guarantee’, based off of the
API evolution
RFC,
Language versioning
RFC,
and Stability as a
Deliverable.
This should be a few paragraphs designed to make newcomers feel good
about trusting Rust. This will be linked prominently from the front
page and will be an important part of the Rust sales pitch. Use your
creativity.
Mission 5: Documentation page
Special agent on assignment: TBD
Issue link: https://github.com/rust-lang/rust-www/issues/179
Today, the documentation landing
page lives in the Rust tree, and
is generated for each release channel. As Rust grows though, more
documentation lives out of tree and needs to be discoverable.
Let’s reorganize this so that the website itself is the main landing
page for finding docs.
Start by moving the contents of the existing documentation index into
rust-www, reducing the existing doc index to links to the in-tree
docs, as well as a link to the website for more information.
Add a link to the new website-based FAQ.
Brainstorm about other documentation we might want to link to and what
standards of quality and stability we might require before officially
endorsing them.
Mission 6: A better example
Special agent on assignment: TBD
Issue link: https://github.com/rust-lang/rust-www/issues/180
Come up with a new example that fits in the same space and exemplifies
the Zen of Rust. This is a newb’s first impression of Rust and it
needs to be breathtaking.
Consider that we might have multiple examples serving different
purposes and put them on a carousel, only if it’s not possible to create a single succinct example.
Mission 7: FAQ fixes
Special agent on assignment: @AndrewBrinker
Issue link: https://github.com/rust-lang/rust-www/issues/181
The FAQs have
more-or-less been bitrotting since the inception of the project. They
are only slightly better than useless.
Start a thread on users.rlo asking for people to write boths Q’s and
A’s. Throw away the 3 existing FAQs and write a single new one. Put
this one on the website, linked from the doc
page.
Q’s
Why is the Rust [HashMap] so slow?
Mission 8: Download page tweaks
Special agent on assignment: @brson
Issue link: https://github.com/rust-lang/rust-www/issues/182
Rename from install.html to downloads.html, to match the 'Downloads’
link. The name ‘Downloads’ gives us room to expand to offer things
that are not installers. Leave a redirect.
To the beta channel, add an indication of which date it will become stable.
Add links to changelogs and/or release announcements, as well as the
docs for each channel.
Simplify labels by removing the words ‘binaries’ and ‘installer’. This
is a meaningless distinction these days and just adds noise.
Two options for mac is too much choice w/o no obvious way to know
which one to pick. Remove one of them. I’ve started a poll to decide
which:
Consider whether we need a better-organized archive to give access
bonus artifacts like the extra mac installer.
References and Resources