Awesome
Awesome ReasonML
A collection of awesome things regarding Reason/OCaml ecosystem. Inspired by the awesome list thing. Feel free to improve this list.
Reason
General Resources
Melange
- Homepage
- Melange documentation
- Melange Playground
- Reason Playground
- Reason package index
- Melange for React Devs
Starter Kits
- create-melange-app
- Melange Project template with opam
- Melange Project template with esy
- Example Project
- Reason Starter kit for Advent of Code
Tutorials
- Melange for React Devs
- An Invitation to ReasonML
- Armed with Reason - Target Raspberry PI
- Intro to Reason Compilation
- Exploring ReasonML
- Build Tic-Tac-Toe with ReasonML
- Get Started with Reason (Free Video Course)
- Build a Simon Game in ReasonReact
- Implement a chart layout algorithm in ReasonML
ReasonReact
- A First ReasonReact App for JS Developers
- A ReasonReact Tutorial
- Another ReasonReact Tutorial for Beginners
Talks
- 2024/03 - @dillon_mulroy - Frontrunners - Melange: The Next Frontier in Type-Safe Web Development
- 2023/08 - @davesnx - React Alicante - Server side rendering React natively with Reason
- 2019/09 - @flaviocorpa - LambdAle - What happens if you let the creator of React design a programming language
- 2019/08 - @jordwalke - ReasonConf US - React to the Future
- 2018/05 – @cristianoc – React Europe – ReasonReact and local state
- 2017/11 - @sgrove - Finding joy in programming
- 2017/10 - @bassjacob - Universal Reason
- 2017 06 – @bassjacob – Node.ninjas Sydney – Everything happens for a Reason
- 2017/05 – @chenglou – React Europe – Imperfection
- 2017/05 – @chenglou – React London – What's in a language?
- 2017/04 – @chenglou – React Conf – Taming the Meta Language
- 2016 Phil Holden - Reason slides
- 2016/11 - @sgrove - Age of Reason + slides
- 2016/11 - @ferakpeter - How to build your first Reason App/ - slides
- 2016 - Dawn of Reason - Sander Spies slides
- 2016/07 - @sgrove - From Unikernels to Databases to UIs: Truly full-stack apps in OCaml
Tools
- opam - OCaml Package Manager
- dune - Dune is a build system for OCaml projects. Using it, you can build executables, libraries, run tests, and much more
- Vite plugin - A Vite plugin for Melange
- reason-tools - Chrome/Firefox Reason extension
- RED - Native Reason/OCaml debugger
- type-o-rama - JS type systems interportability
Libraries
Standard Libs
- Belt - A stdlib shipped with Melange.
- Js - Bindings to several browser and Node JavaScript APIs
- tablecloth - An ergonomic, cross-platform, standard library for ReasonML and OCaml
- relude - FP-inspired prelude/standard library for ReasonML projects.
- Rationale - Ramda inspired library of helper functions for ReasonML
Web
- reason-react - React.js bindings
- promise - Light and type-safe binding to JS promises
- styled-ppx - Type-safe styled components for ReScript, Melange and native with type-safe CSS
- melange-fetch - Fetch bindings for Melange
JSON encoding and decoding
- melange-json - Compositional JSON encode/decode library for Melange
- ocaml-decoders - Elm-inspired decoders for Ocaml
- atd - Static types for JSON APIs
- bs-decode - Type-safe JSON decoding for ReasonML and OCaml (documentation site)
Server
- Dream - Tidy, feature-complete Web framework
- html_of_jsx - Render HTML with JSX
- server-reason-react - Server render Reason React components with OCaml natively
GraphQL
- reasonql - Type-safe and simple GraphQL client for ReasonML
- graphql_ppx - GraphQL PPX rewriter for Bucklescript/ReasonML written in ReasonML.
- melange-relay - Use Relay with ReasonML
Testing
- melange-fest - A minimal test framework for Melange using Node test runner
- melange-jest - Melange bindings for Jest
- melange-testing-library - Melange bindings for testing-library (dom-testing-library and react-testing-library)
Editor Plugins
See the official guide here
- vscode-ocaml-platform - Visual Studio Code extension for ReasonML and OCaml
- ocaml-lsp - OCaml Language Server Protocol implementation
Example Apps
- Reason Catstagram - A Catstagram built with Reason and React hooks!
- ReasonReact example - ReasonReact examples
- ReasonReact Hacker News - Hacker News written in Reason
- Mareo - Online Mario game demo drawn on canvas
- Reason Maze - Amazing online maze generation
- ReLayout - Standalone CSS Flexbox Implementation in Reason
- Red - Simple to use pomodoro webapp
- Si - A 3D connect four game
- 99.re - Solutions to 99 problems implemented in Reason
- Gravitron - A game about gravity on iOS/Android/Browser
- Reason Game of Life - Conway's Game of Life written in Reason using ReasonReact. (demo)
- 2048 Reasons - A functional implementation of the viral 2048 game in Reason using ReasonReact. (demo)
- ReasonML RealWorld example app - Medium.com clone written using ReasonReact
- ReasonML RealWorld example app #2 - Another Medium.com clone written using ReasonReact
- re:bench - Benchmarking playground built with ReasonReact. A real app in real use.
- TicTacToe ReasonML engine - Minimax Tic-Tac-Toe implementation in ReasonML
- reason-chess - Chess engine for multiple platforms and web example chess game. (demo)
- Repos - Fetches Github repos by username
- Re-Memory - Memory game in ReasonReact
- Another memory cards game - Memory cards game with GIFs (demo)
- Reason Reversi Game - Reversi Game in ReasonReact
- Snake - Snake game in ReasonReact (demo)
- ReasonML CRUD example - RealWorld CRUD entity example
- Dokusho - CRUD example with authentication, react toolbox, and CI.
- A* pathfinder maze - A* search algorithm written in ReasonML (demo)
- Reatris: ReasonReact tetris - Classic tetris game written on ReasonReact (demo)
- ReasonSplash - Unsplash mobile client in Reason
- Simple Calculator - It's another calculator written on ReasonReact (demo)
- Bouken - ASCII rogue written using ReasonReact. (demo)
- Simon Game - The handheld Simon game written in ReasonReact
- We Write - the App utilizes Github API as the backend, so non-tech writers could collaborate
- Coronate - A Swiss-style chess tournament manager for the web and desktop, written with ReasonReact. (web demo)
- Pomodoro - A pomodoro webapp written in ReasonReact, using webpack, and fully tested with bs-react-testing-library and reason-hooks-testing-library. (demo)
Contribution
Your contributions and suggestions are heartily♡ welcome. (✿◠‿◠)