About this site
If you're a web developer and you care about how the work is done, here are some details. The site's not open source but it might be one day.
- The site is written in Remix, a framework for building websites in React. I enjoy the reusable component model of React, and Remix takes care of the tiresome routing, transpiling, and hot-reloading that can make it annoying to get started with React.
- The site is rendered server-side in advance and served as flat HTML for speed, SEO and accessibility.
- The site is hosted on Netlify. When I push an update to GitHub a webhook triggers a rebuild of the site, which is then pushed to Netlify's CDN.
- The site has a (barely) hidden admin screen which lets me create, update and delete posts. The admin screen is a single-page React app, powered by an API composed of Netlify Functions, which are mostly AWS Lambda functions. The functions are part of the same repo as the rest of the website and get built and deployed in the same way, which is a lot more convenient than regular Lambda.
- The admin screen is secured first by using Twitter for authentication (the twitter-lite package) and then checking the database for authorization (there is currently exactly 1 user authorized to do anything: me). This is clearly overkill but it was fun to build.
- Ultimately all the data is stored in MariaDB, on the cheapest possible AWS RDS plan I could find. This is also overkill because the database really only needs to exist at build time, a big JSON file somewhere would work almost as well. But I like databases, so the site has a database.