It's a pet project to learn ReasonML and Reason React. Currently, only benefit it may give to someone is to read code and learn a few ReasonML centric concepts which may not be found in docs.
- Usage of
contentEditable
instead of plaininput
field to edit todos was new and interesting, in fact its preferable once you realize the feature set that comes with it - Mutating HTML node via
innerHTML
anddangerouslySetInnerHTML
with reason types and all - Usage of
bs-webapi
to manipulate innerhHTML of an HTML element in Reason React - Usage of
bs-css
or css-in-js(emotion) solution in Reason React - Usage of HTML5 native drag and drop api for sorting todos
- Pattern matching, its just mind blowing how much simpler conditional flows become and how much ReasonML/Ocaml can infer to catch bugs
- Usage of strict type checking baked in language which makes state management easier and more error proof
- How natural React and Hooks API feels when you write them in a functional language
- How ridiculously-blazing-fast bucklescript is when compared with any other transpiler or compiler and yes it would be a disgrace to compare with babel
- CRUD operations for todo, duh!
- Mark a todo as done
- Text editing functionality with HTML5
contentEditable
API, works like Google Keep - Sort with Drag and Drop
- Store state in local storage
- Support login via Google
- Sync state with google sheets
- Convert to Progressive Web App
yarn install
yarn start
to run the bucklescript compileryarn server
to start the dev server to serve compiled.js
files