Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xavdid/david.reviews
An Airtable-powererd static site for posting all of my media reviews.
https://github.com/xavdid/david.reviews
airtable astrojs books movies tailwindcss typescript videogames
Last synced: about 1 month ago
JSON representation
An Airtable-powererd static site for posting all of my media reviews.
- Host: GitHub
- URL: https://github.com/xavdid/david.reviews
- Owner: xavdid
- Created: 2023-10-25T06:21:26.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-22T08:33:52.000Z (about 2 months ago)
- Last Synced: 2024-12-08T16:45:27.753Z (about 1 month ago)
- Topics: airtable, astrojs, books, movies, tailwindcss, typescript, videogames
- Language: Astro
- Homepage: https://david.reviews
- Size: 37.9 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# david.reviews
➡️ https://david.reviews ⬅️
This is an [Astro](https://astro.build/) + [Tailwind](https://tailwindcss.com/) site which collects all of my media micro-reviews. Data is stored in [Airtable](https://airtable.com/) an loaded using a custom ORM. It ships remarkably little JS to the frontend.
## ORM
I wrote a [custom typed ORM](https://xavd.id/blog/post/static-review-site-with-airtable/) for loading Airtable data. To add new fields:
1. Go to [the docs page](https://airtable.com/developers/web/api/introduction) and select your base
2. Find the `fld...` ids you're adding
3. Add them (and a name) to the `SCHEMA.fields` object in the `airtable/data/.ts` file
4. If any added fields aren't `string`s, add them (by `field.NAME`) to `NonStringFields`
5. Add the relevant output fields to the exported type. This represents the object returned by `materialize` (which turns a row into a usable object)
6. Ensure those new types get materialized