HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
revery-ui
revery
Reason2019–2022
revery-ui / revery

revery

:zap: Native, high-performance, cross-platform desktop apps - built with Reason!

35Distinct people
44Mentions
0Explicit recommenders
8KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

:zap: Native, high-performance, cross-platform desktop apps - built with Reason!

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year44 dated mentions

Observed mentions: 2019-01-22 17:10:49 UTC to 2022-08-15 13:52:21 UTC.

01020302019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 30 mentions; 3 submissions, 27 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2022

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC30327
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC707
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC505
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC211

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Build native, high-performance, cross-platform desktop apps with reason! 🚧 NOTE: Revery is a work-in-progress and in active development! 🚧 To get a taste of Revery, check out our JavaScript + WebGL build on the playground. For the best experience, though, you'll want to try a native build. Motivation Today, Electron is one of the most popular tools for building desktop apps - using an HTML, JS, CSS stack. However, it has a heavy footprint in terms of both RAM and CPU - essentially packing an entire browser into the app. Even with that tradeoff, it has a lot of great aspects - it's the quickest way to build a cross-platform app & it provides a great development experience - as can be testified by its usage in popular apps like VSCode, Discord, and Slack. Revery is kind of like super-fast, native code Electron - with bundled React-like/Redux-like libraries and a fast build system - all ready to go! Revery is built with reasonml, which is a javascript-like syntax on top of OCaml This means that the language is accessible to JS developers. Your apps are compiled to native code with the Reason / OCaml toolchain - with instant startup and performance comparable to native C code. Revery features platform-accelerated, GPU-accelerated rendering. The compiler itself is fast, too! Revery is an experiment - can we provide a great developer experience and help teams be productive, without making sacrifices on performance? Design Decisions Consistent cross-platform behavior A major value prop of Electron is that you can build for all platforms at once. You have great confidence as a developer that your app will look and work the same across different platforms. Revery is the same - aside from platform-specific behavior, if your app looks or behaves differently on another platform, that's a bug! As a consequence, Revery is like flutter in that it does not use native widgets. This means more work for us, but also that we have more predictable functionality cross-platform! NOTE: If you're looking for something that does leverage native widgets, check out briskml. Another alternative is the cuite OCaml binding for Qt. High performance Performance should be at the forefront, and not a compromise - we need to develop and build benchmarks that help ensure top-notch performance and start-up time. Type-safe, functional code We might have some dirty mutable objects for performance - but our high-level API should be purely functional. You should be able to follow the React model of modelling your UI as a pure function of application state -> UI. Getting Started Check out revery-quick-start to get up and running with your own Revery app! Try out our interactive playground Read through our docs Contributing We'd love your help, and welcome PRs and contributions. Some ideas for getting started: Build and run Revery View our Roadmap Help us improve our documentation Help us build examples Help us fix bugs and build features Help us log bugs and open issues Support the project on OpenCollective Follow us on Twitter or chat with us on Discord! License Revery is provided under the MIT License. Revery bundles several dependencies under their own license terms - please refer to ThirdPartyLicenses.txt. Contributors Thanks to everyone who has contributed to Revery! Backers Thank you to all our backers! 🙏 [Become a backer] Built with Revery Special Thanks revery would not be possible without a bunch of cool tech: ocaml made these tools possible - thanks Inria & OCaml Labs! reasonml made revery possible - thanks @jordwalke! flex by @jordwalke briskml brisk-reconciler - the "native React" implementation. reason-sdl2 SDL2 stb-image reason-fontkit freetype2 harfbuzz reason-gl-matrix gl-matrix glm @reason-native/console revery was inspired by some awesome projects: react-native ReactMini cuite wall elm reprocessing Hot reload We don't have a Hot Reload yet but it is on our roadmap. In the meantime, you can check branch feat/hot-reload to see the progression. In the meantime @mbernat has done a script that allow to relaunch the APP when the binary changed.
Read the full README on GitHub

What Hacker News says

44 sources
I never tried CoffeeScript since nobody pays me for it, though I am curious about ReasonML as an alternative, there's a Neovim front-end[0] coded in Reason that compiles natively[1], and supports existing VS Code plugins from the VSCodium plugin repository[2] which I still have yet to look at how the heck they pulled that bit off, but it is pretty interesting. My thinking is, not only can I do amazing front-end stuff on the web, but I can do front-end GUI applications that aren't reliant on Electron thanks to OCaml magic. [0]: https://github.com/onivim/oni2#introduction [1]: https://github.com/revery-ui/revery [2]: https://open-vsx.org/
In HypeScript: Simplified TypeScript type system in TypeScript's own type system
I've been writing a lot for Reason and OCaml last few years, but the majority of it target BuckleScript and React. My front-end bias alone means it's a better stack than any other alternatives mentioned in this thread (and I even find it more productive than TypeScript), so take it with a grain of salt. I do use ocaml-graphql-server and such a lot to write small services, but I often don't interact with databases or build complex backends that would require a bigger back-end webdev ecosystem. Most of my native development happens far from the cloud, and mostly around CLI and GUI tools for which I adore OCaml and recently Reason (https://github.com/revery-ui/revery). > cumbersome types, typeclasses, lack of type annotations sometimes hurts I've grown to really like the explicitness of OCaml actually. Nothing implicit or circular, and I can
Read the rest
just read a module from top to bottom. The lack of type annotations don't bother me as much with tools such as Merlin, and I find that the amazing type inference lets me prototype code as fast as dynamic languages. > - what are the current reasonable options for a StdLib? Last I checked, the default lib was still very poor, while JaneStreet's I found barely documented. I use Containers (https://github.com/c-cube/ocaml-containers/), Lwt, and a few other small libraries like Rresult and Bos pretty heavily. For a big application with many contributors I'd still suggest giving Core another try as it's very well thought out and extensive (compared to npm-style dozens of dependencies you need to introduce with different API designs). I must say that even though I'm pretty used to reading type signatures and jumping to interface files for documentation (and even prefer it to tutorial style docs in markdown), and wouldn't say Core's documentation is _poor_, I agree with you at some level. Because of how it's built and split up across different packages and modules, it gets pretty tiring having to power through many levels of indirection every time you want to look something up. > - Multicore I guess I can forgive, it's not like there are any other modern GC languages that make multi-threading particularly easy (with the possible exception of Java). I find that, compared to some other languages I've used, my naive and readable implementation in OCaml last much longer before I need to optimize it. I do use Lwt_preemptive threads that call C code and subprocesses often, but usually because of the nature of the problem I'm solving and not as a parallelization technique. > - What's an example of a recent codebase written in "modern" OCaml / Reason? Most open source projects I can think of are libraries and tools such as compilers, but here are some real-world applications off the top of my head: - https://github.com/onivim/oni2 (native, desktop) - https://github.com/SVdotCO/pupilfirst (bucklescript, react) - https://github.com/Schniz/fnm (native, CLI) Some of the cool stuff I saw in the wild: https://github.com/osener?language=reason&tab=stars https://github.com/osener?language=ocaml&tab=stars Hope this helps! I think with the recent convergence around tools such as dune, opam, esy, it is a great time to start writing OCaml again.
In Restack: Full-Stack ReasonML
ReasonML is also a strong contender. Facebook's Messenger website is written in ReasonML [0] and compiling ReasonML for server work is pretty good. You can share a lot between the two codebases. People even write desktop applications using it, checkout Revery [1]. The applications that it produces are so fast, they are a delight to use. It's also very compatible with OCaml so you can get advantages from that ecosystem as well. [0] https://twitter.com/jordwalke/status/1177373197517221888?s=2... [1] https://github.com/revery-ui/revery
In IBM Stops Server Side Swift Framework Development

Showing the 15 most recent of 44 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.