So I decided to experiment with a basic HTML interface for Bulgur Cloud. And it was shockingly easy! With maybe 5 or 6 hours of work, I was able to get a read-only interface off the ground, and I was able to reuse a lot of the code I had written for the Bulgur Cloud API that the web app interface uses.
The key packages in my experiment are askama
with askama_actix, and
rust-embed. Askama is a template
rendering engine which builds the templates into rust code.
support for the Actix framework so I can return a templated page from a route,
and Actix will finish rendering and serving the page for me. Finally,
rust-embed allows you to embed files into your executable binary, which is
great because you can ship a single binary which includes all the files you
It’s all hand-written HTML and CSS. It was very quick to get all of this working. Once the web app is done, I’ll come back to this interface to add full functionality!