Edition No. 2 · 27 Aug 2026
Edition 1 was about seeing

Analytics, attribution, being findable.
Refreshed on 12 October 2026. The repositories are the ones first published; any that are no longer maintained are left out.
Edition 1 was about seeing: analytics, attribution, being findable. This one is about keeping. Twelve repositories, in four groups: building a mailing list and an onboarding path that belong to the publisher, getting a week of material out of one recording, being found by people and by machines, and the search machinery inside a product.
Every figure below was read on 12 October 2026. All twelve repositories were checked, none is archived, and the newest code on the quietest of them landed on 26 July 2026, so none was dropped.
Three things worth knowing
- One licence changed its mind. When this edition first went out, entry #2 was described as fair source. The file in the repository today is the Functional Source License, version 1.1, with an Apache-2.0 future grant, and the badge beside it on the same page still says AGPLv3. The two cannot both be right, and the file is what a court reads. - Two of the twelve answered "there aren't any releases here." Entries #11 and #12 both have releases and both have changelogs naming them, but the page that is supposed to show the newest release showed nothing today. Their version numbers below come from the changelog file in each repository instead. - A release date without a year is still the most common trap. Eight of the ten repositories with releases printed a date with no year on it. Seven were settled against a second named source. One, entry #7, could not be settled at all, and this report says so in that entry rather than picking a year.
If you only do three things
- AnswerDotAI/llms-txt (#7) — about an hour. One text file at a fixed address on a site, written so that a language model can read what the site is without wading through the page markup. The specification was rewritten as version 2 in August 2026, so if a file was written against the first version it is worth reading the new one.
- m-bain/whisperX (#4) — one evening, once. It turns a recording into text with a start and end time on every single word. Entries 5 and 6 both work on what it produces, so nothing else in part two happens until this is installed.
- knadh/listmonk (#1) — an afternoon. A mailing list is a list of addresses that no platform can take away. This runs as one program against a Postgres database, and Postgres is the only requirement its installation page names.
Every link in one place
| # | Repository | Project site | Stars | Licence |
|---|---|---|---|---|
| 1 | knadh/listmonk | listmonk.app | 23,753 | AGPL-3.0 |
| 2 | baptisteArno/typebot.io | typebot.io | 10,379 | FSL-1.1-Apache-2.0, not open source |
| 3 | usertour/usertour | usertour.io | 2,115 | MIT, with two directories under a separate licence |
| 4 | m-bain/whisperX | none published | 24,358 | BSD-2-Clause |
| 5 | WyattBlue/auto-editor | auto-editor.com | 5,472 | The Unlicense (public domain) |
| 6 | mutonby/openshorts | openshorts.app | 5,920 | MIT, with one directory under a commercial licence |
| 7 | AnswerDotAI/llms-txt | llmstxt.org | 2,656 | Apache-2.0 |
| 8 | every-app/open-seo | openseo.so | 22,862 | MIT |
| 9 | harlan-zw/unlighthouse | unlighthouse.dev | 4,884 | MIT |
| 10 | chonkie-inc/chonkie | docs.chonkie.ai | 4,754 | MIT |
| 11 | pgvector/pgvector | none published | 23,309 | PostgreSQL Licence |
| 12 | kernc/backtesting.py | kernc.github.io/backtesting.py | 9,035 | AGPL-3.0 |
Own the audience, compound the content
Twelve repositories, checked and reviewed. Every version verified against the GitHub API and dated.

23.3k stars · AGPL-3.0 · v6.2.0 (2026-06-26) · Track this in Scout · Share this tool
Single-binary self-hosted newsletter manager on Postgres. The email list is the only audience he actually owns.
▶Repo detailsthe review · specs · pros & cons · install
What it does
It stores subscribers, groups them into lists, and keeps templates and campaigns. A campaign is one letter sent to a chosen group of people. It records what happened to each send, including bounces, which are the replies a mail server gives when an address does not work. Subscribers can be selected with a database query, so a group such as "everybody who opened the last letter and never signed up" is a query rather than a manual list. The whole application ships as one compiled program with the admin screen built in, and Postgres 12 or later is the only requirement its installation page names. The README publishes no performance figures at all, despite the words "high performance" in its own description, and makes no statement about what the software will not handle.
Why it matters
Who it suits. Anyone who wants the list of people they write to held somewhere they control, rather than inside a service that can change its terms. The install is unusually small for what it covers, which makes it a reasonable first self-installed service for somebody who has never run one. Skip it if the sending volume is a handful of letters a year, because a hosted service will cost less trouble, and skip it if nobody is willing to look after a database.
Verdict. Worth an afternoon. Code landed on it on the morning of this refresh, and it has been going since June 2019, so this is a settled project rather than a new one. Two things to decide before installing. The licence is AGPL-3.0, read from the file: using it privately costs nothing, but offering a modified copy to other people as a service brings an obligation to publish the modifications. And the project documents no memory or disk figures anywhere, so the machine has to be sized by trial. Of the alternatives below, mautic/mautic is the much larger system if marketing automation, and not just letters, is the goal.
- One compiled program plus Postgres, with the admin screen included, so there is no second runtime to patch.
- Subscriber groups are database queries, which makes an awkward audience one line instead of an export.
- Steady for over seven years, with code landing on 12 October 2026 and release v6.2.0 on 26 June 2026.
- AGPL-3.0, read from the file, which is a real decision for anyone offering a changed copy as a service.
- No published figures of any kind: no memory, no disk, no sending rate, and no statement of limits in the README.
- The admin screen is functional rather than friendly, and there is no drag-and-drop editor for designing a letter.
# Docker curl -LO https://github.com/knadh/listmonk/raw/master/docker-compose.yml docker compose up -d # Or the compiled program against an existing Postgres ./listmonk --new-config # writes config.toml, then edit it ./listmonk --install # sets up the database ./listmonk # run it

10.3k stars · Functional Source License · v3.18.0 (2026-08-21) · Track this in Scout · Share this tool
Visual builder for conversational forms that complete far more often than a wall of fields.
▶Repo detailsthe review · specs · pros & cons · install
What it does
You drag blocks onto a canvas to build a flow of questions, with conditions and branches. The README claims "34+ building blocks". Answers are collected as the visitor goes, and the project states that results can be seen as they arrive. It can send answers onward to another system by webhook, which is an HTTP call made automatically when something happens. Named integrations in the README include an HTTP request block, OpenAI, Google Sheets, Google Analytics, a Meta pixel, Zapier, Make.com and Chatwoot. It reports drop-off and completion rates, and results export as CSV. The embed library is described as needing no iframe and no external dependencies. What it does not do is install from the README: no commands appear there at all, and the repository's own Compose file is the practical route.
Why it matters
Who it suits. Anyone whose sign-up form is abandoned halfway, and anyone who wants to learn the words real visitors use when they describe their problem, since a two-question conversation collects those words as text. It fits a small site with one or two flows. Skip it if a plain form already converts well, because this is more machinery for the same answers, and skip it if the plan is to resell the builder itself.
Verdict. Worth an evening, with the licence read first and the badge ignored. The file in the repository is the Functional Source License, version 1.1, with an Apache-2.0 future grant, copyright 2023 to 2024 Typebot. It permits internal use, non-commercial teaching and research, and it forbids a "Competing Use", defined as offering the software to other people in a commercial product that substitutes for it or offers substantially similar functionality. Each version becomes Apache-2.0 two years after it is released. Meanwhile the licence badge on the same page reads AGPLv3, so the page contradicts itself and the file is the one that counts. The second thing to weigh is the running cost: the Compose file brings up Postgres, Redis and two separate Next.js applications, which is four services for one form. formbricks/formbricks is the AGPL-3.0 alternative if the licence is the sticking point.
- One question at a time, which is a real improvement in completion on a phone over a page of boxes.
- 34 or more blocks with conditions, branches and webhooks, so a flow needs no code.
- Named integrations with spreadsheets, analytics and automation services, and a CSV export of results.
- Not open source. The licence forbids a competing commercial use and becomes Apache-2.0 only two years after each release.
- The page states two different licences: the file says Functional Source License 1.1, the badge says AGPLv3.
- Four services to run for one form: Postgres, Redis, a builder application and a viewer application, with 192 issues open.
Honest caveat: this is a nice-to-have sitting next to Listmonk's must-have, so do it second.
git clone https://github.com/baptisteArno/typebot.io.git cd typebot.io cp .env.example .env # set the values it names docker compose up -d

2.3k stars · MIT core + separate enterprise licence · v0.9.4 (2026-09-04) · Track this in Scout · Share this tool
Self-hosted in-app product tours and checklists — the open-source Appcues. Stops Grasppy visitors bouncing off the map screen.
▶Repo detailsthe review · specs · pros & cons · install
What it does
It shows tours, checklists, launchers and surveys inside a web application, and the README says it works with any browser-based application, including ones with several pages. Who sees a tour is decided by rules about a person's attributes and the events they have triggered, so a first-visit tour need not appear to everybody. It keeps separate environments, such as production and staging, under one account, and it keeps a version history of changes to a flow with the name of whoever made each one. Themes cover text, button colours, font family and size. It reports views and completion rates and marks the step where people stop. It also ships an MCP server, which is a small helper program that lets an AI assistant build the flows. What it does not do is state a single limitation in its README, and its Docker route is the only install path given.
Why it matters
Who it suits. Any product whose main screen is unfamiliar at first sight, which is most products that do something new. A three-step tour on the first visit converts more of the traffic already arriving, which is cheaper than finding more traffic. Skip it while the product has almost no new arrivals, because a tour nobody sees is maintenance for nothing, and skip it if the enterprise carve-out below is not acceptable.
Verdict. Worth an evening once there is a steady trickle of first-time visitors, and a gem at 2,115 stars. The licence needs reading in full. The file is MIT Expat, copyright 2023 to the present, Usertour, Inc., and it carves two things out: any source file in a directory whose name contains "enterprise" or "ee", and, in its own words, "any code controlling feature, permission, role and plan enablement". Those are governed by a separate LICENSE.enterprise file. That shape is the standard one for a project with a paid edition, and the README confirms a hosted version and a private-deployment offer for larger customers. Two further notes. It is version 0.9.6, released on 8 October 2026, and still before 1.0, so the settings and the data shape may still move. And it is the quietest repository in this edition by code date: the last push was 26 July 2026, which is well inside the eighteen-month line this report uses, so it is not called dormant, but the gap between that and a release on 8 October is worth noticing.
- Tours are edited visually, so the wording changes without a rebuild of the application.
- Targeting rules, separate environments and a version history with named authors, which is more care than most small projects take.
- A release on 8 October 2026, and a built-in MCP server so an assistant can build the flows.
- Two parts of the code are carved out of the MIT licence, including anything that controls which features a plan unlocks.
- Version 0.9.6, before 1.0, and the last code landed on 26 July 2026, which is quiet beside a release two months later.
- Another Docker stack with its own database to run and back up, and the README names no limitations at all.
It also lightens your video workload: when the product explains its own basics, your YouTube time goes to the interesting use cases instead of a tour of the toolbar.
git clone https://github.com/usertour/usertour.git cd usertour cp .env.example .env # set every required value docker compose up -d

23.9k stars · BSD-2-Clause · v3.8.6 (2026-05-25) · Track this in Scout · Share this tool
Whisper with a timecode on every word — the raw material for captions, chapters, blog posts and Shorts cuts.
▶Repo detailsthe review · specs · pros & cons · install
What it does
It runs the Whisper speech model in batches on a faster backend, then force-aligns the result against the audio with a second model so each word carries accurate timing. Force alignment means matching the recognised words back to the exact moments they were spoken. It filters out silence first, which the README says reduces invented text. It can label speakers by using a separate model, and the command-line version writes subtitle files. There is also a Python interface for use inside a program. The README publishes two figures: about 70 times faster than real time with the large-v2 model in batches, and under 8 GB of graphics memory for that model at a beam size of 5. What it does not do is handle several people talking over each other, which the README says plainly, and it cannot align a word that is not in the alignment model's dictionary, so "2014." or "£13.60" come back with no timing at all.
Why it matters
Who it suits. Anyone recording spoken video or audio who needs the text afterwards, in any of the forms that text takes: captions, chapter marks, an article, a searchable page. It handles many languages, so two recordings in two languages become two transcripts with no typing. Skip it if a rough transcript is enough, because the plain Whisper models are far easier to install, and skip it if the material is several people interrupting each other, because that is the case the README says it handles badly.
Verdict. Worth one evening of setup, after which it stops being a decision. The licence is the best in this part: BSD 2-Clause, read from the file, copyright 2024 Max Bain, with no restriction on what is built from the output. Release v3.8.6 is dated 25 May 2026 and code landed on 26 September 2026, so it is current. Three honest warnings. A graphics card makes it comfortable and a small rented server almost certainly has none, so on a processor alone a long recording takes a long time. Speaker labelling needs an account token from the model host and acceptance of a model agreement, which is an extra hoop before anything runs. And the README's own list of unfinished work still includes word-level speaker labels, so the two best features do not yet meet.
- BSD 2-Clause, read from the file, with no commercial restriction on anything made from the output.
- A time on every word, which is a different capability from plain transcription rather than a better version of it.
- About 70 times faster than real time on the large model, by the project's own published figure.
- Overlapping speech is handled badly, which the README states, and speaker labelling is described there as far from perfect.
- Words the alignment dictionary does not contain, such as a number with a currency symbol, get no timing at all.
- Python with a deep-learning stack underneath it, and a graphics card is needed before the speed figures mean anything.
Runs on your Mac beside Camtasia, or as a queued job on the VPS.
python3 -m venv venv source venv/bin/activate pip install whisperx # Transcribe whisperx path/to/audio.wav # With speaker labels and highlighted words whisperx path/to/audio.wav --model large-v2 --diarize --highlight_words True # Processor only whisperx path/to/audio.wav --compute_type int8 --device cpu

5.2k stars · Unlicense · 31.6.0 (2026-09-06) · Track this in Scout · Share this tool
One command strips silence and dead air from a screencast — typically 15-25% shorter, better retention.
▶Repo detailsthe review · specs · pros & cons · install
What it does
It measures the loudness across a file, decides which stretches count as silence, and joins what is left into a new file. There is no timeline, no settings window and no project file. The rules can be changed, so cuts can be made on loudness, on motion, or on a mix of both. It reads and writes the common video and audio formats, and it can also export an edit list for a full editor instead of a finished file. It can copy the video stream through untouched when the cuts allow it, which avoids losing quality. Version 31.7.2 was released on 3 October 2026 and code was pushed on 12 October 2026. It does not judge content: a deliberate pause is silence to it, and it will cut that too.
Why it matters
Who it suits. It suits anyone who records themselves working, teaching or demonstrating, where most of the waste is waiting rather than mistakes. It suits long recordings best, because the saving grows with length. Skip it for scripted, already tight footage, and skip it for anything where pauses carry meaning, such as an interview or a performance.
Verdict. The best value in this edition, and the one to run first. Budget ten minutes to install and one viewing pass to check the result, every time, because a cut in the wrong place is worse than a long file. Pair it with #4 immediately afterwards. If a graphical editor is wanted instead, mifi/lossless-cut does cuts by hand without re-encoding.
- One command, and public-domain terms, so nothing about it restricts commercial use.
- Reads the formats an ordinary recording comes in, so it fits before or after any editor.
- Can hand its decisions to a full editor rather than producing a final file.
- It cuts by sound alone. A pause made on purpose is just silence to it, so the result has to be watched.
- Some settings re-encode the video, which costs a little quality and some time.
- PyPI is nearly a year behind the repository, so the install line is unusual. See the note above.
# ffmpeg is needed for some formats: brew install ffmpeg (or: sudo apt install ffmpeg) python3 -m venv venv source venv/bin/activate pip install --upgrade "auto-editor @ git+https://github.com/WyattBlue/auto-editor" auto-editor lesson.mp4 --output lesson-tight.mp4

3.9k stars · MIT · no tagged releases; active main branch · Track this in Scout · Share this tool
Self-hosted Opus Clip — long video in, LLM-picked 9:16 clips with word-level captions out.
▶Repo detailsthe review · specs · pros & cons · install
What it does
It transcribes the video locally, sends only the transcript to a language model to choose between three and fifteen moments, then cuts those moments and reframes them to a 9:16 shape. It can track a face while cropping, split the frame between two speakers, add subtitles, overlay hook text, and dub into more than thirty languages through a separate paid service. A second mode generates marketing clips from a product description or a web address. A third generates titles, thumbnails and descriptions with chapter times, and can publish to a video platform. Clips can be posted or scheduled to three social platforms through an upload service. For automation it ships an MCP server, a REST interface, completion webhooks and a command-line tool. What it does not do is work without keys: the README states that a Gemini key is "required for all AI features", and that without one the layout chooser and the on-screen content detection fall back to plain face tracking, while a silent video fails outright.
Why it matters
Who it suits. Anyone already recording long video who wants short clips from it without spending an afternoon per video in an editor. Doing this by hand is exactly the task people abandon in week three. Skip it if there is no appetite for paying per batch, and skip it if there is no machine with 8 GB of memory free, because that is the README's own figure for self-installing.
Verdict. Worth a weekend if the long videos already exist, and it is no longer a small project: 5,920 stars against about 2,400 when this edition first went out, with code on 1 October 2026. Four specifics. The licence is MIT for the core, read from the file, copyright 2024 OpenShorts, with the cloud/ directory carved out under a commercial licence that forbids offering it to other people as a paid service; the README says self-installing the core never needs that directory. There are still no tagged releases at all, so there is no version to pin and the main branch is whatever landed that day. The paid dependencies are real and should be capped before the first run: a language model key, an effects key, a voice key and an upload key, each billed by its own provider. And the model's taste in clips is the part to distrust, which the project half-admits by documenting that small local models do not reliably return usable answers.
- MIT for the core, read from the file, with no watermark and no per-clip fee when self-installed.
- Only the transcript leaves the machine for the moment picker, and a local model can replace even that.
- Reframing, face tracking and subtitle burn-in are the tedious half of the job, and they are the half automated.
- No tagged releases of any kind, so there is no version to pin and the main branch is what runs.
- It needs four separate paid keys for its full feature set, and each batch has a real cost.
- The
cloud/directory is under a commercial licence, the upload limit is 2 GB, and the self-installed service works only while the machine is on.
git clone https://github.com/mutonby/openshorts.git cd OpenShorts cp .env.example .env # optional, for storage keys docker compose up --build

2.6k stars · Apache-2.0 · 0.0.6 (2026-01-29) · Track this in Scout · Share this tool
The /llms.txt spec — one small file that tells AI models what your product is. An hour of work, permanent upside.
▶Repo detailsthe review · specs · pros & cons · install
What it does
The specification describes the shape of the file. It asks for a first-level heading with the name of the site or project, and that heading is the only required part. After it come an optional short summary as a block quote, optional sections of detail, and optional second-level sections that are nothing but lists of links, each written as a name and an address with an optional note. A section headed "Optional" holds links an assistant may skip when it needs less material. The repository ships two command-line programs, llms_txt2ctx and llms_txt2html, and requires Python 3.10 or newer. What it does not do is replace anything that already exists: the project states that it is a proposal, that the specification is open for comment, that it serves a different purpose from a robots file, and that it is not a substitute for a sitemap.
Why it matters
Who it suits. Anybody with a site whose purpose is easy to misread from its marketing pages, which is most sites selling something new. The cost is one text file and an hour of thinking about how to describe the thing in plain words, which is useful work even if no model ever reads it. Skip it if the site has nothing a model would need to summarise, and skip it if nobody will keep the file current, because a stale file states something untrue.
Verdict. The cheapest item in this edition, and the one piece of work here that can be finished before lunch. The licence is Apache-2.0, read from the file, with one blemish worth recording: the copyright line is still the template placeholder, so no holder and no year are named, while the licence's own terms assume there is one. The important change since this edition first went out is that the specification is now at version 2, revised in August 2026 after what the author describes as two years of adoption, and the project publishes a page of what changed. A file written against the first version is not wrong, but it is worth half an hour to compare. The honest caveat stands: this is a proposal, not a ratified standard, and no crawler is obliged to read the file. Release 0.0.7 shows on the release page as 24 September with no year, and today neither the mirror nor the package index could be reached to settle it, so this report does not state the year. Code landed on 24 September 2026.
- One text file, about an hour, and no infrastructure, dependency or ongoing cost.
- The specification is short enough to read in full, and version 2 ships a page explaining what changed.
- Apache-2.0, read from the file, and two small command-line tools for turning a file into context or into a web page.
- A proposal, not a standard. Nothing obliges any crawler to read the file, and the benefit is hard to measure.
- The Apache-2.0 file still carries the template placeholder instead of a real copyright line.
- The year of release 0.0.7 could not be confirmed from any second source today, and a stale file is worse than no file.
python3 -m venv venv source venv/bin/activate pip install llms-txt # Turn an llms.txt file into one block of context llms_txt2ctx llms.txt > context.md # Or into a web page llms_txt2html llms.txt > llms.html

17.7k stars · MIT · v0.1.7 (2026-09-02) · Track this in Scout · Share this tool
Self-hostable SEO workbench (keywords, rank tracking, audits, AI visibility) with an MCP server. Free Ahrefs/Semrush alternative.
▶Repo detailsthe review · specs · pros & cons · install
What it does
It covers keyword research, rank tracking, competitor comparison, backlink analysis, site audits and AI visibility in one application. The data behind all of that comes from one named provider, DataForSEO, and the README is explicit that the key is the reader's own and the provider bills them directly. It ships an MCP server, so an assistant can ask it questions instead of a person clicking through screens, and it ships prebuilt agent skills with the option of writing more. Two install routes are documented: Docker for a machine of one's own, and Cloudflare for anything reachable over the internet, which the README says works on the free plan. It also names three other hosting services and says making them simpler is work for the coming months. What it does not do is run without that provider key, and the Docker route ships with its own sign-in switched off.
Why it matters
Who it suits. Anyone paying a monthly subscription for this kind of tool and not using most of it, since paying per request instead usually costs less. The MCP server is the real reason to look: a question asked in plain words beats learning another dashboard that nobody opens. Skip it if there is no appetite for an account with the data provider, and skip it if the site is small enough that a free rank check once a month is enough.
Verdict. Worth an evening, with one deployment detail that must not be missed. The documented Docker route runs with the application's own authentication disabled, and the guide says plainly to expose it only behind a proxy that does the authenticating, a private network or a tunnel. A copy of this left open on the internet is somebody else's workbench billed to the reader's provider account. Beyond that, the project is in good order: MIT, read from the file, copyright 2026, with release v0.1.12 on 8 October 2026 and code on the same day. It is still a 0.1.x release, so breaking changes should be expected, and the open pull requests outnumber the open issues, 141 against 99, which usually means a project taking contributions faster than it can review them. The hosted version costs ten dollars a month and adds a stated 28 per cent markup on each provider request, which makes the self-installed route the cheaper one by design.
- MIT, read from the file, with no per-seat pricing and no paid edition carved out of the code.
- An MCP server and prebuilt agent skills, so the questions can be asked in plain words rather than clicked.
- Paid per request through the reader's own provider account instead of a flat monthly subscription, and release v0.1.12 landed on 8 October 2026.
- The documented Docker route disables the application's own sign-in, so it must sit behind something that authenticates.
- Version 0.1.12: young software, with 141 pull requests open against 99 issues.
- The search data is not free. A paid provider key is required, and the project cannot control what that provider charges.
git clone https://github.com/every-app/open-seo.git cd open-seo cp .env.example .env # set DATAFORSEO_API_KEY docker compose up -d

4.8k stars · MIT · v0.18.0 (2026-06-29) · Track this in Scout · Share this tool
One command Lighthouse-scans every page of a site and ranks what to fix. npx, nothing to host.
▶Repo detailsthe review · specs · pros & cons · install
What it does
It crawls a site, runs the same audits on each page it finds, and shows the results in a single screen that can be sorted. The audits cover performance, accessibility, search readiness and best practice, which are the categories the underlying tool reports. It samples rather than auditing every page blindly, which is what the project means by smart sampling. Reports are written into an output folder, and the README recommends adding that folder to the list of files version control ignores. There is a --debug flag for when a crawl goes wrong. It needs Node 22.18.0 or newer, a figure it states explicitly. What it does not do is say anything about its own limits: the README carries no list of unsupported cases and no warning about how much processor time a large site will take.
Why it matters
Who it suits. Anyone running a site of more than a handful of pages who has only ever tested the home page. The pages that most need to rank are usually not the ones anybody tests, and this finds them. It produces a concrete list rather than a verdict, which is exactly the kind of work that can be handed to somebody else. Skip it if the site is a single page, and skip it if there is no intention of acting on the list, because a score is not revenue.
Verdict. Worth five minutes, and the single command with nothing installed afterwards makes the trial free of any decision. It is in good order: MIT, read from the LICENSE.md file, copyright 2016 to the present, Harlan Wilton, with release v0.19.1 on 3 October 2026 and code on 4 October 2026. Three honest limits. It reports and does not fix, and some of what it reports is real work. The crawl itself is heavy on the processor, so it belongs on a laptop rather than on the machine serving the site, and the README does not warn about that at all. And the Node floor of 22.18.0 is specific enough to be a problem on an older machine. If the whole-site view is less interesting than repeatable monitoring over time, sitespeedio/sitespeed.io is the better fit.
- One command through
npx, with nothing installed permanently and no account to create. - It covers the whole site, which is the difference from the single-page tools everybody already uses.
- MIT, read from the file, with release v0.19.1 on 3 October 2026 and code the following day.
- It reports, it does not fix, and the README offers no statement of what it will not handle.
- Crawling a large site is heavy on the processor, and nothing in the documentation warns about that.
- Node 22.18.0 or newer is required, which rules out a machine that has not been updated recently.
Grasppy is a heavy React app, and heavy React apps quietly fail the Core Web Vitals that Google feeds into ranking — usually on the exact marketing pages that most need to rank.
npx unlighthouse --site example.com # Or with pnpm pnpm dlx unlighthouse --site example.com # When a crawl goes wrong npx unlighthouse --site example.com --debug
4.7k stars · MIT · v1.6.8 (2026-06-01) · Track this in Scout · Share this tool
Focused text-chunking library — semantic and recursive splitters that respect message boundaries, so subtopics come out clean.
▶Repo detailsthe review · specs · pros & cons · install
What it does
It splits text into chunks and names eleven ways of doing it, from a plain count of tokens up to strategies that respect sentences, structure, code and tables. It can also refine the result afterwards by merging overlapping pieces or attaching embeddings, which are the numeric representations used for searching by meaning. It exports chunks as JSON or as a dataset, and it can load them straight into a vector database. There is a self-installed REST interface started with chonkie serve, and a Docker route. The README publishes real size figures: a 505 KB package against 1 to 12 MB for the alternatives, and 49 MB installed against 80 to 171 MB, with speed claims of up to 33 times faster on the simplest chunking. It claims 56 languages. What it does not do is state any limitation anywhere in the README, and it does not name a required Python version either.
Why it matters
Who it suits. Anyone building search by meaning over long documents, chat logs or transcripts, where the input has natural boundaries that a blind token count would cut through. It is also the right size for a machine already running other things, which is the point of the published size figures. Skip it if the documents are short enough that one chunk holds each, and skip it if the pipeline already has chunking that works, because this solves one narrow step.
Verdict. Worth two hours, and the honest framing is that it is a useful component rather than a transformation. MIT, read from the file, copyright 2025 Chonkie, which is as clean as licensing gets. Release v1.7.0 is dated 7 July 2026 and code landed on 2 September 2026, so it is current but not busy. Three things to note. The README contradicts itself on how many integrations exist, saying 45 or more in one place and 32 or more in another, which is a small thing that makes the rest of the numbers harder to trust. The strategies that respect meaning need an embedding model, so they are not free in processor terms even though the library itself is tiny. And a company stands behind it with a hosted product, so it is worth watching whether features drift to the paid side. For a chunker that is a dependency of nothing at all, benbrandt/text-splitter is the smaller option.
- MIT, read from the file, with published size figures rather than adjectives: 505 KB packaged, 49 MB installed.
- Eleven named strategies behind one interface, so the chunking can be changed without rewriting the pipeline.
- A REST interface and a Docker route are included, so it can be a service as well as a library.
- The README contradicts itself on its own integration count, saying both 45 or more and 32 or more.
- It states no limitations at all and names no required Python version.
- The meaning-aware strategies need an embedding model, and a company with a hosted product stands behind the project.
python3 -m venv venv source venv/bin/activate pip install chonkie # Or with the extras actually needed pip install "chonkie[api,semantic,code]" # As a service instead of a library chonkie serve

22.9k stars · PostgreSQL License · v0.8.x, actively released through 2026 · Track this in Scout · Share this tool
Vector search as an ordinary SQL query inside the Postgres he already runs. No new server, no new backup story.
▶Repo detailsthe review · specs · pros & cons · install
What it does
It adds column types for vectors in full precision, half precision, binary and sparse form, and operators for six ways of measuring distance between them, including the three in common use. With no index it searches exactly, which means perfect results and a slow query on a large table. Two index types are offered: HNSW, with better query speed but slower builds and more memory, and IVFFlat, with faster builds and less memory but weaker results at the same speed. Because the vectors are ordinary Postgres columns, the database's own behaviour applies to them, including transactions, point-in-time recovery and joins to other tables. The limits are published exactly: 2,000 dimensions for an indexed standard vector, 4,000 for a half-precision one, and 16,000 stored. What it does not do is scale sideways by itself: the README says to use replicas or a separate sharding project for that, mentions no graphics-card support, and warns that filtering happens after the index is read, so a filtered query can return fewer rows than asked for.
Why it matters
Who it suits. Any project that already runs Postgres and wants search by meaning without a second database to run, secure, back up and pay for. The decisive feature is that one query can filter by user, document and date and rank by similarity at the same time, which most dedicated engines make awkward. Skip it if there is no Postgres in the picture already, and skip it at a scale where a dedicated engine's last few per cent of speed is worth a whole extra service.
Verdict. The safest choice in this part, and the licence is part of why: the PostgreSQL Licence, read from the file, which is permissive and carries the database project's own copyright line. It is also the de-facto standard, which has a practical benefit — the examples a coding assistant produces for it tend to be right the first time. Two cautions and one oddity. Building an HNSW index is memory-hungry, and the README warns that setting the working-memory setting too high can exhaust the server, which on a small machine means the build fails rather than runs slowly. The index settings and the embedding model have to stay in step, because changing the model quietly degrades the results with no error to show. The oddity is bookkeeping: the release page answered "there aren't any releases here" today, while the changelog in the repository records 0.8.6 on 29 July 2026 as the newest released version and marks 0.8.7 as unreleased, even though the README's own install commands already name a v0.8.7 tag. Code landed on 8 October 2026.
- No new service. One
CREATE EXTENSION, and the existing Postgres backups already cover the vectors. - Similarity ranking and ordinary filters in the same query, which is the thing dedicated engines handle least well.
- The PostgreSQL Licence, read from the file, and limits published as exact numbers rather than described.
- Building an HNSW index is memory-hungry, and the README warns that the working-memory setting can exhaust a small server.
- No horizontal scaling of its own, no graphics-card support, and filtering after the index read can return fewer rows than requested.
- The release page showed no releases at all today, and the repository disagrees with itself about whether 0.8.7 is out.
pgvector keeps the vectors beside the rows they belong to, so one pg_dump still captures everything and a single query can filter by user, document and date and rank by similarity.
cd /tmp git clone --branch v0.8.7 https://github.com/pgvector/pgvector.git cd pgvector make make install # may need sudo

8.9k stars · AGPL-3.0 · v0.6.6 on PyPI (2026-07) · Track this in Scout · Share this tool
The lowest-friction Python backtester — 20 lines to a full trade log, equity curve and parameter sweep.
▶Repo detailsthe review · specs · pros & cons · install
What it does
It reads a table of price candles, one row per time period, holding an open, high, low and close price. The rule is written as a short Python class: one method sets up the indicators, another runs on each new candle. The tool steps through the history in order, opens and closes the pretend trades, and records every one. The result is a summary with the total return, the Sharpe ratio, the deepest fall from a peak and the number of trades, plus a table of each trade and a chart that can be zoomed. A built-in optimiser called SAMBO runs the same rule with many different settings and shows the scores as a heat map; the project says hundreds of variants finish in seconds. It accepts any instrument that has candle data, so shares, currencies, futures and crypto all work the same way. It supplies no price data and no indicators of its own: the documentation says those come from another library. It lists no broker connection anywhere, so it never places a real order.
Why it matters
Who it suits. Anyone who has noticed a repeating shape in price history and wants to know whether it ever paid. A working test is about twenty lines, so one evening is enough to try several ideas instead of falling for the first. It handles one instrument and one time frame at a time, which keeps it small and quick to learn. Skip it if the plan needs a basket of instruments priced together, or if the rule has to run on live prices rather than old ones.
Verdict. Worth the evening. It asks less of a newcomer than any other Python backtester: one install command, and a first result inside an hour. Two things need a decision before the code grows. The AGPL-3.0 licence, read from the LICENSE.md file, asks that a changed copy offered to other people as a service publish its source code, which costs nothing for private research but matters if the testing is to sit inside something sold. And every backtester looks generous until trading costs are taken out, so set the commission and the spread by hand before trusting a number. One piece of bookkeeping, recorded because it caught this refresh out: the release page answered "there aren't any releases here" today, and the version below comes from the changelog in the repository instead. For many instruments at once, or for machine learning with walk-forward testing, edtechre/pybroker is the better fit.
- One command to install, and a complete test really is about twenty lines of Python.
- A built-in optimiser, and a chart showing exactly where each pretend trade opened and closed.
- Still being worked on: code was pushed on 5 August 2026 and version 0.6.6 is dated 22 July 2026 in the changelog.
- The AGPL-3.0 licence is a real decision, not a formality, if the testing is to ship inside a paid product.
- One instrument and one time frame by design, so it cannot model a basket of holdings.
- No price data and no indicators are included, and the release page showed no releases at all today.
python3 -m venv venv source venv/bin/activate pip install backtesting # An indicator library is a separate install pip install pandas-ta
Checked, and left out
Nothing to show for this edition. Recording the repositories that were checked and rejected began with Edition No. 4, and every edition from there on has the list.
Know a repository we should check?






















