[Editor’s note: This post was originally published on Máirín Duffy’s blog. It is republished here with permission.]
Fedora’s web presence today
It’s no news now that Fedora has a new logo, and what you may not realize is that we do not have a new website – when we began the new logo rollout process, we simply updated the logo in-place on our pre-existing website.
The thing is – and this is regardless of the underlying code or framework under-girding the website, which I have no issues with – the messaging and content on the current getfedora.org website has not kept pace with the developments, goals, and general narrative of the Fedora project. We have a lot of different initiatives, developments, and collaborations happening at what I find at times is a dizzying pace that is challenging to keep up with. The number of different fronts that Fedora development takes place on and the low, technical level they occur at makes it difficult to understand the big picture of what exactly Fedora is, and why and how would one want to use it.
As part of the Fedora rebranding project, I’ve been worrying for a while how we will evolve our web site and our overall web presence. If we’re honest, I’ve been worrying about it quite a bit longer, and some plans we had at making a wildly interactive and participatory community-focused website kind of fell apart some time back and had me feeling somewhat defeated about Fedora’s web presence, particularly for contributors. I think some of the recent, rather exciting developments around contributor-focused Fedora assets such as our upcoming new Matrix-based chat server and Discourse-based discussion board (open source platforms!!) have sort of risen from the ashes of that failed initiative and have got me excited to think about Fedora’s web presence again.
But what *is* Fedora, exactly? What do I do with it?
This question of what is it and why/how should I use it? is a key message a software project website should have. So in setting out to rethink our website, I set out to answer this question for Fedora in 2021.
Through various conversations with folks around the project over the past few months I discovered that our labyrinthine technical developments and initiatives do in fact feed into a somewhat coherent singular story.
The problem is that our website currently does not tell that story.
In order to tell the story, we need the story. What is it?
Introducing the Fedora “F” Model
Somehow, this diagram oddly turned out to be in the shape of an “F” for Fedora, yay! (It started out as a weird upside-down “L.”)
Anyhow, this diagram is meant to represent “the story” of Fedora and how you would use it, and serve as a model from which we will build the narrative for Fedora and its web presence. The core idea here is that there are three different ways of using Fedora, and the hope is that all of these ways (if not currently the default) will someday be the default using container-oriented options. Let’s walk through this diagram together and make some sense of it:
Desktop User
We start at the bottom of the “F”, at the green node labeled “Desktop User.” This is where most people come to Fedora today, and honestly, they need not go anywhere else if this is what they need and what serves them. They come to Fedora looking for a great Linux-based desktop operating system. Ideally, by default, this would be the container-based Silverblue version of Fedora’s Desktop – but one thing at a time, I suppose!
This desktop user can just hang out here and have this be their Fedora experience, and that’s totally fine. However, if they are interested in building software, or are a developer and looking to migrate to a Linux-based desktop / platform for their development work, they can bridge out from their basic desktop usage, up the spine of the letter “F” and venture into the “Fedora for Development” branches of the F.
Web/App Developer
I struggled to come up with a name for this branch: perhaps you have a better one? The idea here, is these are developers who are writing web apps mostly, kind of a “traditional” web-focused developer who is not developing for specific hardware or IoT style deployment targets (the IoT branch, which we will cover next, is for that.)
We do have users of Fedora today who use Fedora as their main development workstation. Linux as a workstation for developers is an obvious easy sell, since the apps they write are being deployed to UNIX-like environments. What is kind of compelling about Fedora – and sure maybe we could even be better at it with the focus of a narrative like this? – is that we have a lot of built-in tooling to do this type of development in a container-oriented way.
The idea here then is:
- Get yourself set up with Fedora as a development workstation, and maybe we have affordances in Fedora itself (maybe right now they are web pages on our web site with information, later could be default apps or configurations, etc.) so that you can easily start developing using containers on your local Fedora workstation system right away.
- As your app gets more sophisticated, and you need to use remote computing resources to get things running or get your app launched to be publicly accessible, your next step (moving right along the bottom branch of the “F” shape) would be to deploy Fedora CoreOS as a container host at your favorite cloud provider, and push your containers to that.
- Finally, the end game and final stop on our orange web/app developer branch here is to deploy your even more sophisticated container-based app at scale, via a Kubernetes platform.
IoT Developer
I am not sure if the name for this branch is great either, but it’s basically the “Edge Computing” branch… here we have developers using Fedora who intend to deploy to specific hardware of the kind supported by the Fedora IoT Edition.
Here the story starts the same as the previous two – you begin by using Fedora as a Desktop / Workstation. Then you start developing your app using local containers. In this branch, we develop via containers locally on our Fedora Workstation, and in order to test out the code we are writing, we deploy Fedora IoT to the target device and deploy our locally-constructed containers over to Fedora IoT as a container host.
The next step to parallel the Web/App developer branch is to do this IoT, container-based development at scale, deploying to 100’s or 1000’s+ systems – we don’t really have a story for that today, but it’s a future end point worth thinking about so I left it in the model.
Containers, Containers, Containers!
If all of this is being done via the medium of containers – ok, great! Where do those containers live? Where do they go?
I don’t know the answer. I drew a “quay.io Registry” bit into the diagram with the idea that anyone can get a free accoutn there and use it to push containers to and pull containers from, as I understand it. I don’t know that Fedora wants to be in the business of maintaining its own open container registry (Oh! TIL – we do have one.) But certainly, having a registry somewhere in this narrative would be helpful. So I drew that one in. 🙂
Um, so what does this have to do with the website?
Well, the next step from here is to share this model with all of you fine folks in the Fedora project to see if it makes sense, if anything is missing or needs correction, and to just generally suss out if this is the right story we want to tell about what Fedora is and what you can do with it.
I think the quay.io container registry should also encompass desktop users too, shouldn’t it? ort of a fun coincidence that the graphic shape ended being an “F”. I mentioned the quarkus.io website to @duffy regarding this, and did so because it tells the Quarkus story very well. Pulling the reader into it’s product in the process. I think Fedora Linux and the Fedora Community have a story to tell, and I think that story can be presented to invite use.