This project constitutes an application written in typescript that is compiled for different target architectures: client (the users' browsers) and server (a server-side service).
While using different data sources in client and server code is the norm, we generally strive for feature parity. Programmatically, this is typically solved by implementing the same interfaces differently using the inputs available. There are a few known deviations from this idea (for various reasons) however - this list tries to document all of them.
- (HTML) language directionality is read from a JS API provided by mediawiki in client-side code, yet determined using a library in the server side
- editability status is read from a config entry provided by mediawiki in client-side code, yet hard coded true in the server side and enforced through propriatary mark-up possible through use of wikibase as a middleware when delivering the SSR result to the clients.