# milesj/interweave

🌀 React library to safely render HTML, filter attributes, autowrap text with matchers, render emoji characters, and much more.

Repository: https://github.com/milesj/interweave
Canonical: https://ross.abutalabs.com/products/interweave
Homepage: https://interweave.dev
Language: TypeScript
License: MIT
License Family: permissive
Topics: react, html-parsing, emoji-unicode, matcher, react-elements, interpolation, autolink, emoji, emoji-picker
Last push: 2025-02-10T20:06:55+00:00

## Health v2 (maintenance only)
Score: 35/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 6, release rhythm 35, longevity 100
- inputs: {"age_days": 3720, "days_push": 569, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1154, forks 40 (observed 2026-08-28T04:03:47.677330+00:00)

## What it is
A React library for safely rendering HTML strings without dangerouslySetInnerHTML, with XSS protection, attribute filtering, and text matchers for autolinking URLs, emails, and hashtags. It also renders emoji characters and shortcodes using Emojibase data.

## Use cases
- safely render user-submitted HTML in React
- avoid dangerouslySetInnerHTML and XSS vulnerabilities
- autolink URLs, emails, and hashtags in text
- render emoji unicode characters and shortcodes
- strip HTML tags from strings
- inject React components into text via matchers

## When to choose
- you need to render untrusted or third-party HTML content in React safely
- you want autolinking, hashtag, or emoji rendering built into text display
- you need attribute filtering and element allowlists for HTML content

## When to avoid
- you need full HTML sanitization outside of React
- you want a general-purpose HTML parser rather than a rendering component
- your project does not use React

## Facets
- artifact type: library
- maturity: active
- function: parser, ui-components, security, templating
- domain: web-development, frontend, security
- platform: browser
- tags: react, html-rendering, xss-protection, autolink, emoji, matchers, sanitization, nodejs, web-server

## Member repositories
- milesj/interweave (main) score 35

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:47.677330+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T06:33:23.217303+00:00, confidence not recorded.
  - readme: https://github.com/milesj/interweave (fetched 2026-08-28T04:03:47.677330+00:00, sha 0af04abc13b9)
  - homepage: https://interweave.dev (fetched 2026-08-29T12:38:05.499477+00:00, sha 367bdec8a6eb)
  - site_page: https://interweave.dev/docs (fetched 2026-08-29T12:38:05.508390+00:00, sha 5379b70b2b39)
  - registry_npm: https://registry.npmjs.org/interweave (fetched 2026-08-29T12:38:05.510506+00:00, sha 9f289adfb797)
- Data as of 2026-08-30T08:39:29.467469+00:00.
