Skip to content

barryels/realworld-mithril

 
 

Repository files navigation

RealWorld Example App

Mithril codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the RealWorld spec and API.

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.

How it works

10 000 Foot View


                    +---------------+
                    |               |
            +------->  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 values
  • actions 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]

Getting started

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

About

Starter kit for new RealWorld framework implementations

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CSS 70.1%
  • JavaScript 29.5%
  • HTML 0.4%