Skip to content

Commit 88f0edc

Browse files
docs: website update (#1878)
* Added SLA and commercial license docs * Fixed links * Footer fix * small license fix * fix * update FAQ * improve content * update terms * address feedback + fix readme --------- Co-authored-by: Matthew Lipski <[email protected]>
1 parent c114ff0 commit 88f0edc

File tree

27 files changed

+2790
-161
lines changed

27 files changed

+2790
-161
lines changed

LICENSE renamed to LICENSE-MPL.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -370,4 +370,4 @@ Exhibit B - "Incompatible With Secondary Licenses" Notice
370370
---------------------------------------------------------
371371

372372
This Source Code Form is "Incompatible With Secondary Licenses", as
373-
defined by the Mozilla Public License, v. 2.0.
373+
defined by the Mozilla Public License, v. 2.0.

LICENSE.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
BlockNote is 100% Open Source Software.
2+
3+
Source code in this repository is covered by the "Mozilla Public License Version 2.0" (MPL-2.0) license, except for the XL packages. The MPL-2.0 license allows you to use BlockNote in commercial (and closed-source) applications. If you make changes to the BlockNote source files, you're expected to publish these changes so the wider community can benefit as well.
4+
5+
The XL packages (source code in the `packages/xl-*` directories and published in NPM as `@blocknote/xl-*`) are licensed under the "GNU Affero General Public License Version 3" (AGPL-3.0). Additionally, a commercial license is available. See our website (https://www.blocknotejs.org/pricing) for more information and the commercial license terms.

README.md

Lines changed: 7 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,12 @@ Welcome to BlockNote! The open source Block-Based
99
React rich text editor. Easily add a modern text editing experience to your app.
1010
</p>
1111

12-
<p align="center">
13-
<a href="https://discord.gg/Qc2QTTH5dF"><img alt="Discord" src="https://img.shields.io/badge/Chat on discord%20-%237289DA.svg?&style=for-the-badge&logo=discord&logoColor=white"/></a>
14-
</p>
15-
1612
<p align="center">
1713
<a href="https://www.blocknotejs.org">
1814
Homepage
19-
</a> - <a href="https://www.blocknotejs.org/docs/introduction">
15+
</a> - <a href="https://www.blocknotejs.org/docs">
2016
Documentation
21-
</a> - <a href="https://www.blocknotejs.org/docs/quickstart">
17+
</a> - <a href="https://www.blocknotejs.org/docs/getting-started">
2218
Quickstart
2319
</a>- <a href="https://www.blocknotejs.org/examples">
2420
Examples
@@ -48,8 +44,6 @@ function App() {
4844

4945
`@blocknote/react` comes with a fully styled UI that makes it an instant, polished editor ready to use in your app.
5046

51-
If you prefer to create your own UI components (menus), or don't want to use React, you can use `@blocknote/core` (_advanced_, [see docs](https://www.blocknotejs.org/docs/vanilla-js)).
52-
5347
# Features
5448

5549
BlockNote comes with a number of features and components to make it easy to embed a high-quality block-based editor in your app:
@@ -84,31 +78,19 @@ BlockNote comes with a number of features and components to make it easy to embe
8478

8579
# Feedback 🙋‍♂️🙋‍♀️
8680

87-
We'd love to hear your thoughts and see your experiments, so [come and say hi on Discord](https://discord.gg/Qc2QTTH5dF) or [Matrix](https://matrix.to/#/#typecell-space:matrix.org).
81+
We'd love to hear your thoughts and see your experiments, so [come and say hi on Discord](https://discord.gg/Qc2QTTH5dF).
8882

8983
# Contributing 🙌
9084

91-
See [CONTRIBUTING.md](CONTRIBUTING.md) for more info and guidance on how to run the project (TLDR: just use `npm start`).
92-
93-
Directory structure:
94-
95-
```
96-
blocknote
97-
├── packages/core - The core of the editor
98-
├── packages/react - The main library for use in React apps
99-
├── packages/mantine - Mantine (default) implementation of BlockNote UI
100-
├── packages/ariakit - AriaKit implementation of BlockNote UI
101-
├── packages/shadcn - ShadCN / Tailwind / Radix implementation of BlockNote UI
102-
├── examples - Example apps
103-
├── playground - App to browse the example apps (https://playground.blocknotejs.org)
104-
└── tests - Playwright end to end tests
105-
```
85+
See [CONTRIBUTING.md](CONTRIBUTING.md) for more info and guidance on how to run the project (TLDR: just use `pnpm start`).
10686

10787
The codebase is automatically tested using Vitest and Playwright.
10888

10989
# License 📃
11090

111-
BlockNote is licensed under the [MPL 2.0 license](https://fossa.com/blog/open-source-software-licenses-101-mozilla-public-license-2-0/), which allows you to use BlockNote in commercial (and closed-source) applications. If you make changes to the BlockNote source files, you're expected to publish these changes so the wider community can benefit as well.
91+
BlockNote is 100% Open Source Software. The majority of BlockNote is licensed under the [MPL-2.0 license](LICENSE-MPL.txt), which allows you to use BlockNote in commercial (and closed-source) applications. If you make changes to the BlockNote source files, you're expected to publish these changes so the wider community can benefit as well. [Learn more](https://fossa.com/blog/open-source-software-licenses-101-mozilla-public-license-2-0/).
92+
93+
The XL packages (source code in the `packages/xl-*` directories and published in NPM as `@blocknote/xl-*`) are licensed under the AGPL-3.0. If you cannot comply with this license and want to use the XL libraries, you'll need a commercial license. Refer to [our website](https://www.blocknotejs.org/pricing) for more information.
11294

11395
# Credits ❤️
11496

docs/app/(home)/faq/FAQ.tsx

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ const faqs = [
1212
{
1313
id: 2,
1414
question: "Is BlockNote ready for production use?",
15-
answer: `BlockNote is used by several companies in production. Also, we didn't reinvent the wheel. The core editor is built on top of Prosemirror - a battle tested framework that powers software from Atlassian, Gitlab, the New York Times, and many others.`,
15+
answer: `BlockNote is used by dozens of companies in production, ranging from startups to large enterprises and public institutions. Also, we didn't reinvent the wheel. The core editor is built on top of Prosemirror - a battle tested framework that powers software from Atlassian, Gitlab, the New York Times, and many others.`,
1616
},
1717
{
1818
id: 3,
@@ -23,8 +23,14 @@ const faqs = [
2323
{
2424
id: 4,
2525
question: "Is BlockNote really free?",
26-
answer: `100% of BlockNote is open source. While the library is free, we offer paid consultancy and support services to help sustain BlockNote.
27-
If you are using BlockNote in a commercial project, we encourage to sign up for BlockNote Pro!`,
26+
answer: (
27+
<>
28+
100% of BlockNote is open source. We offer consultancy, support services
29+
and commercial licenses for specific XL packages to help sustain
30+
BlockNote. Explore our <a href="/pricing">pricing page</a> for more
31+
details.
32+
</>
33+
),
2834
},
2935
];
3036

docs/app/(home)/letter/Letter.tsx

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import cn from "classnames";
21
import CTAButton from "@/components/CTAButton";
3-
import { Section } from "@/components/Section";
42
import { FadeIn } from "@/components/FadeIn";
53
import { HeroText } from "@/components/Headings";
4+
import { Section } from "@/components/Section";
65
import gradients from "@/components/gradients.module.css";
6+
import cn from "classnames";
77

88
export function Letter() {
99
return (
@@ -18,33 +18,33 @@ export function Letter() {
1818
</FadeIn>
1919
<FadeIn className="flex flex-col gap-3 leading-6 md:text-lg">
2020
<p>
21-
When we started building an Open Source Notion alternative, we
22-
figured: &quot;How hard can it be?&quot;. Pretty hard, it turns out.
23-
Text editors in 2024? More complex than we thought.
21+
Building a modern, collaborative text editor is a complex
22+
engineering challenge that used to take months of work, deep
23+
technical expertise and a lot of patience - only within reach of the
24+
largest companies.
2425
</p>
25-
<br />
2626
<p>
27-
After going down many rabbit holes and becoming accidental wizards
28-
in Prosemirror (the industry standard used by giants like NY Times,
29-
Atlassian, Gitlab and many others), we figured that we could save
30-
other devs a lot of pain by creating a modern, batteries-included,
31-
block-based text editor on top of it.
27+
Leveraging our expertise, we set out to save developers months of
28+
engineering work by creating a modern, batteries-included
29+
block-based text editor built on top of industry standards like
30+
Prosemirror and Yjs (used by giants like NY Times, Atlassian,
31+
Wordpress, Gitlab and many others).
3232
</p>
33-
<br />
33+
<p>Enter BlockNote.</p>
3434
<p>
35-
We&apos;re excited to share BlockNote with you. No more dealing with
36-
low-level positions; use the strongly typed, block-based API to work
37-
with your editor and documents. No need to build all interface
38-
elements from scratch; it comes with modern UI components
39-
out-of-the-box. Now, you can add a rich text editor with a polished
40-
UX to your app with just a few lines of code.
35+
BlockNote eliminates the need to deal with low-level details around
36+
text positions and document structure. Instead, work with the
37+
strongly typed, block-based API to work with your editor and
38+
documents. You also get a full set of modern UI components
39+
out-of-the-box: no need to build all interface elements from
40+
scratch. With just a few lines of code, you can integrate a
41+
polished, collaborative text editor into your app.
4142
</p>
42-
<br />
4343
<p>
44-
It&apos;s early days, but the excitement is real. We&apos;re seeing
45-
a mix of companies, enthusiasts, and community heroes jumping in. As
46-
a community-led open source project, we&apos;re looking forward to
47-
your contributions, feedback, or collaboration!
44+
Supported by an active and growing community of companies and
45+
developers, we invite you to contribute, provide feedback, and
46+
partner with us to shape the future of rich text editing and
47+
collaborative software!
4848
</p>
4949
</FadeIn>
5050
<FadeIn className="relative h-px w-full" noVertical viewTriggerOffset>
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import CTAButton from "@/components/CTAButton";
2+
import GitHubButton from "@/components/GitHubButton";
3+
import { source } from "@/lib/source/pages";
4+
import { getFullMetadata } from "@/util/getFullMetadata";
5+
import { getMDXComponents } from "@/util/mdx-components";
6+
import { DocsBody } from "fumadocs-ui/page";
7+
import { notFound } from "next/navigation";
8+
9+
export default async function BlocknoteXlCommercialLicensePage() {
10+
const page = source.getPage(["blocknote-xl-commercial-license"]);
11+
if (!page) {
12+
notFound();
13+
}
14+
const MDXContent = page.data.body;
15+
16+
return (
17+
<div className="mx-auto max-w-3xl pt-8">
18+
<DocsBody>
19+
<MDXContent
20+
components={getMDXComponents({
21+
GitHubButton,
22+
CTAButton,
23+
})}
24+
/>
25+
</DocsBody>
26+
</div>
27+
);
28+
}
29+
30+
export async function generateMetadata() {
31+
const page = source.getPage(["blocknote-xl-commercial-license"]);
32+
if (!page) {
33+
notFound();
34+
}
35+
36+
return getFullMetadata({
37+
title: page.data.title,
38+
description: page.data.description,
39+
path: page.url,
40+
ogImageTitle: page.data.imageTitle,
41+
});
42+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { HomeLayout } from "fumadocs-ui/layouts/home";
2+
import type { ReactNode } from "react";
3+
import { baseOptions } from "@/app/layout.config";
4+
import { Footer } from "@/components/Footer";
5+
6+
export default function Layout({ children }: { children: ReactNode }) {
7+
return (
8+
<>
9+
<HomeLayout {...baseOptions}>{children}</HomeLayout>
10+
<Footer />
11+
</>
12+
);
13+
}

0 commit comments

Comments
 (0)