All Projects → ecliptic → purescript-recompose-todomvc

ecliptic / purescript-recompose-todomvc

Licence: MIT License
TodoMVC <<< React <<< Recompose <<< Redux $ PureScript

Programming Languages

purescript
368 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to purescript-recompose-todomvc

react-native-tooltip-view
A deadly simple tooltip view that you can put whatever you want 🎉
Stars: ✭ 18 (-35.71%)
Mutual labels:  recompose
universal-progressive-todos
A Todo list with universal JavaScript & Progressive Enhancement
Stars: ✭ 30 (+7.14%)
Mutual labels:  todomvc
xilution-react-todomvc
An implementation of TodoMVC featuring AWS Serverless Application Model (SAM) and Xilution SaaS.
Stars: ✭ 24 (-14.29%)
Mutual labels:  todomvc
todomvc-nix
Example on how to nixify a project [maintainer=@Rizary]
Stars: ✭ 138 (+392.86%)
Mutual labels:  todomvc
todomvc-elmfire
TodoMVC+Firebase in Elm+ElmFire
Stars: ✭ 59 (+110.71%)
Mutual labels:  todomvc
nextjs-redux-instagram
🌏 The simple Instagram was written by next.js & redux-saga & recompose
Stars: ✭ 48 (+71.43%)
Mutual labels:  recompose
mvc-todo
A haskell implementation of todoMVC
Stars: ✭ 26 (-7.14%)
Mutual labels:  todomvc
react-compose-events
A Higher-Order Component factory to attach outside event listeners
Stars: ✭ 25 (-10.71%)
Mutual labels:  recompose
todomvc-kotlin
Todomvc written in full-stack Kotlin
Stars: ✭ 24 (-14.29%)
Mutual labels:  todomvc
redux-fusion
React bindings for RxJS and Redux
Stars: ✭ 29 (+3.57%)
Mutual labels:  recompose
firebase-ignite
Firebase PWA Boilerplate
Stars: ✭ 12 (-57.14%)
Mutual labels:  recompose
stimulus reflex todomvc
An implementation of TodoMVC using Ruby on Rails, StimulusJS, and StimulusReflex
Stars: ✭ 50 (+78.57%)
Mutual labels:  todomvc
todo-app-ngrx
TodoMV* - Angular + Redux (ngrx)
Stars: ✭ 42 (+50%)
Mutual labels:  todomvc
rgxp
Regular Expression Collection (ReactJS, Redux, React Router, Recompose, NodeJS, Express)
Stars: ✭ 62 (+121.43%)
Mutual labels:  recompose
symfony-angular-todomvc
An implementation of TodoMVC using AngularJS and Symfony REST Edition
Stars: ✭ 94 (+235.71%)
Mutual labels:  todomvc
react-native-smooth-pull-to-refresh
Custom pull to refresh component for React Native
Stars: ✭ 36 (+28.57%)
Mutual labels:  recompose
hacker-hiring-hunt
👨‍💻 Tool for searching through Hacker News whoshiring threads
Stars: ✭ 28 (+0%)
Mutual labels:  recompose
todomvc-svelte
TodoMVC built with Svelte and Store
Stars: ✭ 34 (+21.43%)
Mutual labels:  todomvc
workshop-todo-dapp
A workshop into adding realtime collaboration in a typical To-do app
Stars: ✭ 29 (+3.57%)
Mutual labels:  todomvc
redux-todomvc
A TodoMVC written with React, Redux and Immutable
Stars: ✭ 58 (+107.14%)
Mutual labels:  todomvc

TodoMVC <<< React <<< Redux <<< Recompose $ PureScript

build status recompose channel on discord

This is an implementation of TodoMVC using the following tools:

Try it live!

Online Demo

The production build is currently deployed via Github Pages. 😎

Why the heck did you …?

…use PureScript?

Front end development can be a stressful activity fraught with inscrutable bugs, race conditions, and endless production errors. PureScript gives you a sound, expressive type system heavily influenced by Haskell and similar to Elm. This gives developers the ability to eliminate runtime errors, take strict control of side effects, and take advantage of powerful functional abstractions.

…use Recompose?

Recompose is an extremely powerful functional toolkit for working with React components that makes heavy use of higher-order components. This makes it easier to work with React in a functional, composable way.

…not use purescript-redux?

I wanted to use Redux in a way that is more idiomatic to ML-style languages like PureScript. For example, I wanted to use algebraic data types to represent action types. I decided to take some influence from purescript-redux-utils and use the ADT constructor names to automatically derive the string for Redux’s “type” attribute on actions. This is why I created purescript-mini-redux.

…separate PureScript “Components” from JSX “Views”?

I prefer to structure my applications with a strict functional core and an imperative shell (as influenced by the Destroy all Software talk Boundaries). PureScript acts as the functional core with its sound type checking and well controlled side effects. JSX acts as the imperative shell wrapped around the core to provide the view layer for the Web. This makes it very easy to write views for other platforms like React Native that can share the core business logic and API integration.

Build it!

First, clone the repo:

$ git clone https://github.com/bkonkle/purescript-recompose-todomvc.git

Install dependencies:

$ npm install

Run locally:

$ npm start

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].