Brat's spiritual successor, still in beta
A browser-native NLP annotation component for when you need to label text without leaving the DOM.

What it does
Poplar renders text annotations directly in the browser, letting you highlight entities and draw relations between them via SVG. It’s a TypeScript component you drop into an HTML element, feed some JSON, and configure to taste. The API surface is deliberately small: new Annotator(data, element, config) and you’re annotating.
The interesting bit The project openly cops to being “not production ready” — a rare honesty that saves you from discovering it the hard way. It’s also a ground-up rewrite of an earlier internal tool, which explains both the cleaner API and the remaining rough spots.
Key highlights
- Renders annotations as SVG overlays on text, not canvas or foreign objects
- Ships as an npm package (
poplar-annotation) with TypeScript definitions - Inspired by brat’s visual design but built for modern bundlers
- Live demo at synyi.github.io/poplar to test before integrating
- API docs and developer guides exist in-repo, not just README promises
Caveats
- Explicitly marked “not production ready” by the maintainers
- 529 stars suggests niche usage; expect to hit edge cases
- Support channel appears to be a single email contact
Verdict Worth a look if you’re building an in-house NLP labeling interface and want something lighter than full brat deployment. Skip it if you need battle-tested stability or enterprise support yesterday.