The frontend framework you choose underpins the development of your web properties—so it can be a big decision. When we began planning our new developer hub and migrating our marketing site to a new codebase, we considered what tools we should use. Like many companies, Netlify has several teams working on web development projects. This can often result in varying needs.
To select the frontend framework that could solve the many internal use cases ahead of us, we were keen to consider the lessons learned from around the organization—as well as the specific requirements of each project.
Here’s how and why we landed on Astro as our preferred framework.
What was the undertaking?
The team tasked with creating our new Developer Hub was small. We’ll call it one and a half people after factoring in the time that a couple of people had allocated to the effort. We knew that this would not always be the case. Over time, the people responsible for maintaining and evolving the site were likely to change, as would the variety of people contributing content for the site. We needed to think lean to start, get shipping, and put ourselves in a great position to iterate and evolve the site over time.
Our developer hub would unify many existing disparate web properties that had evolved over time and also provide a growing pool of resources for developers working with web technologies around the Netlify ecosystem. Somewhere between a blog, technical references, and content aggregation, and to be built and maintained by a variety of individuals, each with their own tastes and skills, choosing a technical approach could have easily become contentious. But as is often the Netlify ethos, we aimed first for simplicity.
Reviewing our functional requirements
As developers, we all brought our own technical preferences to the discussion. (The “all” in that sentence is more than the 1.5 team members we mentioned above. We talked this through with several other developers and potential future stakeholders.)
We’re spoiled at Netlify by having a huge variety of possible tools and frameworks open to us. The Netlify platform supports so many options. As such, we’re always keen to ensure that we choose the right tool for the job, keeping the requirements of the end-user at the front of our minds. We contemplated the functional (and non-functional) requirements of what we were creating, such as:
- A content site providing standard blogging features and easy navigation
- Tagging and content structuring
- Easy content discovery and the ability to unify the content into search across all of the Netlify properties
- Excellent performance and accessibility characteristics
- Aggregation from other content sources
- A model for creating and reusing components
- Consistency through structured templates
- Flexibility to customize the experience on any page if required
- Easy authoring through markdown files, with the scope to add a CMS at a later stage
- Visual consistency with the overarching company brand
- High confidence and performance from pre-generation
- Support for some on-demand rendering features as required
Landing on Astro
In truth, a number of frameworks and site generators came very close to fitting the bill. Tools like Nuxt and Eleventy are very capable, offer great solutions, and both garner a lot of affection and enthusiasm around Netlify, but Astro started to gain votes thanks to the combination of a couple of key characteristics:
- You can start simple. The opt-in-to-get-the-complex-stuff model of Astro meant that we could logically and simply transform content and templates into a website. That is table stakes for a project like this. Having it free from unnecessary magic and complexity let us get started rapidly and build something that we had total control over.
- The ceiling is high. Although you can start simple, there’s a significant scope to add more advanced features and abilities over time. Astro is a capable and fast-developing open-source framework. When combined with the opt-in model, the more advanced features available help us future-proof our choice without committing to lots of bloat or premature complexity. This meant we could be measured and deliberate.
Wider considerations and lessons from the Netlify marketing site
The choices we make for each project should begin with considering the needs of that project, but we don’t (and you shouldn’t) work in a vacuum. The team responsible for netlify.com also recently underwent a project to migrate to Astro. Their insights and lessons were invaluable to us.
Key benefits of Astro for all of our needs
Now, after a few months of running developers.netlify.com and netlify.com on Astro, there are a number of things that we’re particularly enjoying:
- The development experience feels logical and easy to reason about
- The single-file components and Astro templates create good opportunities to make the development efforts modular and to develop components that can be shared across projects
- The ability to combine Astro with a variety of other frameworks like Vue, React, Solid, or Svelte unlocks lots of future potential and flexibility. It also allows for many different migrations and combinations of other sites that we might care to unify. This makes for a good fit for some of the content management tooling we’re building for ourselves and others to use.
- The community is thriving and constructive. Astro is certainly enjoying a golden hour at the moment. Its community is a big part of that, with many people building with, extending, and experimenting with Astro. This all helps to drive the project and its adoption and support forward.
- A bias towards shipping HTML rather than JavaScript, despite the occasional need to include more truly dynamic or personalized content, helps us favor performance, resilience, and reach in the experiences we craft. We care greatly about that.
Future plans and possibilities with Astro
None of us has a crystal ball, so it is hard to accurately predict the future. Web frameworks rise and fall in popularity as the industry advances. But we’re incredibly encouraged by the taste and direction that the Astro team demonstrates—building thoughtfully and embracing standards. It’s one of the reasons we recently lent some support to the project by becoming their official hosting partner. Some onlookers have commented on this partnership as if Astro were now “Netlify’s framework,” but we should be clear—this is not the case.
Astro is a bustling organization and an open-source product all of its own. It is independent of Netlify, and that’s important to us. Astro is developed to be a capable and powerful tool for web development no matter where you choose to host your projects. We hope that will be with us but never because your hand is forced. A framework’s features shouldn’t be designed to keep you locked in. Choice and portability are key attributes underpinning the power of the web.
We all benefit when the frameworks we use embody that.
As Astro continues to develop, we plan to expose more fundamental platform primitives that Astro and other frameworks can utilize to make building advanced experiences on the web ever more approachable for the developers using those frameworks.
And as people using those frameworks too, the more successful we are at doing that, the easier we make life for ourselves, and others. Win-win!
A conversation around selecting Astro
We, Phil and Sean, (the authors of this post from the Developer Education team) talked more about this in a recent video.
Check it out: