This Website
Hobbies
Summary
While I've traditionally used Wordpress to build my websites in the
past, I finally decided to make a custom one after developing the skills
to do so at SpaceX. I still wouldn't call myself a web developer by trade, but I take
great pride in being able to create things on my own, and have also felt
that Wordpress was overkill for a simple portfolio website. It also gave
me a chance to put my DevOps skills to use at home, which I've been
wanting to do for a while.
The core framework of my website is Astro, chosen for its focus on static site generation and de-duplication of
code via re-usable components. This seemed like the perfect middle-ground of providing enough
structure and quality-of-life features to reduce the overall effort of
building the site, without being overly bloated or opinionated. So far
I've been incredibly happy with this decision, and would recommend it to
others looking to build static websites. To add some helpful styling
utilities, and basic web components, tailwindcss and flowbite were also
added. Like my decision to use Astro, these both provided good starting points
for creating a website that felt like my own, without struggling for too long
at the start.
From the DevOps perspective, I created a Makefile within the repo for
local development targets to build, run, and test both in a pure
context, and within a Docker container. After pushing updates on a
branch to my local Gitea instance, and opening a pull request, an
actions runner performs spelling checks, runs unit tests, and
integration tests. Once these pass, the website is built into a Docker
container and uploaded to the registry in my Gitea instance. The image
is then deployed to staging on my VPS,
allowing for manual validation of the changes. In order to merge, the
build, test, and deploy actions must pass, and I empirically validate
the deployment. Post-merge, a similar action builds, tests, and deploys
the main branch in the same way as before, but to production, and is
what you see here!
VPS
Virtual private server
Relevant Skills
Software & Environments
- DevOps
- Github Actions
- dev/staging/production environments
- automatic build/test/deploy
- Git
- Docker
- Custom Builds
- Registry & Asset Management
- Programming
- HTML
- CSS
- Typescript
- Bash
- Makefile
- Web Frameworks
- Astro
- tailwindcss
- flowbite
- Operating Systems
- Linux
- NixOS
- Alpine Linux
- Linux