Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rabsef-bicrym/tudumvc
todoMVC on Urbit
https://github.com/rabsef-bicrym/tudumvc
Last synced: 3 months ago
JSON representation
todoMVC on Urbit
- Host: GitHub
- URL: https://github.com/rabsef-bicrym/tudumvc
- Owner: rabsef-bicrym
- Created: 2020-12-24T18:40:21.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2021-05-11T15:18:57.000Z (over 3 years ago)
- Last Synced: 2024-07-22T17:02:44.724Z (4 months ago)
- Language: JavaScript
- Size: 3.18 MB
- Stars: 21
- Watchers: 4
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
- awesome-urbit - TuduMVC
README
# TuduMVC - a React.js + Hooks Implementation of TodoMVC with Urbit Integration
[![awesome urbit badge](https://img.shields.io/badge/~-awesome%20urbit-lightgrey)](https://github.com/urbit/awesome-urbit)
tudumvc is an implementation of the React.js + Hooks version of [TodoMVC](https://jacob-ebey.js.org/hooks-todo/#/) that uses Urbit as a back-end. The Urbit backend supports all of the open-web functionality _including_ serving the front-end without any need for client-side storage. With minimal changes to the existing source code and less than 200 lines of back-end code, **tudumvc** is responsive, lightweight, and expandable. The pervasiveness of React.js as a framework for front-end development informs our choice of implementations of TodoMVC to incorporate with urbit.
Additionally, `tudumvc` is an excellent example of the advantages of incorporating Urbit in your stack. The React.js + Hooks implementation of TodoMVC is a stateful application that updates its presentation layer on state change. Urbit is a deterministic operating system, sometimes called an operating function, and it functions off of a basic pattern of state -> event -> effects -> new state. `tudumvc` compliments this basic pattern by using the React.js front end to produce events, using Urbit to interpret those events and produce effects and a new state and returning the state to React.js to be displayed.
The back-end development required to host an app like `tudumvc` is minimal and straightfoward, as are the changes we have to make to the React.js + Hooks TodoMVC implementation. Further, Urbit's `%gall` applications are inherently capable of cross-integration, so it would be a relatively straightforward task to integrate the functionality of `tudumvc` into other Urbit apps, like "groups", or even just allow the app to network with other self-hosted instances of `tudumvc` on other ships in the Urbit universe.
If you want to know more about the advantages of building applications on Urbit, check out this [interview I've done w/ `~radbur-sivmus` and `~timluc-miptev`](#).
Over the course of this guide, we'll get `tudumvc` running on a test ship then investigate the code and learn how we might apply this to other existing applications, or build something from the ground up, on Urbit.
Let's start with creating a ship:
**Lesson 1**
[Preparing a Development Environment](./lesson1-the-bosun.md)
**NOTE:** If you're familiar with developing on Urbit generally, you can scan the above document and make sure you're all set up, then proceed to Lesson 2.
# Other Lessons:
**Lesson 2**
[TodoMVC on Urbit (sort of)](./lesson2-todomvc-on-urbit-sortof.md)
**Lesson 3**
[The `%gall` of that `agent`](./lesson3-the-gall-of-that-agent.md)
**Lesson 4**
[Updating Our Agent](./lesson4-updating-our-agent.md)
**Lesson 5**
[Establishing Uplink](./lesson5-establishing-uplink.md)
**Lesson 6**
[Things Tudu and People TuSee](./lesson6-things-tudu.md)
# Special Thanks
* `~radbur-sivmus`
* `~timluc-miptev`
* `~sarpen-laplux`
* `~tinnus-napbus`
* `~mister-todteg`and, as always, `~risruc-habteb`