26 lines
1 KiB
Org Mode
26 lines
1 KiB
Org Mode
|
|
* Site Production
|
||
|
|
:PROPERTIES:
|
||
|
|
:CUSTOM_ID: site-production
|
||
|
|
:END:
|
||
|
|
The Almanack site is managed by Django, but the production version is
|
||
|
|
/static content/, generated by
|
||
|
|
[[https://django-distill.com/][django-distill]]. Interactivity is
|
||
|
|
provided by [[https://htmx.org/][htmx]], and the HTML that is loaded on
|
||
|
|
demand by that javascript library is, as much as possible, stored as
|
||
|
|
HTML fragments in individual files, generate as part of the same
|
||
|
|
distillation process.
|
||
|
|
|
||
|
|
This dynamically-generated, but staticly-presented model allows us to
|
||
|
|
host the site using IPFS as well as over HTTPS. It also allows us to
|
||
|
|
pursue a local-first model, as the site can be passively loaded and
|
||
|
|
aggressively cached in the background.
|
||
|
|
|
||
|
|
* User Authentication
|
||
|
|
:PROPERTIES:
|
||
|
|
:CUSTOM_ID: user-authentication
|
||
|
|
:END:
|
||
|
|
For authentication purposes, we associate public keys with each user
|
||
|
|
account and only support authentication systems that allow us to only
|
||
|
|
store public keys. This is so we don't have to faff around protecting
|
||
|
|
passwords, and also to walk our walk.
|