➡️ https://david.reviews ⬅️
This is an Astro + Tailwind site which collects all of my media micro-reviews. Data is stored in Airtable an loaded using a custom ORM. It ships remarkably little JS to the frontend.
I wrote a custom typed ORM for loading Airtable data. To add new fields:
- Go to the docs page and select your base
- Find the
fld...ids you're adding - Add them (and a name) to the
SCHEMA.fieldsobject in theairtable/data/<BASE>.tsfile - If any added fields aren't
strings, add them (byfield.NAME) toNonStringFields - Add the relevant output fields to the exported type. This represents the object returned by
materialize(which turns a row into a usable object) - Ensure those new types get materialized
- I shrink images using https://compresspng.com/
- Brand icons are sourced from https://simpleicons.org/