adr-10: decided | Discussion |
decided | 2024-05-05 |
Razor Pages
Build our own UI, using Razor Pages, instead of depending primarily on the Mastodon API.
Decision
As the project has developed, it's started to seem more important to have a first party UI. We will still implement the Mastodon API and attempt to support Mastodon clients as well as we can. But, depending on the features that are available in Mastodon clients would be limiting, especially for admin and moderator features.
Impact
We selected Razor Pages as the basic framework.
Razor scaffolding includes JQuery, Bootstrap, and a few other front end utilities. We're not settled on these aspects, and we would certainly consider other alternatives.
Context
This is to summarize and record a decision that's already made. Importantly, that also includes identifying parts of the implementation that are incidental and more open to change.
Discussion
Before choosing Razor pages, we discussed using Blazor instead. Blazor requires active websocket sessions and continuous server-side evaluation. The concern is this makes Blazor more resource intensive, and simultaneously more complicated to run and scale. And Blazor WASM has a very large download size which can be a problem on mobile networks.