The future of navigation is here and it’s built in Reason

tl;dr

Today we are open sourcing our attempt at solving navigation problem in React Native.

It is called ReRoute and it’s written in Reason. It was built from the ground up based on our learnings working on React Navigation. It has a similar interface, but improves in many critical parts.

Amongst its many features, what stands out is:

  • a fully-typed interface that makes sure you never misspell a single prop again
  • native gestures by default so that you can keep doing your heavy Javascript work without worrying about swiping back and forth
  • native animations just in case you were worried about pushing screens onto the stack
  • no more static options so that changing your screen config (like Header buttons) based on the state of your component is now as easy as rendering different text
  • powerful and declarative animation API that allows you to override any screen inand out transitions

I hope that this is enough to get you excited about the library and to give it a go in your next project!

Happy coding!


That was a very quick introduction — now let me give you a backstory on why we decided to write “yet another” library and why I believe Reason is the perfect opportunity to improve JavaScript ecosystem in many ways.

Reason encourages the developers to think twice before writing any line of code — to carefully study the abstractions, end-user APIs and the business application of my code. Writing bindings to existing JavaScript libraries is a perfect opportunity for the original authors to take a step back and think of the choices they made back in the day.

And that’s what we did. Working on many projects over time, including React Navigation, we’ve observed what worked and what did not, studying the reactions of the community and the amount of issues that gathered over time.

Together with Mateusz Zatorski and Satyajit Sahoo, we always wanted to have an easy to use navigation that doesn’t need tons of documentation and is the React Router of native — a pioneer of many concepts that later, will become the de facto standard in the community.

We hope that the ideas we have presented within our library will inspire other developers to reflect on their libraries and, what’s even more important, provide an interesting inspiration for other navigation libraries to being improved in critical places such as API surface and performance.

At Callstack, it’s our mission to help developers and other companies to launch their products on many platforms at the same time. We believe Reason has this exciting opportunity to improve in many key areas we are struggling right now and become the leading language as far as cross-platform development.

It’s the beginning of a new journey and ReRoute is just the beginning.

Stay tuned!

No Comments