HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
meta
flow
Rust2014–2026
meta / flow

flow

Adds static typing to JavaScript to improve developer productivity and code quality.

55Distinct people
64Mentions
1Explicit recommenders
22.3KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Adds static typing to JavaScript to improve developer productivity and code quality.

GitHub

Where it is used

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

What people are saying

I'm using Flow but I'd recommend TypeScript. I love Flow but TypeScript just seems to be more seriously maintained and less buggy. I've been waiting some bug fixes for 2 years…

ggregoire used a recommendation phrase. 2 indexed comments match. This is a phrase match, not a verdict.

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 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 2:59:53 AM 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 year64 dated mentions

Observed mentions: 2014-11-18 18:29:48 UTC to 2026-06-07 04:00:52 UTC.

0510152014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments20142015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 13 mentions; 0 submissions, 13 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 11 mentions; 1 submissions, 10 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 10 mentions; 2 submissions, 8 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 9 mentions; 0 submissions, 9 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 2 mentions; 2 submissions, 0 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

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
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC505
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC13013
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC11110
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC1028
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC909
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC606
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC101
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC101
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC000
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC202
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC202
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC211
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC220

From the project README

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

Read the project’s introduction
Flow Flow is a static typechecker for JavaScript. To find out more about Flow, check out flow.org. Contents Requirements Using Flow Using Flow's parser from JavaScript Building Flow from source Join the Flow community License Requirements Flow works with: macOS (arm64) Linux (x86_64 and arm64) Windows (x86_64, Windows 10 recommended) There are binary distributions for each of these platforms and you can also build it from source on any of them as well. Using Flow Check out the installation instructions, and then the usage docs. Using Flow's parser from JavaScript Flow's parser is available as a compiled-to-JavaScript module published to npm, named flow-parser. Most end users of Flow will not need to use this parser directly, but JavaScript packages which make use of parsing Flow-typed JavaScript can use this to generate Flow's syntax tree with annotated types attached. Building Flow from source Flow is written in Rust. GitHub CI builds Flow from the rust_port workspace with nightly Rust. Install system dependencies: Install Rust via rustup. Install the nightly Rust toolchain: rustup toolchain install nightly Build the Rust workspace: cd rust_port cargo +nightly build Run the Rust tests: cargo +nightly test Build an optimized flow binary: cargo +nightly build --release --bin flow_cli Build flow.js (optional): The flow.js build also uses the Rust port. Install Emscripten, Node, Yarn, and a Rust nightly toolchain with the wasm32-unknown-emscripten target and rust-src component first. GitHub CI uses Emscripten 3.1.44 and nightly Rust for this build. rustup toolchain install nightly-2026-04-14 --target wasm32-unknown-emscripten --component rust-src RUSTUP_TOOLCHAIN=nightly-2026-04-14 make js FLOW_JS_IMPL=rust-wasm This produces bin/flow.js. To build a faster, larger local development version instead, run: RUSTUP_TOOLCHAIN=nightly-2026-04-14 make js FLOW_JS_IMPL=rust-wasm FLOW_DOT_JS_WASM_PROFILE=dev The Flow parser can also be compiled to JavaScript. Read how here. Running the tests See tests/README.md for detailed testing documentation. Join the Flow community Website: https://flow.org Discord: https://discord.gg/8ezwRUK irc: #flowtype on Freenode Twitter: follow @flowtype and #flowtype to keep up with the latest Flow news. Stack Overflow: Ask a question with the flowtype tag License Flow is MIT-licensed (LICENSE). The website and documentation are licensed under the Creative Commons Attribution 4.0 license (website/LICENSE-DOCUMENTATION).
Read the full README on GitHub

What Hacker News says

10 sources
In Relicensing React, Jest, Flow, and Immutable.js
Let me add a few cons then - Saying the error messages are "not intuitive" is a bit of an understatement. Most memorably, this was an actual message I was presented with after upgrading to Flow v0.53 - https://imgur.com/UseQxEz.png - Flow's goal appears to be ensuring correctness rather than being useful. Object.value produces an array of mixed, effectively erasing their type (https://github.com/facebook/flow/issues/2174). document.body is a Maybe (https://github.com/facebook/flow/issues/4783). All use of getters and setters are marked as unsafe, with no way to selectively opt in or out (https://github.com/facebook/flow/issues/2826). These are pedantic to the point of uselessness. - When a function call's parameter type disagrees with the function signature, Flow flips a coin and marks one of them as incorrect. GitHub issue from Oct 2016
Read the rest
- https://github.com/facebook/flow/issues/2587 (issue is closed because they're 'working on it', not because it's actually resolved) - Flow's libdef is a fraction of TypeScript's. I frequently convert TypeScript libdefs to Flow libdefs. I have yet to see a library that has Flow libdef but not TypeScript libdefs.
In Flow and TypeScript
A much more typical experience is to do those 2 steps, and then spend a bunch of time digging through github issues to find the right ignore/suppression incantations to add to your .flowconfig so that your dependencies (including all their transitive deps...) don't break your typechecking. Admittedly this gets easier once you've done it before and know a few reference .flowconfigs to copy/paste like React[1] or babel[2], etc. But this shouldn't be necessary at all. It's been an open issue for 2 years [3]. Less important, but you also have to add /* @flow */ to the top of every single source file. Sure its handy sometimes for existing projects, but it makes little sense for new ones and has also been an issue for years[4]. [1]: https://github.com/facebook/react/blob/65b9ad94aaf62eb61b7b3... [2]: https://github.com/babel/babel/blob/634c7505
Read the rest
In Flow and TypeScript
>or know of any large cleany written codebases from which to study? * unison (a great file sync tool for win/posix from Benjamin Pierce, the author of Software foundations and TAPL) https://github.com/bcpierce00/unison * mirage (which also has a bunch of interesting subprojects, like irmin) https://github.com/mirage * coq https://github.com/coq/coq * flow https://github.com/facebook/flow * CompCert https://github.com/AbsInt/CompCert * frama-c https://github.com/Frama-C * 0install https://github.com/0install/0install
In A deep dive into Multicore OCaml garbage collector
I did an experiment about a year ago when I re-wrote part of LiveScript's code emitter to produce a babel-compatible AST rather than javascript code. It would then pipe the AST to babel's generator and produce the final JavaScript. The benefit was that I could then use any babel-compatible toolset and still write code in LiveScript. ESLint worked with almost no tweaks necessary. Theoretically, you could also use Flow and TypeScript with this approach. Anyway, I didn't have enough time to finish the project, but somebody took the idea and did most of the work [0]. [0] https://github.com/dk00/livescript-next Would love to explain more, but have to board the plain now :) These links might help: https://github.com/gkz/LiveScript/issues/821 https://github.com/facebook/flow/issues/1515
In Show HN: Decaffeinate converts CoffeeScript projects to modern JS

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.