From Fedora Project Wiki


Hello Outreachy applicant! Thank you so much for considering Fedora Websites for your Outreach internship project. We are delighted that you are considering contributing to the Fedora Websites project - a project that has high impact within the Fedora Project, and which really needs help and contributions.


The Fedora Websites project is at an interesting point. About a year ago, our main landing site,, was redone from scratch. The template changed, but also the tooling used to build the site. Previously, our sites were all built with custom Python scripts and Genshi templates. In the new system, they are built with python-flask and Frozen-Flask ( for the final static website that gets deployed to our servers.

Our goal with the new system is to deprecate most of our subdomain websites. This includes sites such as,,,, Instead of having subdomains for all of these sites, we want them all under, so that is the single, canonical place to "get fedora." This means that, for example, will no longer exist, and the content previously found on there will be found at instead, and of course will look like part of the getfedora site.

Update on communication methods


Due to so many people having issues with joining the IRC, there is now a Slack workspace for real-time websites chat.

Please sign up here:

We will use this instead of IRC for now.

Application Process

For this project, we are having all applicants (potential interns) do the same task, which will be porting from our old websites repository to our new one. The reason we are doing it this way is that is simple enough (only a few pages of content) that applicants should be able to make a fair bit of progress on it, but complex enough that it will give insight into how applicants work.

We aren't too worried about the timeline. If you don't get everything ported, that's fine! Instead, here are some of the things we are looking for in our applicants:

  • Are you able to get things set up and working on your system?
  • Are you able to join our IRC? How do you communicate with others in the channel?
  • What kinds of questions are you asking?
  • What does your code look like? Does it fit in stylistically with the code that is nearby?

Some things to keep in mind:

  • We want the site to look and feel like the other current pages.
  • We want to avoid hardcoding download links in the templates. We would prefer everything to be configurable via YAML configuration files. For the application process, this isn't critical, but the selected intern will be expected to conform to this. If you're looking for a challenge in the application process, instead of hardcoding download links in the /alt templates, make them configurable in release.yaml. Use the "server" and "workstation" download page templates for ideas on how to do this using the dl(...) function that is exposed to the Jinja2 templates. For /alt, we'll want these links to exist in release.yaml under ga.alt and beta.alt (i.e., not under ga.editions or beta.editions).
  • HINT: Do the "cloud" page last. It has some extra Python code (build/ that will need to be untangled from the old websites code and moved over into the new system. Consider this a challenge exercise for after everything else is done.
  • Remember to make all strings translatable by wrapping them in {% trans trimmed %}...{% endtrans %} tags in Jinja2 templates.
  • Spend some time getting familiar with the tooling. We want to see that you are able to pick up the tooling and be comfortable with it, rather than just quickly attempting something that may or may not be the right way to do something.
  • Ask questions in the IRC channel!