Check whether a document or article is written at an appropriate reading level for its audience.
Flag overly complex sentences in an editor or content pipeline before publishing.
Compare readability scores across drafts written in different languages.
| madeval/readsightjs | 8thpark/geode | codeweb-dev/spark-ui | |
|---|---|---|---|
| Stars | 25 | 25 | 25 |
| Language | TypeScript | TypeScript | TypeScript |
| Setup difficulty | easy | moderate | — |
| Complexity | 2/5 | 2/5 | — |
| Audience | developer | vibe coder | developer |
Figures from each repo's GitHub metadata at analysis time.
ReadSightJS is a Node.js and TypeScript library that measures how easy a piece of text is to read. Instead of guessing at reading difficulty by eye, it runs your text through established readability formulas and gives you back a score, a grade level, and a plain description like "Very Easy" or "College" level. The library supports 86 languages and 17 different readability formulas. Some formulas, like Gunning Fog and Coleman-Liau, work across every supported language. Others are tuned for specific languages: for example there are formulas built specifically for German, Italian, Arabic, and Spanish text. When you create a ReadSight instance for a language, it automatically knows which formulas apply to that language, so you never accidentally run an English-only formula on Thai text. Under the hood, the tool counts syllables in three different ways depending on the language: a heuristic method using vowel patterns and word lists, the TeX hyphenation algorithm originally built for line breaking in typesetting, or a combination of both. Most languages use the TeX-based approach, a handful use the heuristic approach, and English uses a mix of the two. This matters because syllable counting is the backbone of most readability formulas. ReadSightJS has no runtime dependencies, so installing it does not pull in a chain of other packages. It works with both modern ESM imports and older CommonJS require statements, and it ships with TypeScript type definitions built in. It is described as a byte-accurate port of an existing PHP library, meaning its output is verified to match that reference implementation using saved test data. A typical use case is checking whether a piece of writing, like a legal document or a product description, is written at an appropriate reading level for its intended audience. Developers could use it to flag overly complex text in an editor, or to compare drafts before publishing. The project is released under the MIT license and requires Node.js version 18 or later.
A library that scores how hard text is to read, across 86 languages and 17 readability formulas.
Mainly TypeScript. The stack also includes TypeScript, Node.js.
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.