This codebase was created to demonstrate a fully fledged fullstack application built with Mithril including CRUD operations, authentication, routing, pagination, and more.
We've gone to great lengths to adhere to the Mithril community styleguides & best practices.
For more information on how this works with other frontends/backends, head over to the RealWorld repo.
+---------------+
| |
+-------> Component X +-------+
| | | |
| +---------------+ |
| |
[store.prop reference] (function call)
| |
| +--------------------+ |
| | | |
-----+ domain <-----+
| |
| Updates its |
| internal state |
| in response to |
| API data |
| |
+----------^---------+
|
|
V
(External API(s))
domain/index.js
Handles app-level concerns and is UI agnostic. It handles communication with the external API (which should be abstracted away into a separate module for larger apps). It has a basic store
data object which can be (relatively) easily replaced by Redux, mobX, etc. with/out Immutable data structures.
It has two public interfaces:
store
is a way to read valuesactions
has a set of functions which can be called in order to mutate state
ui/router.js
[TODO Add detail]
ui/components/*.js
[TODO Add detail]
You can view a live demo over at realworld-mithril.netlify.com
To get the frontend running locally:
- Clone this repo
- Run $
npm install
to install all the required dependencies - Run $
npm start
to start the local server and JS build