Hindki Architecture Overview
One could certainly argue that Hindki is as much about procrastinating learning Hindi by setting up an elaborate website as it is, about, well, learning Hindi.
The major decisions that led to this site, and are elaborated in the next few pages, were:
- Using Astro, the static site generator, to (mostly) focus on ease of adding content. I’m using Starlight, which is basically a theme for Astro that comes with some components, sane defaults, and probably more that I’m not taking advantage of.
- Overriding the fonts to look more like how I would typeset a book using (Xe)LaTeX.
- Keeping track of vocabulary in a YAML file, and generating the vocabulary pages quasi-dynamically during the build phase of static site generation. In other words, I didn’t want to have to hand-write each page (because I kept changing my mind about how the entries would look, and it quickly became clear that I should use reusable components), but I also didn’t want to use a heavy/full-featured CRUD backend, because at the end of the day, this site is just content.
- Realizing that even though it’s just content, most of that content is actually structured data with a schema, so a web form makes sense to lubricate adding vocabulary easily.
- Realizing that thanks to my particular use case of wanting to edit the live production database both from the website, as well as from my development laptop and desktop, I should just implement a database backend.