# novel

> Notion-style WYSIWYG editor with AI-powered autocompletions

Latest version **1.0.2** (published 2025-01-18) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install novel
pnpm add novel
yarn add novel
bun add novel
```

## Health

**Score 40/100 (D)** — status: maintenance-mode.

Positive: has types; esm support; no vulnerabilities; popular repo.

Warnings: low downloads.

Negative: stale; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.2 |
| Published | 2025-01-18 |
| First published | 2014-05-14 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | bundled |
| Module format | ESM |
| Dependencies | 29 |
| Unpacked size | 38.7 KB |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 16448 |
| Author | Steven Tey |
| Maintainers | steventey, andrewdoro |
| Keywords | ai, novel, editor, markdown, nextjs, react |

## Links

- npm: https://www.npmjs.com/package/novel
- Repository: https://github.com/steven-tey/novel
- Homepage: https://novel.sh
- Issues: https://github.com/steven-tey/novel/issues
- npm.io page: https://npm.io/package/novel

## Dependencies (29)

- [cmdk](https://npm.io/package/cmdk.md) ^1.0.4
- [jotai](https://npm.io/package/jotai.md) ^2.11.0
- [katex](https://npm.io/package/katex.md) ^0.16.20
- [tippy.js](https://npm.io/package/tippy.js.md) ^6.3.7
- [@tiptap/pm](https://npm.io/package/@tiptap/pm.md) ^2.11.2
- [tunnel-rat](https://npm.io/package/tunnel-rat.md) ^0.1.2
- [@types/node](https://npm.io/package/@types/node.md) ^22.10.6
- [react-tweet](https://npm.io/package/react-tweet.md) ^3.2.1
- [@tiptap/core](https://npm.io/package/@tiptap/core.md) ^2.11.2
- [@tiptap/react](https://npm.io/package/@tiptap/react.md) ^2.11.2
- [react-markdown](https://npm.io/package/react-markdown.md) ^9.0.3
- [react-moveable](https://npm.io/package/react-moveable.md) ^0.56.0
- [@tiptap/suggestion](https://npm.io/package/@tiptap/suggestion.md) ^2.11.2
- [@tiptap/starter-kit](https://npm.io/package/@tiptap/starter-kit.md) ^2.11.2
- [@radix-ui/react-slot](https://npm.io/package/@radix-ui/react-slot.md) ^1.1.1
- [@tiptap/extension-link](https://npm.io/package/@tiptap/extension-link.md) ^2.11.2
- [@tiptap/extension-color](https://npm.io/package/@tiptap/extension-color.md) ^2.11.2
- [@tiptap/extension-image](https://npm.io/package/@tiptap/extension-image.md) ^2.11.2
- [@tiptap/extension-youtube](https://npm.io/package/@tiptap/extension-youtube.md) ^2.11.2
- [@tiptap/extension-highlight](https://npm.io/package/@tiptap/extension-highlight.md) ^2.11.2
- [@tiptap/extension-task-item](https://npm.io/package/@tiptap/extension-task-item.md) ^2.11.2
- [@tiptap/extension-task-list](https://npm.io/package/@tiptap/extension-task-list.md) ^2.11.2
- [@tiptap/extension-underline](https://npm.io/package/@tiptap/extension-underline.md) ^2.11.2
- [@tiptap/extension-text-style](https://npm.io/package/@tiptap/extension-text-style.md) ^2.11.2
- [@tiptap/extension-placeholder](https://npm.io/package/@tiptap/extension-placeholder.md) ^2.11.2
- [@tiptap/extension-character-count](https://npm.io/package/@tiptap/extension-character-count.md) ^2.11.2
- [@tiptap/extension-horizontal-rule](https://npm.io/package/@tiptap/extension-horizontal-rule.md) ^2.11.2
- [tiptap-extension-global-drag-handle](https://npm.io/package/tiptap-extension-global-drag-handle.md) ^0.1.16
- [@tiptap/extension-code-block-lowlight](https://npm.io/package/@tiptap/extension-code-block-lowlight.md) ^2.11.2

## Alternatives

- [@expo/fingerprint](https://npm.io/package/@expo/fingerprint.md) — 6.2M weekly downloads
- [@azure/monitor-opentelemetry-exporter](https://npm.io/package/@azure/monitor-opentelemetry-exporter.md) — 850.0K weekly downloads
- [@azure/monitor-opentelemetry](https://npm.io/package/@azure/monitor-opentelemetry.md) — 624.0K weekly downloads
- [@posthog/ai](https://npm.io/package/@posthog/ai.md) — 423.3K weekly downloads
- [fakefilter](https://npm.io/package/fakefilter.md) — 63.9K weekly downloads

## Recent versions

- 1.0.2 (latest) — 2025-01-18
- 0.2.0-canary.0 (canary) — 2024-02-12
- 1.0.1 — 2025-01-18
- 1.0.0 — 2025-01-18
- 0.5.0 — 2024-07-25
- 0.4.3 — 2024-06-20
- 0.4.2 — 2024-05-19
- 0.4.1 — 2024-05-17
- 0.4.0 — 2024-05-17
- 0.3.1 — 2024-03-30
- 0.3.0 — 2024-03-29
- 0.2.13 — 2024-03-18
- 0.2.12 — 2024-03-11
- 0.2.11 — 2024-03-08
- 0.2.10 — 2024-03-07
- … 33 more at https://npm.io/package/novel/versions

## README

<a href="https://novel.sh">
  <img alt="Novel is a Notion-style WYSIWYG editor with AI-powered autocompletions." src="https://novel.sh/opengraph-image.png">
  <h1 align="center">Novel</h1>
</a>

<p align="center">
  An open-source Notion-style WYSIWYG editor with AI-powered autocompletions. 
</p>

<p align="center">
  <a href="https://news.ycombinator.com/item?id=36360789"><img src="https://img.shields.io/badge/Hacker%20News-369-%23FF6600" alt="Hacker News"></a>
  <a href="https://github.com/steven-tey/novel/blob/main/LICENSE">
    <img src="https://img.shields.io/github/license/steven-tey/novel?label=license&logo=github&color=f80&logoColor=fff" alt="License" />
  </a>
  <a href="https://github.com/steven-tey/novel"><img src="https://img.shields.io/github/stars/steven-tey/novel?style=social" alt="Novel.sh's GitHub repo"></a>
</p>

<p align="center">
  <a href="#introduction"><strong>Introduction</strong></a> ·
  <a href="#deploy-your-own"><strong>Deploy Your Own</strong></a> ·
  <a href="#setting-up-locally"><strong>Setting Up Locally</strong></a> ·
  <a href="#tech-stack"><strong>Tech Stack</strong></a> ·
  <a href="#contributing"><strong>Contributing</strong></a> ·
  <a href="#license"><strong>License</strong></a>
</p>
<br/>

## Docs (WIP)

https://novel.sh/docs/introduction

## Introduction

[Novel](https://novel.sh/) is a Notion-style WYSIWYG editor with AI-powered autocompletions.

https://github.com/steven-tey/novel/assets/28986134/2099877f-4f2b-4b1c-8782-5d803d63be5c

<br />

## Deploy Your Own

You can deploy your own version of Novel to Vercel with one click:

[![Deploy with Vercel](https://vercel.com/button)](https://stey.me/novel-deploy)

## Setting Up Locally

To set up Novel locally, you'll need to clone the repository and set up the following environment variables:

- `OPENAI_API_KEY` – your OpenAI API key (you can get one [here](https://platform.openai.com/account/api-keys))
- `BLOB_READ_WRITE_TOKEN` – your Vercel Blob read/write token (currently [still in beta](https://vercel.com/docs/storage/vercel-blob/quickstart#quickstart), but feel free to [sign up on this form](https://vercel.fyi/blob-beta) for access)

If you've deployed this to Vercel, you can also use [`vc env pull`](https://vercel.com/docs/cli/env#exporting-development-environment-variables) to pull the environment variables from your Vercel project.

To run the app locally, you can run the following commands:

```
pnpm i
pnpm dev
```

## Cross-framework support

While Novel is built for React, we also have a few community-maintained packages for non-React frameworks:

- Svelte: https://novel.sh/svelte
- Vue: https://novel.sh/vue

## VSCode Extension

Thanks to @bennykok, Novel also has a VSCode Extension: https://novel.sh/vscode

https://github.com/steven-tey/novel/assets/28986134/58ebf7e3-cdb3-43df-878b-119e304f7373

## Tech Stack

Novel is built on the following stack:

- [Next.js](https://nextjs.org/) – framework
- [Tiptap](https://tiptap.dev/) – text editor
- [OpenAI](https://openai.com/) - AI completions
- [Vercel AI SDK](https://sdk.vercel.ai/docs) – AI library
- [Vercel](https://vercel.com) – deployments
- [TailwindCSS](https://tailwindcss.com/) – styles
- [Cal Sans](https://github.com/calcom/font) – font

## Contributing

Here's how you can contribute:

- [Open an issue](https://github.com/steven-tey/novel/issues) if you believe you've encountered a bug.
- Make a [pull request](https://github.com/steven-tey/novel/pull) to add new features/make quality-of-life improvements/fix bugs.

<a href="https://github.com/steven-tey/novel/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=steven-tey/novel" />
</a>

## Repo Activity

![Novel.sh repo activity – generated by Axiom](https://repobeats.axiom.co/api/embed/2ebdaa143b0ad6e7c2ee23151da7b37f67da0b36.svg)

## License

Licensed under the [Apache-2.0 license](https://github.com/steven-tey/novel/blob/main/LICENSE).

---
_Source: https://npm.io/package/novel · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
