JS Native Development with Reason
👨‍💻
React · React Reconciler · React DOM Lite · Prepack · Reason/OCaml
Currently working on ways to improve DX
Always bet on JS
... until one day I couldn't
VM Warm up could not be tolerated anymore!
  • 👽 A language that is not alien to the JS developer
  • ❌ A way to prevent segfaults ahead of time
  • 🤝 Great C Interop
											
												/* Main.re */
												type slide = {
													media: string,
													start: float,
													duration: float,
													inpoint: float,
													text: string,
												};
											
												let pipelineID = Vendor.init();
		
												let cur = ref(0);
												List.iter(slide => {
													Vendor.add_media(
														pipelineID,
														slide,
														cur^
													);
													cur := cur^ + 1;
												}, slides)
											
												Vendor.render(pipelineID, Sys.argv[1]);												
										
								
										
											// package.json
											{
												"name": "esy-foo",
												"version": "0.1.0",
												"esy": {
												  "build": "dune build -p #{self.name}",
												},
												"buildDirs": {
													"bin": {
														"imports": [
														  "Vendor = require('vendor')"
														],
														"bin": {
														  "EsyFooApp.exe": "EsyFooApp.re"
														}
													}
												},
												"dependencies": {
													"vendor": "^1.2.3"
												}
											}
										
									
What is Reason?
Bringing a sound type system to the JS community
Giving the JS community a language to apply the same concepts of React outside the browser
Why does Reason matter to React?

Rewinding...DOM as second class citizen in React

ReveryUI = React outside the browser

The unguessable benefactor of React - package management!

Reason in the real world?

  • SAP, India
  • Hasura
  • Protoship

What's next?

Thank you :)

@ManasJayanth