Edition No. 7 · 1 Sep 2026

Edition No. 7

By Genn·12 repositories·16 min read

Six editions have built up 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 nobody was looking, 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.

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) · Track this in Scout · Share this tool

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.

What it is good for. Edition 5 covered beszel and was explicit that it measures resources, not availability — it will tell you the box is at 92% memory, never that the landing page is returning a 502. That gap is the one that costs money. A campaign sends traffic over the following three days, and if the site is down for four hours in the middle of that window nobody finds out. Every campaign this radar has proposed is a spike of attention pointed at one small server, 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 TLS certificates and the 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 the host it runs on
  • 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
Screenshots
louislam/uptime-kuma: GitHub preview cardlouislam/uptime-kuma: Screenshot 1louislam/uptime-kuma: Screenshot 2louislam/uptime-kuma: Screenshot 3louislam/uptime-kuma: Screenshot 4
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) · Track this in Scout · Share this tool

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

▶Repo detailsthe review · specs · pros & cons

What it is

A self-hosted error tracker that speaks Sentry's protocol: you drop the ordinary Sentry SDK into a React front end and a 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.

What it is good for. Edition 5 made the point that the most dangerous bug class in a web app is the one where a screen sometimes just fails to load, and Edition 6 pointed out that a broken transactional email costs signups silently. Both share a property — the person who hits them does not file a bug report, they close the tab. A one-person team cannot watch the logs, so without this the only error-reporting channel is a stranger caring enough to write in, and almost nobody does. This puts a number on it: three people hit the same JavaScript error on the same screen this week, here is the line. That converts an anxiety into a task. And it is worth more the moment marketing works — the whole point of driving traffic is that strangers use the product unattended, which is precisely when nobody is there to say it broke.

Cons first, because of the licence

• 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 most uses, and irrelevant to a product that is not itself an error tracker — 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 a web application — 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 most uses, and irrelevant to a product that is not itself an error tracker — 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
Screenshots
bugsink/bugsink: GitHub preview cardbugsink/bugsink: Screenshot 1
03

janreges/siteone-crawler

💎 hidden gem

896 stars · MIT · v2.5.1 (2026-06-27) · Track this in Scout · Share this tool

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

▶Repo detailsthe review · specs · pros & cons

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.

What it is good for. Edition 2 covered Unlighthouse, which is excellent at one question — how does each page score in Lighthouse — and silent about the boring failures that lose more traffic than a performance score does. Dead links are the clearest case: a docs page gets renamed, a video URL changes, 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 Starlight docs from ranking properly. Two details make it easy to adopt: 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 a laptop 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
Screenshots
janreges/siteone-crawler: GitHub preview card

34.1k stars · Apache-2.0 · v2.28.0 (2026-08-27) · Track this in Scout · Share this tool

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

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.

What it is good for. 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 a product answers, Procrastinate when a three-hour backtest sweep finishes. Every one of them otherwise ends in an email that gets read tomorrow or a dashboard nobody opens. 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 other marketing tools actually reach a person.

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
Screenshots
binwiederhier/ntfy: GitHub preview cardbinwiederhier/ntfy: Screenshot 1binwiederhier/ntfy: Screenshot 2binwiederhier/ntfy: Screenshot 3binwiederhier/ntfy: Screenshot 4

1.3k stars · MIT · 0.1.83 (2026-07-30) · Track this in Scout · Share this tool

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.

What it is good for. This is the sharpest research tool this radar has found, and it is nearly free. Edition 6 covered yt-dlp for what competitors published and Edition 5 covered 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 the buyers. Pull the comments from the twenty most-viewed videos in your subject area, 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 a channel you run yourself: the questions under those videos are the fastest signal available about what a 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 the 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 own machine, not a datacentre 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
Works well with

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

Install
pip install youtube-comment-downloader
Screenshots
egbertbouman/youtube-comment-downloader: GitHub preview card

4.2k stars · BSD-2-Clause · v8.0.3 (2026-08-12) · Track this in Scout · Share this tool

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.

What it is good for. Edition 4 covered RSSHub and made the right argument: the gap in most marketing setups 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 early on, because the need is not to be notified of the next question but to read the last two years of them. Search the subreddits where your subject comes up for the phrases people actually use about the problem the product solves, pull a few thousand posts and their top comments, and the vocabulary problem is solved: the words in the headline stop being the marketer's words and become the readers'. 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 small software product — 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 by the library, 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 building 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
pip install praw
Screenshots
praw-dev/praw: GitHub preview card

12.5k stars · Apache-2.0 · 0.35 (2026-09-07) · Track this in Scout · Share this tool

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.

What it is good for. For anyone already using Claude Code, 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 product's 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
pip install llm
Screenshots
simonw/llm: GitHub preview card

6.3k stars · Apache-2.0 · v0.3.4 (2025-11-10) · Track this in Scout · Share this tool

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.

What it is good for. Marketing that depends on video puts embeds on landing pages and blog posts — and a standard embed is usually the single largest cost on the page, worse than every image combined. Edition 6 covered imgproxy 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 any product whose pitch is that a user's text stays on the product's own 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 a 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
Screenshots
paulirish/lite-youtube-embed: GitHub preview cardpaulirish/lite-youtube-embed: Screenshot 1paulirish/lite-youtube-embed: Screenshot 2paulirish/lite-youtube-embed: Screenshot 3paulirish/lite-youtube-embed: Screenshot 4

5.4k stars · MIT · v1.5.2 (2026-04-12) · Track this in Scout · Share this tool

Static search with no server and no per-query bill — and, if the queries are captured, the highest-intent keyword data he will ever have.

▶Repo detailsthe review · specs · pros & cons

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.

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

Stars5.4k
LicenceMIT
Latestv1.5.2 (2026-04-12)
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 an application's own 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
Screenshots
Pagefind/pagefind: GitHub preview card

10.7k stars · MIT · 2.2.364 on PyPI (2026-07-22); GitHub release 2.2.362 (2026-03-18) · Track this in Scout · Share this tool

Detects and masks names, emails, phone and card numbers in text before anything is sent to a model.

▶Repo detailsthe review · specs · pros & cons

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.

What it is good for. 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 features — it is "what happens to this text?" A pipeline that runs Docling and BERTopic locally on its own box already has a strong answer. 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 a landing page, a paragraph in the docs, and a genuine feature — and it separates a product 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 the copy — call it a reduction of risk, not a guarantee, because that is what it is.

Stars10.7k
LicenceMIT
Latest2.2.364 on PyPI (2026-07-22); GitHub release 2.2.362 (2026-03-18)
Good
  • MIT, from Microsoft, actively released, and squarely aimed at the exact step an 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
Screenshots
data-privacy-stack/presidio: GitHub preview carddata-privacy-stack/presidio: Screenshot 1

3.7k stars · MIT · v3.16.0 (2026-07-25) · Track this in Scout · Share this tool

Virtualised React tree with keyboard navigation and filtering — the mobile and accessible view of the subtopic map.

▶Repo detailsthe review · specs · pros & cons

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.

What it is good for. Traffic that arrives from YouTube is largely 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 a map view needs a second view of the same tree, and that 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 published video half as effective, because the viewer watching on their phone cannot try the thing that was just demonstrated. Fixing that is worth more than most features.

Stars3.7k
LicenceMIT
Latestv3.16.0 (2026-07-25)
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 node cards 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
Screenshots
jameskerr/react-arborist: GitHub preview cardjameskerr/react-arborist: Screenshot 1

14.8k stars · MIT · v5.0.0 (2026-09-07) · Track this in Scout · Share this tool

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.

What it is good for. The real constraint in strategy research 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 a full sweep runs 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 modest 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 — 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
pip install optuna
Screenshots
optuna/optuna: GitHub preview cardoptuna/optuna: Screenshot 1

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.