I made an interpreted lisp and stored the AST in postgres and exposed the functions with htmx, and honestly it works pretty great.