Edition No. 17 · 11 Sep 2026
Two of today's twelve have no licence file at all

Two projects in this edition carry no licence file on GitHub.
Refreshed on 17 October 2026. The repositories are the ones first published; any that are no longer maintained are left out.
Two projects in this edition carry no licence file on GitHub. Both publish their package on npm with the word MIT on it. The gap is small and easy to miss, and it decides what anyone is allowed to do with the code. Both are still in the edition, because a licence is a warning to read, never a reason to hide a good project. The other ten cover spell checking, broken links, a Postgres database that needs no server, document conversion, newsletters and two tools for testing a trading idea.
We aim for twelve every day. Some candidates fall out while we check them — those are listed at the end, with the reason.
All twelve were opened again on 17 October 2026. All twelve are alive. None is archived, and none has gone eighteen months without new code, so nothing was dropped from this refresh. Every star count, licence and version below is the one read on that day.
If you only do three things
- crate-ci/typos (#1) — five minutes, one command, nothing left running. It reads code and documents and finds real spelling mistakes. It is built to be quiet, so it does not produce a long list of false alarms. Run it once over a whole codebase today.
- lycheeverse/lychee (#2) — ten minutes. It opens every link on a site and reports the broken ones. Dead links cost readers and they cost search ranking. This is the cheapest fix on the page.
- electric-sql/pglite (#4) — an hour or two, and it changes how tests are written. It is a real PostgreSQL database that runs inside a program. No server, no Docker, no port. Each test gets a fresh clean database in a fraction of a second. ---
Every link in one place
| # | Repository | Website | Stars | Licence |
|---|---|---|---|---|
| 1 | crate-ci/typos | no separate website | 4.2k | MIT or Apache-2.0 |
| 2 | lycheeverse/lychee | lychee.cli.rs | 3.9k | Apache-2.0 or MIT |
| 3 | biomejs/biome | biomejs.dev | 25.9k | MIT or Apache-2.0 |
| 4 | electric-sql/pglite | pglite.dev | 15.7k | Apache-2.0 |
| 5 | usebruno/bruno | usebruno.com | 46.7k | MIT |
| 6 | gotenberg/gotenberg | gotenberg.dev | 13.2k | MIT |
| 7 | delucis/astro-og-canvas 💎 | no website listed | 279 | none on GitHub; MIT on npm |
| 8 | opral/inlang 💎 | inlang.com | 2.0k | none on GitHub; MIT on npm |
| 9 | pentacent/keila 💎 | keila.io | 2.2k | AGPL-3.0 |
| 10 | MinishLab/semhash 💎 | minish.ai | 966 | MIT |
| 11 | nautechsystems/nautilus_trader | nautilustrader.io | 30.2k | LGPL-3.0 |
| 12 | stefan-jansen/alphalens-reloaded 💎 | alphalens.ml4trading.io | 654 | Apache-2.0 |
Two of today's twelve have no licence file at all
Twelve repositories, checked and reviewed. Every version verified against the GitHub API and dated.

4.1k stars · Apache-2.0 · v1.50.1 (2026-09-01) · Track this in Scout · Share this tool
Fast source-code spell checker with low false positives — designed to run on every commit.
▶Repo detailsthe review · specs · pros & cons · install
What it does
It scans a folder and reports misspelled words. It reads program code, comments, commit messages, documentation and plain text. It was built for large projects, so one pass over a big codebase takes seconds rather than minutes. The word list was tuned to keep false alarms very low, which is the reason people keep it switched on. With the --write-changes flag it corrects what it found instead of only listing it. It runs as a command, and the same binary runs in an automated check. Version 1.51.1 arrived on 6 October 2026, and code landed on the same day. It only knows English words, and it cannot tell you that a correctly spelled word is the wrong word.
Why it matters
Who it suits. Anybody who writes both code and prose. Spelling mistakes hide inside variable names, comments and documentation, and nobody reads those closely enough to catch them. It earns the most where English is not the writer's first language, because a second pair of eyes costs nothing here. Skip it if the text is mostly in another language, because every non-English word will be reported as wrong.
Verdict. Worth five minutes today, and then you never think about it again. The risk is close to zero: it changes nothing until you pass a flag, and the list it prints is short enough to read. Use codespell-project/codespell instead if you want the same job done by a Python tool, and streetsidesoftware/cspell if you need a spell checker with dictionaries for many languages.
- One command, with no configuration needed to start.
- Very few false alarms, which is why people leave it switched on.
- It can correct the mistakes it found with a single flag.
- Installing from source needs Rust, the programming language it is written in, which you install once with a script from rust-lang.org. On a Mac, Homebrew is easier.
- It only knows English words, so files in another language will be full of reported mistakes.
- It cannot catch a correct word used wrongly. "Form" and "from" are both real words.
# macOS, easiest: brew install typos-cli # Anywhere, with Rust installed: cargo install typos-cli # Then, inside a project folder: typos # list what it found typos --write-changes # correct them

3.9k stars · Apache-2.0 · lychee-v0.24.2 (2026-05-01) · Track this in Scout · Share this tool
Fast link checker in Rust — ideal for CI on every deploy, including links inside Markdown docs.
▶Repo detailsthe review · specs · pros & cons · install
What it does
It finds the links in whatever you point it at and requests each one. It reads websites, Markdown files, HTML files, reStructuredText and plain text, and it checks email addresses as well. It makes many requests at the same time, so a large site takes minutes rather than hours. It can be told to ignore certain addresses, to accept certain error codes, and to retry. It runs as a command and also as a prepared Docker image, so Rust is not required. Version 0.24.2 is the newest release, from 1 May 2026, and code landed on 14 September 2026. It reports broken links; it does not repair them and it does not rewrite the pages.
Why it matters
Who it suits. Anybody who publishes pages. Broken links annoy readers, and search engines treat them as a sign that a site is not looked after. Running this weekly, or on every deploy, turns slow rot into a short list. Skip it if the site is a handful of pages that never change, because a manual check is faster than setting up a tool.
Verdict. Worth the ten minutes, with one caveat to plan for. Some sites block automated visitors, so a first run on a large site returns false alarms that have to be judged and then added to an ignore list. Budget an hour for that once, not every week. Use tcort/markdown-link-check if the only thing you need checked is Markdown.
- It checks a whole site rather than one page at a time.
- It understands Markdown, so documentation can be checked before it is published.
- Fast, because it checks many links at the same time.
- Some websites refuse automated visitors and answer with an error even though the link is fine. Expect false alarms on the first run.
- Checking a large site makes many requests quickly, which can get an address temporarily blocked by a service that is linked to often.
- Installing from source needs Rust. Docker, a way to run a program inside its own sealed box so it cannot touch anything else on the machine, avoids that.
# macOS: brew install lychee # With Docker, no installation at all: docker run --init -it -v "$(pwd)":/input lycheeverse/lychee /input/README.md # Check a live site: lychee --verbose https://example.com

26k stars · MIT or Apache-2.0 · @biomejs/biome@2.5.15 (2026-09-30) · Track this in Scout · Share this tool
One fast tool that both formats and checks JavaScript, TypeScript, CSS and JSON.
▶Repo detailsthe review · specs · pros & cons · install
What it does
It formats code to a consistent layout, and it lints it, which means pointing at patterns that are likely to be bugs. It covers JavaScript, TypeScript, JSX, JSON, CSS and GraphQL. It is written in Rust and runs fast enough to be bound to the save key in an editor. One file, biome.json, holds every setting, and biome migrate reads an existing Prettier or ESLint configuration and converts it. It works from the command line and through the editor protocol that most editors speak. Version 2.5.15 was published on 30 September 2026, and code landed on 11 October 2026. Markdown and HTML are not covered to the same depth as the languages above, so a second formatter may still be needed for those.
Why it matters
Who it suits. Any project in TypeScript or JavaScript that currently carries Prettier for formatting and ESLint for checking. That is two tools with two configurations that disagree with each other at the edges. This is one tool with one configuration, and it is fast enough to stop being noticeable. Skip it if the project leans on ESLint rules that need full type information, because the equivalents are not all here yet.
Verdict. Worth the switch for most web projects, and the migration commands make it close to painless. One thing to plan: adopting it reformats a great many files at once, so do that on its own branch and in its own commit, never mixed with real work. oxc-project/oxc is the other fast Rust toolchain in this space and is worth watching; prettier/prettier remains the safer choice if broad format coverage matters more than speed.
- One tool and one settings file instead of two that argue.
- Fast enough to run on every file save without waiting.
- It converts existing Prettier and ESLint settings automatically.
- It does not cover every language to the same depth. Markdown and HTML support is still growing.
- Some ESLint rules that depend on type information have no equal here yet. Check the list before switching.
- Adopting it in an existing project reformats many files at once, which makes one enormous commit.
npm install --save-dev --save-exact @biomejs/biome npx biome init # writes biome.json npx biome check --write ./src # format and fix in one pass # Coming from Prettier or ESLint: npx biome migrate prettier --write npx biome migrate eslint --write

16.2k stars · Apache-2.0 · @electric-sql/pglite-pgmq@0.0.8 (2026-10-14) · Track this in Scout · Share this tool
PostgreSQL compiled so it runs inside a JavaScript program or inside a web page.
▶Repo detailsthe review · specs · pros & cons · install
What it does
It is the real PostgreSQL engine, built as WebAssembly, a format that lets a program written in another language run inside JavaScript. It runs in Node.js, in Bun, in Deno and in a browser tab. Data can stay in memory, or be written to a folder on disk, or be kept in the browser's own storage. It supports a growing list of Postgres extensions, pgvector for similarity search among them. Version 0.5.10 is the current npm release, and code landed on 28 July 2026; a companion package in the same repository was released on 14 October 2026. It handles one connection at a time, so it is not a replacement for a production database server.
Why it matters
Who it suits. Two groups, and both cases are real. First, anybody whose tests need a database: each test gets its own empty database in milliseconds, and no test can leave dirt behind for the next one. Second, anybody building a demonstration that should work with no account and no backend, because the whole thing can run in the visitor's browser. Skip it if the plan is to serve many users at once, because that is not what it is.
Verdict. The best hour or two you can spend on a test suite that currently starts a database container. Two things to watch: the browser build downloads a few megabytes of WebAssembly on the first visit, and it is driven from JavaScript or TypeScript, so a Python service cannot call it directly. duckdb/duckdb-wasm is the equivalent for analytical queries, and sqlite/sqlite-wasm is the lighter choice when the SQL does not have to be Postgres SQL.
- A fresh database in milliseconds, so tests stop sharing state.
- It is real PostgreSQL, not an imitation, so the same SQL works in production.
- It supports extensions, including pgvector for similarity search.
- One connection at a time. This does not replace a production server.
- The browser build downloads a few megabytes of WebAssembly on first visit. Plan for that on a slow connection.
- It is driven from JavaScript or TypeScript, so a Python service cannot use it directly.
npm install @electric-sql/pglite

47.7k stars · MIT · v4.2.1 (2026-09-30) · Track this in Scout · Share this tool
A desktop app for testing an API, with the requests saved as files in the repository.
▶Repo detailsthe review · specs · pros & cons · install
What it does
It sends HTTP requests and shows the response, in the same family of tools as Postman and Insomnia. Each request is stored as a small text file in a folder you choose, in a format the project calls Bru. Collections, environments and variables are all files, so they can be reviewed and merged like code. A command-line runner, bru, replays the same collection in an automated check. It needs no account and no sign-in, and it works with no internet connection. Version 4.2.1 was released on 30 September 2026, and code landed on 2 September 2026. It is a desktop application with a command-line companion; there is no hosted version to open in a browser.
Why it matters
Who it suits. Anybody building a web service who wants the saved requests to be part of the repository rather than part of someone else's cloud account. Those files become documentation that cannot go stale, because they change in the same commit as the code. Two people reading the same repository see the same requests. Skip it if what you actually need is shared team workspaces and cloud history, because that is the shape of tool this deliberately is not.
Verdict. Worth an hour, and the payoff is mostly in review: a change to an endpoint and the request that exercises it arrive together. Two things to watch: some Postman collections do not import cleanly and need editing by hand, and every machine needs the app installed. hoppscotch/hoppscotch is the option to look at if a browser-based client suits better, and Orange-OpenSource/hurl if the requests only ever need to run in an automated check.
- Requests live in git, so who changed what and when is visible.
- No account and no sign-in. It works offline.
- A command-line runner means the same requests can guard a deploy.
- Shared workspaces and cloud history are not the point here. A team that needs those will find it thin.
- Some Postman collections do not import cleanly and need editing by hand.
- It is a desktop application, so every machine needs it installed. There is no web version.
# Desktop app: download from https://www.usebruno.com/downloads # macOS: brew install bruno # Command-line runner, for automated checks: npm install -g @usebruno/cli cd my-api-collection bru run --env local

13.3k stars · MIT · v8.38.1 (2026-10-15) · Track this in Scout · Share this tool
One service that converts HTML, Markdown, Word and spreadsheet files into PDF.
▶Repo detailsthe review · specs · pros & cons · install
What it does
It runs as a Docker image that exposes a small set of web addresses you post files to. Inside it are Chromium, the browser engine that lays out HTML, and LibreOffice, which reads Word and spreadsheet files. It converts a live URL, an uploaded HTML page, Markdown, and the common office formats. It also merges PDFs, reads their metadata and flattens them. Version 8.38.1 was released on 15 October 2026, and code landed on 5 October 2026. It is a converter and nothing else: it stores no documents, has no interface for a person to click, and must not be exposed to the open internet without protection, because anything that can send it a page can make the machine fetch things on its behalf.
Why it matters
Who it suits. Anybody who has to produce a PDF that looks right. Invoices, reports, certificates, contracts and exported documents all end up needing one. Writing the page in HTML and CSS and letting a real browser print it gives a far better result than assembling a PDF box by box in code. Skip it if one PDF a month is needed, because a plain library inside the application will be less to run.
Verdict. The right answer for an "export this as a PDF" button, and the single best hour in this section if that button is on the list. The cost is honest: one more service to run and watch, and about 1 GB of memory, more when several conversions run at once. puppeteer/puppeteer is the lower-level alternative if you would rather drive a browser yourself, and Stirling-Tools/Stirling-PDF is the one to run when people, not programs, need to work with PDFs.
- It uses a real browser to lay out the page, so CSS, web fonts and page breaks behave.
- One service covers HTML, Markdown, Word, spreadsheets and merging PDFs.
- It behaves the same in development and in production, because it is the same container.
- It is another service to run and watch. One more thing that can be down.
- Chromium is hungry. Give it about 1 GB of memory, and more if several conversions run at once.
- It must never face the open internet unprotected, because anything that can reach it can make it fetch pages.
# Start it: docker run --rm -p 3000:3000 gotenberg/gotenberg:8 # Convert a live page to PDF: curl --request POST http://localhost:3000/forms/chromium/convert/url \ --form url=https://example.com \ -o out.pdf # Convert a Word file: curl --request POST http://localhost:3000/forms/libreoffice/convert \ --form files=@report.docx \ -o report.pdf

279 stars · not shown on the GitHub page · astro-og-canvas@0.13.1 (2026-09-01) · Track this in Scout · Share this tool
Generates OpenGraph preview images for every page of an Astro site automatically.
▶Repo detailsthe review · specs · pros & cons · install
What it does
It is a small package for Astro, a website framework aimed at content-heavy sites. It generates one image per page when the site is built. You give it a background, a font, a logo and a set of colours, and it lays out the page title and description inside the standard 1200 by 630 frame. The pages it draws for are listed in one route file. Drawing is done by canvaskit-wasm, a drawing engine of several megabytes that is pulled in at build time only. Version 0.13.1 is the current npm release. It works with Astro and nothing else, and it draws from text you supply, so it cannot invent artwork or photographs.
Why it matters
Who it suits. Anybody publishing many pages on Astro who wants each shared link to look deliberate. A blog with eighty posts needs eighty preview images, and nobody draws eighty images by hand. Skip it entirely if the site is not built with Astro, because there is no way to use it.
Verdict. Worth twenty minutes on an Astro site, with one real reservation. The repository carries no licence file at all, and the npm package declares MIT. No licence means no permission by default, so the npm declaration is what anyone relying on it is relying on. The risk looks low, and the author is a well-known Astro maintainer, but the gap is worth knowing about before building something commercial on it. vercel/satori is the framework-independent way to do the same job.
- One small route file gives every page its own preview image.
- The images are drawn when the site is built, so nothing runs at request time and nothing costs money per view.
- The background, font, logo and colours are all configurable.
- No licence file in the repository. The npm package says MIT, and that mismatch is unresolved.
- Astro only. A site built on anything else cannot use it.
- It pulls in canvaskit-wasm, several megabytes of drawing engine, which makes builds slower. Visitors are not affected.
npm install astro-og-canvas canvaskit-wasm

2k stars · not shown on the GitHub page · no GitHub releases; 14,304 commits on main; paraglide-js v2.1.0 on npm (~54k weekly downloads) · Track this in Scout · Share this tool
Compiler-based i18n (Paraglide JS) plus a web editor — the no-server alternative to Tolgee.
▶Repo detailsthe review · specs · pros & cons · install
What it does
It is a set of tools around one shared file format for translations. The best known part is Paraglide JS, which reads the translation files and writes a small typed function for each message. Because the messages become code, a missing translation becomes a build error rather than a blank space on a page, and only the language in use is sent to the browser. There is also a web editor, so a translator never has to open a code editor. Paraglide JS 2.27.0 is the current npm release, declared MIT, and code landed on 14 October 2026. The project publishes no tagged releases on GitHub at all, so the npm package is the place to watch; a missing release is a publishing habit and not a sign of trouble. It handles the message files and the code they become; it does not translate anything for itself.
Why it matters
Who it suits. Anybody running a site in two or more languages who cares what the page weighs. A site published in two languages faces exactly this split, and the compiled approach keeps the two versions honest. Skip it if the site has a dozen strings, because a plain object in the code will do the same job with nothing to learn.
Verdict. Worth an afternoon, and the build-time error on a missing message is the part that pays for itself. Two warnings. The repository has no licence file at its root, and the package on npm says MIT; it is a large project with an active company behind it, so an oversight across a folder of many packages is the likelier reading, but read the individual package's licence field before committing. The project has also renamed and rearranged its parts more than once, so older guides describe tools that no longer exist. i18next/i18next is the conservative choice; lingui/js-lingui sits in between.
- The visitor downloads one language, not all of them.
- A missing translation becomes a build error instead of a blank space on the page.
- A separate web editor keeps translators out of the code.
- No licence file at the repository root. The npm package says MIT.
- No tagged releases on GitHub, so changes have to be followed through npm.
- The project has renamed and rearranged its parts more than once, so older tutorials are misleading.
npx @inlang/paraglide-js@latest init # answer the questions, then: npm run build

2.2k stars · AGPL-3.0 · 0.30.3 (2026-09-06) · Track this in Scout · Share this tool
Newsletter tool with built-in signup forms and a visual editor — more marketer-shaped than Listmonk out of the box.
▶Repo detailsthe review · specs · pros & cons · install
What it does
It manages subscribers, signup forms, campaigns, segments and simple statistics. The editor is visual, so a campaign does not have to be written in HTML. Signup forms are generated and embedded, and double opt-in is built in. It is written in Elixir and stores everything in PostgreSQL, which means it runs comfortably on a small machine. Version 0.30.3 was released on 6 September 2026, and code landed on 2 October 2026. It composes and schedules mail, but it does not deliver it: a sending service has to be configured, and that is a separate thing to choose and pay for.
Why it matters
Who it suits. Anybody building an audience who does not want a bill that grows with the list. Paid newsletter services start free and become expensive at exactly the moment a list becomes valuable. It is noticeably more marketer-shaped than plain mailing-list software, because the forms and the visual editor come with it rather than being bolted on. Skip it if the list is under a few hundred people, because a hosted service at that size costs nothing and asks nothing of you.
Verdict. Worth an evening, not ten minutes, and the licence deserves a careful read. AGPL-3.0 means that offering a modified version of Keila to other people as a service obliges you to publish those modifications; running it for one newsletter is completely fine. Pair it with a sending service such as the mail server covered in Edition 15. knadh/listmonk is the main alternative and ships as a single binary, which makes it the easier install when the visual editor is not the point.
- Signup forms and a visual editor come with it, so three tools do not have to be glued together.
- The subscriber list stays on a machine you control.
- It runs well on a small machine, because Elixir is modest with memory.
- AGPL-3.0. Offering a modified version as a service to others means publishing the changes.
- It writes mail but does not deliver it. A separate sending service is still needed.
- Setting it up means Docker, a PostgreSQL database and mail settings. Budget an evening.
# Simplest start, using the project's docker-compose file: curl -O https://raw.githubusercontent.com/pentacent/keila/main/docker-compose.yml docker compose up -d # then open http://localhost:4000 and read https://keila.io/docs

963 stars · MIT · v0.4.1 (2026-01-20) · Track this in Scout · Share this tool
Fast semantic deduplication of text datasets — strips near-duplicate chat turns before topic modelling so clusters come out clean.
▶Repo detailsthe review · specs · pros & cons · install
What it does
It turns each text into a list of numbers that stands for its meaning, groups the ones that sit close together, and keeps one item from each group. The models it uses are small and fast, so it runs on an ordinary laptop with no graphics card. It handles a single list, and also a training-and-test pair, which matters when a model is being trained. It can report which items it treated as duplicates, so its judgement can be checked rather than trusted. Version 0.5.0 arrived on 30 September 2026 and needs Python 3.10 or newer. Closeness in meaning is a threshold you choose: too tight keeps repeats, too loose deletes something wanted. It removes duplicates; it does not summarise, cluster for presentation, or label anything.
Why it matters
Who it suits. Anybody who processes a pile of text before doing anything clever with it. Support tickets, survey answers, scraped pages and chat logs are all full of near-repeats, and removing them makes every later step faster and the results cleaner. It is especially useful before grouping or summarising long conversations, because a long conversation repeats itself constantly. Skip it if the texts are short and standardised, where exact matching already catches everything.
Verdict. Worth twenty minutes, and the threshold is the only thing to be careful about: set it on a sample you can read, not on the whole set. Note that the first run downloads a small model, so it needs an internet connection once. ekzhu/datasketch is the classic alternative and matches on wording rather than meaning, which is cheaper and blunter. MinishLab/model2vec is the embedding library from the same group if the numbers themselves are what you need.
- Fast on a normal laptop. No graphics card needed.
- It can show which items it considered duplicates, so its judgement can be checked.
- It handles both a single list and a train-and-test pair.
- Closeness in meaning is a threshold you choose, and both extremes do damage.
- It downloads a small model the first time it runs, so the first run needs an internet connection.
- The project publishes releases slowly; judge it by its code rather than by its release page.
source venv/bin/activate # if you use a virtual environment pip install semhash

28.6k stars · LGPL-3.0 · v1.231.0 (2026-08-02) · Track this in Scout · Share this tool
Production-grade Rust-native event-driven trading engine with a Python API — the same code backtests and trades live.
▶Repo detailsthe review · specs · pros & cons · install
What it does
The core is written in Rust and strategies are written in Python. Events are processed in a strict, repeatable order, so the same input produces the same result every time. It can replay historical data at the tick level, which is the most detailed record of what happened in a market. It models order queues, partial fills and delays, so a test hurts in the places a real market will. Several venues are supported, and adding another is a documented job rather than a rewrite. Version 1.231.0 reached PyPI on 2 August 2026, it needs Python 3.12 or newer, and code landed on 17 October 2026. It gives no advice and contains no strategies: what to trade and when is entirely yours to write.
Why it matters
Who it suits. Anybody who intends to run a strategy with real money. The usual failure is not a bad idea; it is a test that was kinder than reality. The connection is tightest for strategies that trade on small price moves, because small margins are exactly where a flattering backtest does the most damage. Skip it if the goal is to try an idea out this afternoon, because the first honest result is weeks away.
Verdict. Worth the weeks if real money is the destination, and a poor use of a free evening otherwise. Two things to watch. The licence is LGPL-3.0, so the library may be used inside a closed product, but modifications to the library itself must be published. The version number also moves quickly, so pin the version in use and read the release notes before changing it. QuantConnect/Lean is the main open alternative built on the same idea of one code path for both; mementum/backtrader is the gentler place to start, and no code has landed on it since August 2024.
- The same strategy code backtests and trades live, so the two cannot drift apart.
- Rust underneath makes it fast enough for tick-level work.
- Many venues are supported, and adding another is a documented job.
- LGPL-3.0. Modifying the library itself obliges you to publish those modifications.
- The learning curve is real. Expect weeks before a first honest result, and expect to read the source.
- The interfaces change between versions. Pin the version and read the release notes.
source venv/bin/activate pip install -U nautilus_trader # Documentation: https://nautilustrader.io/docs/

644 stars · Apache-2.0 · 0.4.5 (2025-07-23) · Track this in Scout · Share this tool
Factor analysis for trading signals: does this feature actually predict returns, before a strategy is built on it.
▶Repo detailsthe review · specs · pros & cons · install
What it does
It takes a factor, which is any number computed per instrument per day, together with the prices that followed. It reports the returns by quantile, the information coefficient, the turnover and the decay of the signal over different holding periods. The output is a set of charts that are the standard vocabulary of factor research, so the results are easy to discuss with anybody in the field. It is a maintained continuation of Quantopian's Alphalens, kept going by Stefan Jansen. Version 0.5.0 was published on 17 October 2026, the day of this refresh, and it needs Python 3.11 or newer. It analyses a signal and nothing more: it does not run a backtest, size positions, or place orders.
Why it matters
Who it suits. Anybody researching trading signals. It sits before the backtester, not after it. A backtest says what one set of rules did; this says whether the underlying signal carries information at all, which is the cheaper and more honest question to ask first. Skip it if there is no signal yet, because there is nothing for it to measure.
Verdict. The best twenty minutes available to anybody about to spend a month on a strategy, and the cheapest way to be told no. Two limits. It was built around daily stock data, so applying it to intraday data means reshaping the inputs by hand. The charts also assume some prior knowledge, so expect to read about quantile spreads before the output means much. stefan-jansen/zipline-reloaded is the backtester from the same maintainer, for the step after this one.
- It answers the cheap question before the expensive one is attempted.
- Its charts are the standard vocabulary of factor research, so the output travels well.
- Apache-2.0, so there is no licence trap in commercial use.
- It was built around daily stock data. Intraday data has to be reshaped first.
- The output takes some learning. The charts assume familiarity with quantile spreads.
- It is a maintained fork of a finished project rather than a fast-moving one, so new features are rare.
source venv/bin/activate pip install alphalens-reloaded # Documentation: https://alphalens.ml4trading.io
Checked, and left out
These were opened for this edition and did not make it, with the reason.
observablehq/plot
observablehq/plot — UNVERIFIED. An excellent charting library, 5.3k stars, ISC. Its newest release is 0.6.17 (February 2025) and npm agrees, but this sandbox cannot read commit dates, so recent code could not be proven either way. Recorded as unverified with the reason stated; explicitly NOT called dormant. Replaced by biomejs/biome so the edition still had twelve.
usesend/useSend
usesend/useSend — VERIFIED ALIVE, last code 8 September 2026. Left out only because the twelve were full. Stays queued and is near the front of the queue.
d3/d3-hierarchy
d3/d3-hierarchy — VERIFIED ALIVE, but the last code landed 2025-04-08, seventeen months ago and close to the eighteen-month bar. Held for a run that can re-check it rather than published on a date about to expire. Stays queued.
Know a repository we should check?





















