The Astro Developer Portal

By
Elian Van Cutsem

Today, we’re launching the Astro Developer Portal, a platform where theme authors can submit, manage, and promote their themes built for Astro.

At Astro, we’re dedicated to crafting solutions that not only benefit our community that builds with Astro but also those who build for Astro… all while addressing our own internal challenges building Astro itself. One such solution is the new Developer Portal, which will serve as the future home for all community Astro developers.

Our aim with the Developer Portal is to provide a centralized platform where theme authors, and eventually integration builders, can have full control over managing their listings in Astro’s official directories. Another goal of the portal was to test drive Astro Studio: to help define its capabilities, identify bugs early, and provide feedback to our platform team.

Today, the new Astro Developer Portal goes live! Check it out at portal.astro.build.

Problems with our past setup

The old method of adding themes to the Astro catalog was a very time-consuming and inefficient process. Theme creators were required to fill out a form, which triggered a manual process for the Astro core team. Images and content had to be extracted from Discord messages, formatted, and integrated into our theme content collection catalog. Updating themes was equally cumbersome, requiring manual repository forks and PR submissions by theme authors.

It was obviously not the most ideal way of handling that. If only we had some sort of Astro database-backed system …

Solution

After taking stock of our problems and challenges, listing all the pain points for theme authors and the Astro core team alike, we sketched out the system we wanted. What we came up with was a digital portal where theme creators can upload, update, and manage their themes. We envisioned something where a core member only had to step in once, to approve a new theme, and that is now just a simple click of a button. Using Astro Studio and Astro DB, we would be able to handle the entire process using an Astro web application, eliminating the need for the existing manual steps like creating PRs and managing content ourselves.

Dogfooding Astro Studio

What could be more powerful than using the tool you’re building to build the tool you’re building? It’s a great way to identify bugs and issues early on and to test the limits of the tool. Building with Astro Studio began in earnest.

In particular, we had two feature requirements shared by many of our own Astro users: authentication and image storage. There are several popular options available that work well with Astro projects, but this was the first chance to test drive them with Astro Studio.

To prototype authentication, we first built a proof-of-concept using Supabase, leveraging its OAuth with GitHub for streamlined access. Yet, we realized the benefit of a unified solution that would leverage the power of Astro Studio and transitioned to Lucia. Whatever your own project’s authentication needs are, we are confident you’ll find an Astro Studio-compatible solution that works for you!

For image storage, we set up a very simple cloud storage bucket with Google Cloud that will handle all storage and image processing without any manual intervention. This proved to be sufficient for our needs handling theme screenshots and thumbnails, again showcasing how powerful an Astro-powered application and database can be.

What’s next

Looking ahead, there’s still much to be done to enhance the Developer Portal experience. Our focus remains on refining the platform and incorporating user feedback. While we have exciting ideas in the pipeline, our primary goal is to continue dogfooding Astro Studio to deliver the best possible experience for Astro developers using Astro Studio.

Join us on this journey as we strive to make the theme creation and management process smoother and more enjoyable for all, eventually extending to integrations and … who knows what else? The sky is the limit to what you can build with, and for, Astro!

See you in space, Astronauts!