Tools used
About El Grupo
El Grupo Youth Cycling is a 501c(3) non-profit based out of Tucson, Arizona. I currently serve as the board chair for the organization. In 2025, El Grupo took steps to align with its strategic plan. That included a new website, which I undertook.
Goals
When designing and developing this website I had a few goals, my primary one was to make the website more accessible than it’s predecessor. The former website was built using SquareSpace and had quite a few accessibility issues, I addressed those with the design of the new website.
Decisions
Astro
I decided to go with Astro.js, a framework I’m pretty familiar with. I’ve used it for several websites, including the one you’re reading this on! I picked it because it does static site generation out of the box, it has a very large ecosystem, and I was already familiar with how it works. I brought in TailwindCSS so I could ship style changes faster, and keeping my styles inline helps me focus on changes, especially as the website grows in complexity.
Directus
I did a lot of research into different Content Management Solutions (CMS), I landed on Directus for a few key reasons. The first, it has a very user-friendly dashboard, it’s easy to make changes on the fly. It has a wonderful role based access control (RBAC) system, which allows me to create roles for staff, volunteers, marketers, and board members, scoping them to what they need access to.
Umami
I wanted to pick a privacy conforming analytics platform to replace Google Analytics. I landed on Umami, as I have deployed it on other websites and I have been very pleased with how it works and how simple setup and event tracking is.
Trials & Tribulations
While working on this website I ran across some issues, the first one was I developed this website locally using Docker, I hadn’t though about migrating it to a Digital Ocean droplet or EC2 instance. I ended up writing a migration script which created a dump of the postgres database I had locally, and then I used SCP to move it to the hosting platform I selected.
After I got the database migrated, I thought I was in the clear. Nope, I was now facing some permission issues when attempting to build pages for the website. I spent about 4 hours troubleshooting the access controls for images and for page settings, only to realize that I needed to setup a new nginx config for the images directory. I have since migrated the image system back into the built-in one.