{"adoption": {"forks": 1383, "observed_at": "2026-08-28T04:11:16.412295+00:00", "stars": 16432}, "canonical_url": "https://ross.abutalabs.com/products/novel", "card": {"archived": false, "artifact_type": "library", "description": "Notion-style WYSIWYG editor with AI-powered autocompletion.", "domain": ["frontend", "web-development", "text-editors", "large-language-models"], "enriched": true, "function": ["editor", "ui-components", "llm-inference", "markdown"], "health_score": 32, "homepage": "https://novel.sh", "language": "TypeScript", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["steven-tey/novel"], "name": "steven-tey/novel", "platform": ["browser"], "pushed_at": "2025-01-18T14:26:33+00:00", "repo": "steven-tey/novel", "stars": 16432, "tags": ["wysiwyg", "tiptap", "prosemirror", "notion-style", "ai-autocompletion", "react", "nextjs", "headless-editor", "nodejs", "web-server"], "topics": ["chatgpt", "notion", "openai", "prosemirror", "tiptap", "ai-sdk", "nextjs", "vercel"], "urls": [], "use_cases": ["add a Notion-style WYSIWYG editor to a React app", "rich text editor with AI autocompletion", "headless editor with slash commands", "build a Notion clone editor", "embed an AI writing assistant in a web app", "markdown-friendly editor for Next.js"], "what_it_is": "Novel is an open-source, headless Notion-style WYSIWYG rich text editor built on Tiptap and ProseMirror, with AI-powered autocompletion via the OpenAI API. It ships as an npm package for React (with community packages for Svelte and Vue) plus a demo Next.js app and a VSCode extension.", "when_to_avoid": ["you need a non-React framework without relying on community-maintained packages", "you want a fully batteries-included editor with no OpenAI API key or backend setup", "you need a plain lightweight text editor without AI features"], "when_to_choose": ["you want a Notion-like editing experience in React with slash commands and AI completions", "you need a headless Tiptap-based editor you can style and extend", "you're on Next.js/Vercel and want a one-click deployable editor demo"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/novel", "repo": "steven-tey/novel", "role": "main", "score": 33}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:16.412295+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:05:06.815575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7505eae7980c7c1bc92377aa9f35cf39bafcf82bae20ec9fe87caa23e82366d", "fetched_at": "2026-08-28T04:11:16.412295+00:00", "kind": "readme", "missing": false, "url": "https://github.com/steven-tey/novel"}, {"content_hash": "93ae883f8176ddb4f86b2535a078526b57ccbc04ae59d09b61298422d862a627", "fetched_at": "2026-08-29T08:02:49.387589+00:00", "kind": "homepage", "missing": false, "url": "https://novel.sh"}, {"content_hash": "5042743fbdf5b29476e418743e16a28c26cd8ea3bc6380efeebac1486f38001f", "fetched_at": "2026-08-29T08:02:49.390061+00:00", "kind": "site_page", "missing": false, "url": "https://novel.sh/docs"}, {"content_hash": "43aab4c364876c11683395bbaa3d34fcba9284212eadb8ddd310c1c7c0b76003", "fetched_at": "2026-08-29T08:02:49.391884+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/novel"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:16.412295+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:05:06.815575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7505eae7980c7c1bc92377aa9f35cf39bafcf82bae20ec9fe87caa23e82366d", "fetched_at": "2026-08-28T04:11:16.412295+00:00", "kind": "readme", "missing": false, "url": "https://github.com/steven-tey/novel"}, {"content_hash": "93ae883f8176ddb4f86b2535a078526b57ccbc04ae59d09b61298422d862a627", "fetched_at": "2026-08-29T08:02:49.387589+00:00", "kind": "homepage", "missing": false, "url": "https://novel.sh"}, {"content_hash": "5042743fbdf5b29476e418743e16a28c26cd8ea3bc6380efeebac1486f38001f", "fetched_at": "2026-08-29T08:02:49.390061+00:00", "kind": "site_page", "missing": false, "url": "https://novel.sh/docs"}, {"content_hash": "43aab4c364876c11683395bbaa3d34fcba9284212eadb8ddd310c1c7c0b76003", "fetched_at": "2026-08-29T08:02:49.391884+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/novel"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:05:06.815575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7505eae7980c7c1bc92377aa9f35cf39bafcf82bae20ec9fe87caa23e82366d", "fetched_at": "2026-08-28T04:11:16.412295+00:00", "kind": "readme", "missing": false, "url": "https://github.com/steven-tey/novel"}, {"content_hash": "93ae883f8176ddb4f86b2535a078526b57ccbc04ae59d09b61298422d862a627", "fetched_at": "2026-08-29T08:02:49.387589+00:00", "kind": "homepage", "missing": false, "url": "https://novel.sh"}, {"content_hash": "5042743fbdf5b29476e418743e16a28c26cd8ea3bc6380efeebac1486f38001f", "fetched_at": "2026-08-29T08:02:49.390061+00:00", "kind": "site_page", "missing": false, "url": "https://novel.sh/docs"}, {"content_hash": "43aab4c364876c11683395bbaa3d34fcba9284212eadb8ddd310c1c7c0b76003", "fetched_at": "2026-08-29T08:02:49.391884+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/novel"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:11:16.412295+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:16.412295+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:16.412295+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:05:06.815575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7505eae7980c7c1bc92377aa9f35cf39bafcf82bae20ec9fe87caa23e82366d", "fetched_at": "2026-08-28T04:11:16.412295+00:00", "kind": "readme", "missing": false, "url": "https://github.com/steven-tey/novel"}, {"content_hash": "93ae883f8176ddb4f86b2535a078526b57ccbc04ae59d09b61298422d862a627", "fetched_at": "2026-08-29T08:02:49.387589+00:00", "kind": "homepage", "missing": false, "url": "https://novel.sh"}, {"content_hash": "5042743fbdf5b29476e418743e16a28c26cd8ea3bc6380efeebac1486f38001f", "fetched_at": "2026-08-29T08:02:49.390061+00:00", "kind": "site_page", "missing": false, "url": "https://novel.sh/docs"}, {"content_hash": "43aab4c364876c11683395bbaa3d34fcba9284212eadb8ddd310c1c7c0b76003", "fetched_at": "2026-08-29T08:02:49.391884+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/novel"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:16.412295+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:16.412295+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:05:06.815575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7505eae7980c7c1bc92377aa9f35cf39bafcf82bae20ec9fe87caa23e82366d", "fetched_at": "2026-08-28T04:11:16.412295+00:00", "kind": "readme", "missing": false, "url": "https://github.com/steven-tey/novel"}, {"content_hash": "93ae883f8176ddb4f86b2535a078526b57ccbc04ae59d09b61298422d862a627", "fetched_at": "2026-08-29T08:02:49.387589+00:00", "kind": "homepage", "missing": false, "url": "https://novel.sh"}, {"content_hash": "5042743fbdf5b29476e418743e16a28c26cd8ea3bc6380efeebac1486f38001f", "fetched_at": "2026-08-29T08:02:49.390061+00:00", "kind": "site_page", "missing": false, "url": "https://novel.sh/docs"}, {"content_hash": "43aab4c364876c11683395bbaa3d34fcba9284212eadb8ddd310c1c7c0b76003", "fetched_at": "2026-08-29T08:02:49.391884+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/novel"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:16.412295+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:16.412295+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:16.412295+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:05:06.815575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7505eae7980c7c1bc92377aa9f35cf39bafcf82bae20ec9fe87caa23e82366d", "fetched_at": "2026-08-28T04:11:16.412295+00:00", "kind": "readme", "missing": false, "url": "https://github.com/steven-tey/novel"}, {"content_hash": "93ae883f8176ddb4f86b2535a078526b57ccbc04ae59d09b61298422d862a627", "fetched_at": "2026-08-29T08:02:49.387589+00:00", "kind": "homepage", "missing": false, "url": "https://novel.sh"}, {"content_hash": "5042743fbdf5b29476e418743e16a28c26cd8ea3bc6380efeebac1486f38001f", "fetched_at": "2026-08-29T08:02:49.390061+00:00", "kind": "site_page", "missing": false, "url": "https://novel.sh/docs"}, {"content_hash": "43aab4c364876c11683395bbaa3d34fcba9284212eadb8ddd310c1c7c0b76003", "fetched_at": "2026-08-29T08:02:49.391884+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/novel"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:16.412295+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:16.412295+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:05:06.815575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7505eae7980c7c1bc92377aa9f35cf39bafcf82bae20ec9fe87caa23e82366d", "fetched_at": "2026-08-28T04:11:16.412295+00:00", "kind": "readme", "missing": false, "url": "https://github.com/steven-tey/novel"}, {"content_hash": "93ae883f8176ddb4f86b2535a078526b57ccbc04ae59d09b61298422d862a627", "fetched_at": "2026-08-29T08:02:49.387589+00:00", "kind": "homepage", "missing": false, "url": "https://novel.sh"}, {"content_hash": "5042743fbdf5b29476e418743e16a28c26cd8ea3bc6380efeebac1486f38001f", "fetched_at": "2026-08-29T08:02:49.390061+00:00", "kind": "site_page", "missing": false, "url": "https://novel.sh/docs"}, {"content_hash": "43aab4c364876c11683395bbaa3d34fcba9284212eadb8ddd310c1c7c0b76003", "fetched_at": "2026-08-29T08:02:49.391884+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/novel"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:05:06.815575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7505eae7980c7c1bc92377aa9f35cf39bafcf82bae20ec9fe87caa23e82366d", "fetched_at": "2026-08-28T04:11:16.412295+00:00", "kind": "readme", "missing": false, "url": "https://github.com/steven-tey/novel"}, {"content_hash": "93ae883f8176ddb4f86b2535a078526b57ccbc04ae59d09b61298422d862a627", "fetched_at": "2026-08-29T08:02:49.387589+00:00", "kind": "homepage", "missing": false, "url": "https://novel.sh"}, {"content_hash": "5042743fbdf5b29476e418743e16a28c26cd8ea3bc6380efeebac1486f38001f", "fetched_at": "2026-08-29T08:02:49.390061+00:00", "kind": "site_page", "missing": false, "url": "https://novel.sh/docs"}, {"content_hash": "43aab4c364876c11683395bbaa3d34fcba9284212eadb8ddd310c1c7c0b76003", "fetched_at": "2026-08-29T08:02:49.391884+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/novel"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:05:06.815575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7505eae7980c7c1bc92377aa9f35cf39bafcf82bae20ec9fe87caa23e82366d", "fetched_at": "2026-08-28T04:11:16.412295+00:00", "kind": "readme", "missing": false, "url": "https://github.com/steven-tey/novel"}, {"content_hash": "93ae883f8176ddb4f86b2535a078526b57ccbc04ae59d09b61298422d862a627", "fetched_at": "2026-08-29T08:02:49.387589+00:00", "kind": "homepage", "missing": false, "url": "https://novel.sh"}, {"content_hash": "5042743fbdf5b29476e418743e16a28c26cd8ea3bc6380efeebac1486f38001f", "fetched_at": "2026-08-29T08:02:49.390061+00:00", "kind": "site_page", "missing": false, "url": "https://novel.sh/docs"}, {"content_hash": "43aab4c364876c11683395bbaa3d34fcba9284212eadb8ddd310c1c7c0b76003", "fetched_at": "2026-08-29T08:02:49.391884+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/novel"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:05:06.815575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7505eae7980c7c1bc92377aa9f35cf39bafcf82bae20ec9fe87caa23e82366d", "fetched_at": "2026-08-28T04:11:16.412295+00:00", "kind": "readme", "missing": false, "url": "https://github.com/steven-tey/novel"}, {"content_hash": "93ae883f8176ddb4f86b2535a078526b57ccbc04ae59d09b61298422d862a627", "fetched_at": "2026-08-29T08:02:49.387589+00:00", "kind": "homepage", "missing": false, "url": "https://novel.sh"}, {"content_hash": "5042743fbdf5b29476e418743e16a28c26cd8ea3bc6380efeebac1486f38001f", "fetched_at": "2026-08-29T08:02:49.390061+00:00", "kind": "site_page", "missing": false, "url": "https://novel.sh/docs"}, {"content_hash": "43aab4c364876c11683395bbaa3d34fcba9284212eadb8ddd310c1c7c0b76003", "fetched_at": "2026-08-29T08:02:49.391884+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/novel"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 2, "longevity": 90, "rhythm": 40}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1261, "days_push": 592, "days_rel": 568, "gap_med": 0.0, "n_releases_24m": 3}, "score": 33, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}