Edition No. 7 · 1 Sep 2026

Twelve repositories for finding out before your users do

Uptime checks, error tracking, log search, and alerts that do not cry wolf.

By Genn·12 repositories·11 min read

Six editions have handed you a machine — a site, docs, a video pipeline, a queue, a map. Every part of that machine can fail without saying a word: a box that went down while you were filming, a signup form that throws an error only the visitor sees, a dead link in a page Google already indexed, an embed that quietly costs you two seconds of load time, a question asked in public that you never knew about, a confidential chat pasted into a product with no idea what is in it.

Seven entries serve marketing, three sharpen the products, two are wildcards. All twelve are new to the ledger and none is a repeat. Four candidates were checked and deliberately left out — they are named at the end, with the reason.

This edition, in numbers

Repos12
Hidden gems (<3k stars)3
Marketing / product / wildcard7 / 3 / 2
New to the ledger12
Repeats0
Dropped on check4

If you only do three things

  1. Put Uptime Kuma (01) on the box before lunch. Fifteen minutes, one container. Everything this radar has recommended assumes somebody can reach your site, and right now the first person who finds out it is down is a visitor who will not come back. This is the cheapest insurance on the page and it protects all of the other eleven.
  2. Pull the comments off your five closest competitors' tutorials with youtube-comment-downloader (05). One pip install, no key, no quota. Under every popular tutorial in your niche is a list of the things it failed to explain, written by exactly the people you want. That is your next ten video titles, in their words, tonight.
  3. Run SiteOne Crawler (03) once over the whole site. One command, one HTML report: broken links, missing titles, slow pages, oversized images, the lot. It is the concrete to-do list that turns the last two editions' advice into a morning of fixes you can hand straight to Claude Code.

Every link in one place

Silence is not the same as working

Twelve repositories, checked and reviewed. Every version verified against the GitHub API and dated.

91.1k stars · MIT · 2.5.3 (2026-08-22)

Self-hosted uptime monitor with alerts and a status page — find out the site is down before a visitor does.

Repo detailsthe review · specs · pros & cons · install

What it is

A self-hosted uptime monitor. You give it a URL, a port, a container or a certificate to watch, it checks on a schedule you choose, and it shows you a history of response times plus an alert when something stops answering. It also publishes a status page you can point people at.

Why it matters

Edition 5 gave you beszel and was explicit that it measures resources, not availability — it will tell you the box is at 92% memory, never that your landing page is returning a 502. That gap is the one that costs money. You publish a video, the traffic arrives over the following three days, and if the site is down for four hours in the middle of that window you will not know, because you were filming. Every campaign this radar has proposed is a spike of attention pointed at one Hetzner box, and attention that lands on an error page does not come back for a second try. There is a second use worth as much: watching your TLS certificates and your PostgreSQL port, which is how you find out about the expiring certificate a week early instead of on the morning it breaks.

Stars91.1k
LicenceMIT
Latest2.5.3 (2026-08-22)checked 7 Sep 2026
Written inJavaScript
NeedsDocker Compose and Docker
RunsSelf-hosted on your own server
Setup effort
1 / 5
Payoff
5 / 5
Good
  • Genuinely a fifteen-minute install: one container, a web form, done — the lowest-friction entry in this edition
  • Ninety thousand stars and MIT, which for something whose entire job is to be reliable is the number that matters
  • Notifies through ninety-plus channels including Telegram and ntfy (04), so the alert reaches you rather than a dashboard
Watch for
  • If it runs on the same box it is monitoring, a machine-level failure takes the monitor down with the site. The honest fix is a second cheap host or the free tier of a hosted checker as a backstop — worth ten minutes of thought before you install it
  • It watches from one location, so it cannot tell you the site is unreachable from Moscow while it answers fine from your VPS
  • Alert fatigue is real. Configure retries and a sensible interval on day one, or you will start ignoring it inside a fortnight, which is worse than not having it
Replaces

There is a second use worth as much: watching your TLS certificates and your PostgreSQL port, which is how you find out about the expiring certificate a week early instead of on the morning it breaks.

Install
docker run -d --restart=always -p 3001:3001 \
  -v uptime-kuma:/app/data --name uptime-kuma \
  louislam/uptime-kuma:2
# then open http://your-server:3001 and add the first monitor
02

bugsink/bugsink

💎 hidden gem

2.1k stars · PolyForm Shield 1.0.0 — source-available, NOT OSI open source · 2.5.1 (2026-08-31)

Sentry-compatible self-hosted error tracking, small enough to run beside everything else.

Repo detailsthe review · specs · pros & cons · install

What it is

A self-hosted error tracker that speaks Sentry's protocol: you drop the ordinary Sentry SDK into your React app and your FastAPI service, point its DSN at your own server, and every unhandled exception arrives with a stack trace, the browser, the URL and how many times it has happened. It is deliberately small — one process against SQLite or Postgres, no queue, no worker fleet.

Why it matters

  • PolyForm Shield 1.0.0 is not open source. You may run it for your own business freely; you may not use it to build a competing error-tracking product. That is fine for your use, and irrelevant to Grasppy — but it belongs in the same notebook as n8n's fair-code and Remotion's licence, because it is another dependency you cannot fork if the company changes its mind
  • Two thousand stars and a small team. The mitigation is unusually good here: it speaks the Sentry protocol, so if it stalls you change one DSN and point at something else — but check that before you rely on it
  • An error tracker with no triage discipline becomes a firehose you stop opening. Mute the noisy ones in week one or it will go the way of every unread dashboard

Stars2.1k
LicencePolyForm Shield 1.0.0 — source-available, NOT OSI open source
Latest2.5.1 (2026-08-31)checked 7 Sep 2026
Written inPython
NeedsDocker
RunsSelf-hosted on your own server
Setup effort
2 / 5
Payoff
4 / 5
Good
  • Sentry-compatible, so the SDKs, the documentation and Claude Code's knowledge all transfer — and so does your exit route
  • Small enough to run beside everything else: single process, your existing PostgreSQL, no Redis and no worker cluster, unlike self-hosted Sentry
  • Catches both halves of your stack — the React error the visitor sees and the FastAPI exception they never see — in one timeline
Watch for
  • PolyForm Shield 1.0.0 is not open source. You may run it for your own business freely; you may not use it to build a competing error-tracking product. That is fine for your use, and irrelevant to Grasppy — but it belongs in the same notebook as n8n's fair-code and Remotion's licence, because it is another dependency you cannot fork if the company changes its mind
  • Two thousand stars and a small team. The mitigation is unusually good here: it speaks the Sentry protocol, so if it stalls you change one DSN and point at something else — but check that before you rely on it
  • An error tracker with no triage discipline becomes a firehose you stop opening. Mute the noisy ones in week one or it will go the way of every unread dashboard
How to get it

Docker container on the VPS with a database in your existing PostgreSQL.

03

janreges/siteone-crawler

💎 hidden gem

896 stars · MIT · v2.5.1 (2026-06-27)

One command, one HTML report: broken links, redirects, titles, descriptions, image weight, response times.

Repo detailsthe review · specs · pros & cons · install

What it is

A command-line site crawler and auditor. It walks every page of a site and reports back on broken links, redirects, response times, page sizes, headings, titles and meta descriptions, images, accessibility basics and security headers — as a single self-contained HTML report, or as Markdown, JSON or a spreadsheet. It also generates sitemaps and can export a working offline copy of a site.

Why it matters

Edition 2 gave you Unlighthouse, which is excellent at one question — how does each page score in Lighthouse — and silent about the boring failures that lose you more traffic than a performance score does. Dead links are the clearest case: you will rename a docs page, you will change a video URL, and six months later Google is still indexing a page that links into nothing. This finds those in one pass, along with the missing meta descriptions and the untitled pages that stop the Starlight docs from ranking properly. Two details make it fit you specifically: it is one binary with no Node project and no install ceremony, and its report is a file you can hand to Claude Code and say "work through this." At 764 stars it is genuinely under the radar, and unlike the last two SEO auditors this radar considered, its releases are dated and recent.

Stars896
LicenceMIT
Latestv2.5.1 (2026-06-27)checked 7 Sep 2026
Written inRust
NeedsRust and cargo and ffmpeg
RunsLocally, on your own machine
Setup effort
1 / 5
Payoff
4 / 5
Good
  • MIT, self-contained binaries for macOS, Linux and Windows — nothing to host and nothing to maintain
  • Covers the unglamorous checks in one pass: broken links, redirect chains, titles, descriptions, image weight, response times
  • The offline-export and sitemap features are genuinely useful side effects — an archived copy of the site before a redesign costs one flag
Watch for
  • 764 stars and essentially one maintainer. For a tool you run occasionally on your Mac that risk is small, but do not build a pipeline that depends on it
  • It reports; it fixes nothing. The report is only worth the morning you spend acting on it
  • Crawling a JavaScript-rendered React app needs the browser-rendering mode added in v2.5.0, which is slower and heavier — the static Astro side is where this shines
Install
# download the binary for your platform from the releases page, then:
./crawler --url=https://yourdomain.com \
  --output-html-report=report.html \
  --max-visited-urls=500

34.1k stars · Apache-2.0 · v2.28.0 (2026-08-27)

Push notification to your phone from one line of curl — the missing last step of every alert and long job in this ledger.

Repo detailsthe review · specs · pros & cons · install

What it is

A tiny publish–subscribe notification service. Any script sends an HTTP POST to a topic URL, and the message appears as a push notification on your phone or in a browser tab. There is a free public server and a self-hosted single Go binary; the mobile apps are on both stores.

Why it matters

Count the things in this ledger that end with "and then it tells you": Uptime Kuma when the site is down, Bugsink when a new error appears, RSSHub and n8n when somebody on Reddit asks the question Grasppy answers, Procrastinate when a three-hour backtest sweep finishes. Every one of them currently ends in an email you will read tomorrow or a dashboard you will not open. This is the two-minute fix that turns all of them into a phone buzz — and for the Reddit case the difference between arriving first and arriving on page four is measured in hours. It is the wildcard because it is not a marketing tool in itself; it is the thing that makes the marketing tools you already have actually reach you.

Stars34.1k
LicenceApache-2.0
Latestv2.28.0 (2026-08-27)checked 7 Sep 2026
Written inGo
RunsSelf-hosted on your own server
Setup effort
1 / 5
Payoff
4 / 5
Good
  • Absurdly simple to use: curl -d "message" ntfy.sh/your-topic is the whole integration, from any language or shell script
  • Uptime Kuma has it as a built-in notification target, so wiring 01 to your phone is a dropdown, not a project
  • Self-hostable as one small Go binary if you want the messages off the public server, which you eventually will
Watch for
  • On the public server, a topic name is the password. Anyone who guesses it can read or post to it — use a long random topic, and self-host before anything sensitive goes through it
  • Self-hosting iOS push reliably is the fiddly part of an otherwise trivial tool; the Android path is much smoother
  • Notifications are habit-forming in the wrong direction. Send only what you would genuinely stop filming for — three topics, not thirty
Install
# subscribe to a topic in the phone app, then from anywhere:
curl -d "Grasppy ingest finished: 412 nodes" \
  ntfy.sh/grasppy-a7f3k9x2

1.3k stars · MIT · 0.1.83 (2026-07-30)

Every comment under any YouTube video as JSON — no key, no quota. The complaints under competitors' tutorials are your next ten video titles.

Repo detailsthe review · specs · pros & cons · install

What it is

A small Python tool that fetches the comments from any YouTube video — text, author, timestamp, like count, and replies — as JSON lines, sorted by popularity or recency. No API key, no quota, no OAuth consent screen; it is a command you run and a file you get.

Why it matters

This is the sharpest research tool this radar has found, and it is nearly free. Edition 6 gave you yt-dlp for what competitors published and Edition 5 gave you youtube-transcript-api for what they said. Comments are the other side of that conversation, and they are the only one of the three written by your buyers. Pull the comments from the twenty most-viewed videos about summarising long chats, mapping documents and backtesting forex strategies, and you will find the same six complaints repeated in different words — "he goes too fast", "this doesn't work on Mac", "what about a 500-page PDF", "how do I do this in Russian". Each of those is a video title, a docs page, and a line of landing-page copy, and each one is evidence rather than instinct. It also works on your own channel: the questions under your videos are the fastest signal you have about what the product fails to explain — and they are also the thumbnail and title feedback loop, because a comment saying "clicked for X, got Y" is telling you your title lied. Note the trap this project illustrates: its GitHub releases page stops at August 2025 and looks abandoned, while PyPI shows a release five weeks ago. Check PyPI for this one.

Stars1.3k
LicenceMIT
Latest0.1.83 (2026-07-30)checked 7 Sep 2026
Written inPython
RunsLocally, on your own machine
Setup effort
1 / 5
Payoff
5 / 5
Good
  • No key, no quota, no consent screen — and it burns none of the 10,000-unit daily Data API budget that constrains python-youtube
  • MIT, tiny, pure Python, and it emits JSON lines that go straight into a file, PostgreSQL, or the model in entry 07
  • Comments are the one competitor signal that comes from the audience rather than the marketer — this is the closest thing to a free focus group you will ever run
Watch for
  • Unofficial endpoint, exactly like youtube-transcript-api. YouTube can change it, and datacentre IP ranges get blocked — run it from your Mac, not the Hetzner box
  • Seventy-eight commits and one maintainer. It is small enough that it either works or is replaceable in an afternoon, but do not build a product feature on it
  • Comment sections are noisy: spam, jokes, and "first". Expect to throw away most of what you pull, which is the job entry 07 exists to do for you
Works well with

Install into a virtual environment on the Mac beside your Edition 6 research tools.

Install
source venv/bin/activate
pip install youtube-comment-downloader
# the 500 most-liked comments on a competitor's tutorial
youtube-comment-downloader --url "https://www.youtube.com/watch?v=VIDEO_ID" \
  --sort 0 --limit 500 --output comments.json

4.2k stars · BSD-2-Clause · v8.0.3 (2026-08-12)

The mature Python client for Reddit's official API — search the archive where buyers describe the problem in their own words.

Repo detailsthe review · specs · pros & cons · install

What it is

The long-established Python client for Reddit's official API. It handles authentication, rate limiting and pagination, and gives you subreddits, submissions, comments and search results as ordinary Python objects — including a stream mode that yields new posts as they appear.

Why it matters

Edition 4 gave you RSSHub and made the right argument: the gap in your stack is listening, not publishing. RSSHub gets you a feed of new items. PRAW gets you the archive and the search — which is the more valuable half at this stage, because you do not yet need to be notified of the next question, you need to read the last two years of them. Search r/ChatGPT, r/productivity, r/ObsidianMD, r/Forex and r/algotrading for the phrases people actually use about drowning in a long thread or validating a scalping idea, pull a few thousand posts and their top comments, and you have the vocabulary problem solved: the words in your headline stop being your words and become theirs. There is a second, slower payoff. Answering one of those questions honestly and usefully, with a link only where it genuinely helps, is the cheapest customer acquisition that exists for a product like Grasppy — and it works precisely because it is not marketing. Be careful here: Reddit is fast to punish self-promotion, and the correct posture is to be a person who is useful and occasionally mentions their tool.

Stars4.2k
LicenceBSD-2-Clause
Latestv8.0.3 (2026-08-12)checked 7 Sep 2026
Written inPython
NeedsPython 3
RunsLocally, on your own machine
Setup effort
2 / 5
Payoff
4 / 5
Good
  • BSD-2, official API, and mature enough that Claude Code writes it correctly first time — the opposite risk profile from scraping
  • Rate limiting is handled for you, so an overnight research script is a safe thing to leave running
  • Search across historical posts is the part RSSHub cannot do, and it is where the language for your landing page is hiding
Watch for
  • Registering a Reddit application and getting a client ID and secret is a tedious first half-hour, and their API terms have changed sharply in recent years — read the current terms before you build a habit on it
  • Reddit's search is genuinely poor. Expect to pull broadly and filter locally rather than getting clean results from a clever query
  • Using it to post is a trap. An account that only ever appears to drop links gets banned, and rightly — this is a listening tool first
Works well with

RSSHub gets you a feed of new items.

Install
source venv/bin/activate
pip install praw

12.5k stars · Apache-2.0 · 0.35 (2026-09-07)

Command-line pipe to any model, with every prompt and response logged to a queryable SQLite file.

Repo detailsthe review · specs · pros & cons · install

What it is

A command-line tool for talking to language models. You pipe text in, get text out, and every exchange is logged to a local SQLite file you can search afterwards. It speaks to the major hosted providers and, through plugins, to local models; it supports saved prompt templates, fragments, schemas for structured output, and embeddings.

Why it matters

You already have Claude Code, so the case for this is narrow and specific: bulk. Claude Code is a conversation; this is a pipe. When entry 05 hands you nine thousand comments across forty videos, the useful shape is cat comments.jsonl | llm -s "extract every distinct complaint about the tool being explained" run over each file in a loop, not forty chat sessions. The same applies to the Edition 6 corpora — every competitor article trafilatura pulled down, every transcript, every Reddit thread. Two features earn their place beyond that. Saved templates mean the prompt you spent an hour refining — "summarise this transcript as a video outline in English and Russian" — becomes a named command you reuse for a year. And the SQLite log means the work is queryable: three months from now you can ask which titles you generated in July, and get an answer. It is also a very fast way to prototype a Grasppy prompt before writing any FastAPI code, and it sits naturally behind LiteLLM from Edition 5 when you want the spend capped.

Stars12.5k
LicenceApache-2.0
Latest0.35 (2026-09-07)checked 7 Sep 2026
Written inPython
RunsLocally, on your own machine
Setup effort
1 / 5
Payoff
4 / 5
Good
  • Apache-2.0 and Unix-shaped: it composes with cat, xargs and a for loop, which is exactly what bulk work needs
  • Every prompt and response logged to SQLite — your research becomes searchable instead of scrolling back through chats
  • Reusable prompt templates and a large plugin ecosystem, including local models when a job is too big to pay for
Watch for
  • It calls paid APIs, and a loop over four hundred files is a real bill. Set a budget and a cheap model as the default before the first big run — this is precisely the argument for LiteLLM
  • It overlaps Claude Code enough that it will feel redundant until the first time you have four hundred files, at which point it will not
  • The plugin surface is large and moves quickly; pin the version and use the small part you need
Install
source venv/bin/activate
pip install llm
llm keys set anthropic
cat comments.json | llm -m claude-sonnet-4-5 \
  -s "List every distinct complaint or unanswered question, with a count."

6.3k stars · Apache-2.0 · v0.3.4 (2025-11-10)

Renders a YouTube embed as a thumbnail until someone presses play — roughly an order of magnitude less initial page weight.

Repo detailsthe review · specs · pros & cons · install

What it is

A tiny custom element that replaces the standard YouTube iframe. Instead of loading YouTube's player and its several hundred kilobytes of JavaScript on page load, it renders the thumbnail with a play button; the real player is only fetched when a visitor actually clicks. The measured difference is roughly an order of magnitude in initial weight.

Why it matters

Your marketing depends on video, so your landing page and your blog posts will have embeds on them — and a standard embed is usually the single largest cost on the page, worse than every image combined. Edition 6 put imgproxy in front of you for image weight and made the Core Web Vitals argument; this is the same argument for the heavier offender, and it is a smaller job. Swap <iframe> for <lite-youtube> and the page that ranks for "how do I summarise a long chat" stops being slow because of the demo video sitting on it. There is a privacy angle worth a sentence too: no YouTube script runs until the visitor chooses to play, which is a defensible position for a product whose pitch is that your text stays on your server.

Stars6.3k
LicenceApache-2.0
Latestv0.3.4 (2025-11-10)checked 7 Sep 2026
Written inHTML
Setup effort
1 / 5
Payoff
3 / 5
Good
  • A drop-in swap: one script, one CSS file, one changed tag. Genuinely an hour including testing
  • Apache-2.0, no build step, no framework — works identically in Astro, Starlight and your React app
  • Written and maintained by a Chrome performance engineer, which is the right pedigree for a page-weight fix
Watch for
  • The last release is November 2025 — around ten months. It is a small, finished tool rather than an abandoned one, but check for a newer tag before you install
  • The thumbnail comes from YouTube's own image URLs, so a poor auto-generated thumbnail needs overriding by hand with a poster image
  • YouTube's watch-time analytics see a slightly different signal from an embed loaded on click; not a problem, but do not compare the numbers to last month's
Replaces

Swap &lt;iframe&gt; for &lt;lite-youtube&gt; and the page that ranks for "how do I summarise a long chat" stops being slow because of the demo video sitting on it.

Install
npm install lite-youtube-embed
<lite-youtube videoid="VIDEO_ID" playlabel="Play: Grasppy in 90 seconds"></lite-youtube>

Repo detailsthe review · specs · pros & cons · install

What it is

A static search library. After your site is built, it indexes the generated HTML and writes a set of small index fragments; the browser downloads only the fragments a given search needs, so a large site costs a visitor a few tens of kilobytes rather than a whole index. It ships a ready-made search UI and supports filters and multilingual indexes, including Russian.

Why it matters

Two reasons, and the second is the one that matters more than it looks. The obvious one: as the Astro site and the Starlight docs grow into the dozens of pages this radar keeps telling you to write, a visitor who cannot find the page you wrote for them is the same as a page you never wrote — and Starlight already bundles this, so extending the same search across your blog and marketing pages is consistency rather than a new dependency. The less obvious one: what people search for on your own site is the highest-intent keyword data you will ever have, and it is free. Someone typing "russian subtitles" or "500 page pdf" into your docs search is telling you, in their own words, both what to write next and what your product is expected to do. Wire the query into Umami as a custom event and you have a list nobody else in your market has — which is worth more than the search feature itself.

LatestNo tagged release
Good
  • MIT, no server, no service and no ongoing cost — the index is static files sitting beside the pages
  • Multilingual support means the Russian pages are searchable in Russian, which most static search tools handle badly
  • Already the search engine inside Starlight, so half your site is a configuration change rather than an integration
Watch for
  • It indexes built HTML, so it belongs to the static side. It will not search inside Grasppy's application data — that is pgvector's job, and confusing the two would be an expensive detour
  • The index is generated at build time, so anything published outside a build is invisible until the next one
  • Capturing the queries needs a few lines of your own code — the payoff described above is not automatic
Install
npx pagefind --site dist
# then in your page:
<link href="/pagefind/pagefind-ui.css" rel="stylesheet">
<script src="/pagefind/pagefind-ui.js"></script>

Repo detailsthe review · specs · pros & cons · install

What it is

Microsoft's open framework for finding and removing personal data in text: names, emails, phone numbers, card numbers, national identifiers and more, through a mix of pattern matching, checksums, context words and NLP models. It can redact, mask, hash or replace what it finds, and you can add your own recognisers.

Why it matters

Think about who actually has a four-hundred-message thread worth mapping. It is somebody working: a consultant with a client discussion, a manager with a project channel, a researcher with interview notes. Every one of them hesitates at the same moment, and the hesitation is not about your features — it is "what happens to this text?" Grasppy already has the strong answer, because Docling and BERTopic run locally on your own box. Presidio lets you go one step further and say something specific: names, emails and numbers are detected and masked before any text is sent to a model for labelling. That is a sentence on your landing page, a paragraph in your docs, and a genuine feature — and it separates you from every competitor whose pipeline is a thin wrapper around somebody else's API. It is also the honest engineering position: if you are going to send chunks to an LLM to name topics, you should know what is in them. Do not oversell it in your copy — call it a reduction of risk, not a guarantee, because that is what it is.

LatestNo tagged release
Good
  • MIT, from Microsoft, actively released, and squarely aimed at the exact step your ingest pipeline performs
  • Turns a vague trust claim into a demonstrable behaviour — the best kind of marketing, because it is true and checkable
  • Extensible with your own recognisers, so a client code or an internal project name can be masked as easily as an email address
Watch for
  • Detection is statistical, never complete. It will miss things and it will flag things that are not personal data — promising more than "significantly reduced" would be dishonest and eventually costly
  • The good detection needs an NLP model (spaCy or a transformer) loaded in memory, which is a real cost on a small VPS. Start with the light spaCy model and measure it with beszel
  • Russian coverage is much thinner than English. Test on real Russian text before you make any claim that covers both languages
Install
source venv/bin/activate
pip install presidio-analyzer presidio-anonymizer
python -m spacy download en_core_web_lg

Repo detailsthe review · specs · pros & cons · install

What it is

A React tree component: virtualised so it stays fast with thousands of nodes, with keyboard navigation, multi-select, inline renaming, drag-and-drop reordering and built-in filtering. Every row is your own React component.

Why it matters

Your traffic is going to arrive from YouTube, and a large share of YouTube traffic is on a phone. A pan-and-zoom node canvas — React Flow with elkjs — is the right thing on a laptop and close to unusable on a five-inch screen, where the nodes are either too small to read or too large to see two at once. So the honest position is that Grasppy needs two views of the same tree, and the second one is a list. This is the component for it: virtualised, so a 500-message thread does not stall the browser; searchable, which on mobile is faster than any amount of zooming; and keyboard-navigable, which is also the accessible path and the one a screen reader can follow. There is a strategic point underneath the practical one. A map that only works on a desktop makes every video you publish half as effective, because the viewer watching on their phone cannot try the thing you just demonstrated. Fixing that is worth more than most features.

LatestNo tagged release
Good
  • MIT and actively released — v3.16.0 landed five weeks ago, so this is not one of the many abandoned React tree components
  • Virtualisation and keyboard navigation are the two hard parts, and both are already done
  • Rows are your own components, so the node cards you already built for the canvas can be reused rather than redesigned
Watch for
  • Two views of one data structure means two things to keep in sync. Keep the tree in one place in state and render both from it, or they will drift
  • 238 commits and a small team at Brim — mature for its size, but not a large-community project. Read the source once before depending on it
  • A tree cannot show relationships between branches, which is part of what makes the map view valuable. This is a companion, not a replacement
Install
npm install react-arborist

14.8k stars · MIT · v5.0.0 (2026-09-07)

Hyperparameter search that samples the promising regions and prunes hopeless trials early — a week of sweeps back as an afternoon.

Repo detailsthe review · specs · pros & cons · install

What it is

A hyperparameter optimisation framework. You write a function that scores one configuration; Optuna chooses which configurations to try, using the results so far to sample the promising regions, and prunes runs that are clearly going nowhere before they finish. Every trial is stored in a database, so a study can be paused, resumed and inspected.

Why it matters

ScalpingMate's real constraint is how many hypotheses you can kill per day, and grid search is the slowest possible way to kill them: entry threshold × stop × target × session, and you are running thousands of backtests, most of them on parameter values that were obviously bad after the first six months of data. Optuna's sampler concentrates on the regions that are working, and its pruning stops a hopeless trial part-way — together that is usually an order of magnitude fewer full backtests for the same answer, on a CPU box that has other jobs to do. It also fits the tools already in the ledger rather than replacing them: it wraps skforecast's rolling-origin backtest as the objective function, so the thing being optimised is walk-forward performance rather than a curve fitted to the whole history. One warning, and it is the important part: a smarter search finds an overfitted result faster than a dumb one. Everything Edition 6 said about arch's reality check applies double here — the more configurations you try, the more certain it is that the best of them is luck. Optuna finds candidates; it never validates them.

Stars14.8k
LicenceMIT
Latestv5.0.0 (2026-09-07)checked 7 Sep 2026
Written inPython
NeedsPython 3
RunsLocally, on your own machine
Setup effort
2 / 5
Payoff
4 / 5
Good
  • MIT, pure Python, pandas-friendly, and it wraps around code you have already written rather than asking you to restructure it
  • Pruning is the feature that matters on your hardware — abandoning a bad trial early is where the wall-clock saving comes from
  • Studies persist to a database, so a long search survives a restart and every trial stays inspectable in SQL
Watch for
  • It makes overfitting faster. Pair every study with a held-out period and the multiple-comparison test from arch, or you will find a beautiful strategy that is pure search noise
  • The dashboard is a separate package and mostly unnecessary for you — the tables are the useful part, best read in a marimo notebook
  • Defining the search space well is a real skill; too wide and it wanders, too narrow and it just confirms what you already assumed
Install
source venv/bin/activate
pip install optuna

Checked, and left out

These were opened for this edition and did not make it, with the reason.

excalidraw/excalidraw

excalidraw/excalidraw (128.8k, MIT) — latest package release v0.18.1 on 2025-04-21, seventeen months. Backlogged; the hosted app is free and needs no repo.

motiondivision/motion

motiondivision/motion (33.3k, MIT) — no GitHub releases, changelog unreadable from the sandbox, npm 403. Recency unprovable. Backlogged.

stefan-jansen/alphalens-reloaded

stefan-jansen/alphalens-reloaded (594, Apache-2.0) — GitHub and PyPI disagree on the latest version and both are ~14 months old. Backlogged.

lycheeverse/lychee

lycheeverse/lychee (3.7k, Apache-2.0/MIT, alive at v0.24.2 2026-05-01) — verified fine, dropped only as redundant with SiteOne Crawler. Backlogged.

Share this edition
← PreviousNo. 6Next →No. 8

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.