HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
slab
quill
TypeScript2014–2024
slab / quill

quill

Quill is a modern WYSIWYG editor built for compatibility and extensibility

28Distinct people
30Mentions
0Explicit recommenders
47.4KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Quill is a modern WYSIWYG editor built for compatibility and extensibility

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year30 dated mentions

Observed mentions: 2014-05-08 19:27:17 UTC to 2024-04-22 11:23:45 UTC.

02462014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 5 mentions; 1 submissions, 4 comments20142015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2024

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC514
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC413
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC707
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC303
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC101
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC404
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC000
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC000
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC202
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC101
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC303

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Quill Rich Text Editor Documentation • Development • Contributing • Interactive Playground Quill is a modern rich text editor built for compatibility and extensibility. It was created by Jason Chen and Byron Milligan and actively maintained by Slab. To get started, check out https://quilljs.com/ for documentation, guides, and live demos! Quickstart Instantiate a new Quill object with a css selector for the div that should become the editor. <!-- Include Quill stylesheet --> <link href="https://cdn.jsdelivr.net/npm/quill@2/dist/quill.snow.css" rel="stylesheet" /> <!-- Create the toolbar container --> <div id="toolbar"> <button class="ql-bold">Bold</button> <button class="ql-italic">Italic</button> </div> <!-- Create the editor container --> <div id="editor"> <p>Hello World!</p> <p>Some initial <strong>bold</strong> text</p> <p><br /></p> </div> <!-- Include the Quill library --> <script src="https://cdn.jsdelivr.net/npm/quill@2/dist/quill.js"></script> <!-- Initialize Quill editor --> <script> const quill = new Quill("#editor", { theme: "snow", }); </script> Take a look at the Quill website for more documentation, guides and live playground! Download npm install quill CDN <!-- Main Quill library --> <script src="https://cdn.jsdelivr.net/npm/quill@2/dist/quill.js"></script> <!-- Theme included stylesheets --> <link href="https://cdn.jsdelivr.net/npm/quill@2/dist/quill.snow.css" rel="stylesheet" /> <link href="https://cdn.jsdelivr.net/npm/quill@2/dist/quill.bubble.css" rel="stylesheet" /> <!-- Core build with no theme, formatting, non-essential modules --> <link href="https://cdn.jsdelivr.net/npm/quill@2/dist/quill.core.css" rel="stylesheet" /> <script src="https://cdn.jsdelivr.net/npm/quill@2/dist/quill.core.js"></script> Community Get help or stay up to date. Contribute on Issues Ask questions on Discussions License BSD 3-clause
Read the full README on GitHub

What Hacker News says

30 sources
I just merged a bigger pr last week where I used quillv1. My feature was fairly straight forward - I added a DSL so that users could build custom filter expressions for our trace-data analysis (automotive). I wanted to be tight with my business logic so I added my own lexer, parser and grammar evaluation with neat compiler hints and such - was a joy. But when it came to the frontend it was infuriating. All I wanted was to hightlight the idex of my "compiler-error" but it was just a mess (every once in a while the text-cursor would jump around, sth I simply couldnt fix entirely). Ontop of that this [issue](https://github.com/quilljs/quill/issues/3806) exists - which forces us to upgrade once primeNg lets us. Anyone knows a good alternative? I am done with quill and would love to use something more stable.
In Quill v2 – Rich text editor
Ymmv, but I will never use Quill for a production project again. We started using Quill 1.x around 2016, I initially liked it a lot. Jason proactively reached out to me when I first tweeted about considering Quill, and he was helpful when I had questions about the implementation. Fast forward to 2019, we were running into some bugs, Quill 1.x was in maintenance mode, and 2.0 was effectively undocumented [1]. I reached out to Jason on Twitter [2] to get a sense for the timeline, and he basically told me to get lost. (Also his company Slab now blocks me on Twitter, though I imagine he just meant to block me from his personal account.) Everyone has stressful days, especially when building a startup, so maybe that was just a bad time for me to reach out. My best guess is that they were focused on their own company (fair!) and barely had the t
Read the rest
ime to maintain Quill for their own internal usage, let alone release it as open source. If that's the case, I wish they'd been upfront about it. 5 years later, Quill v2 is finally live. I'm glad to see Slab is still around, and I hope they have the bandwidth to publicly maintain Quill going forward. But if you're thinking about using this in production, I would push on what their commitment is to supporting it, and have a plan for if they stop responding. (Jason, if you're on this thread, no hard feelings, water under the bridge. Feel free to ignore or chime in with your own perspective.) [1] https://github.com/quilljs/quill/issues/2435 [2] https://twitter.com/nickbaum/status/1177240103925796865
In Quill v2 – Rich text editor
Release notes: https://github.com/quilljs/quill/releases/tag/v2.0.0 Announcement post: https://slab.com/blog/announcing-quill-2-0/ I've used quill quite a bit. It's easy to integrate, the json delta format works decently well, and is pretty straightforward, but one thing I find myself doing whenever I use it is asking myself, "Should I just be using prosemirror?". I find Quill to be a great stopgap solution for when I need editing and I need it quick, but in the back of my mind I'm always mentally adding that I'll need a migration plan should that specific feature ever grow in requirements.
In Quill v2 – Rich text editor
I agree. Yes, you can. Quill is the example here. Actually, back in 2015 when we started prototyping CKEditor 5, we started with this approach as well. Our goal from the beginning was to combine real-time editing capabilities with an engine capable of storing and rendering complex rich-text structures (nested tables, complex nested lists, other rich widgets, etc.). We quickly realized that a linear structure is going to be a huge bottleneck. In the end, if you want to represent trees, storing them as a linear structure is counterproductive. So, we went for a tree model. That got many things in the engine an order of magnitude harder (OT being one). But I choose to encapsulate this complexity in the model rather than make it leak to particular plugins. In fact, from what I remember, https://github.com/quilljs/quill/issues/117 (e.g. https:/
Read the rest
/github.com/quilljs/quill/issues/117#issuecomment-644...) is a good example of issues that we avoided. I also talked to companies that built their platforms on top of Quill. One of them ended up gluing together countless Quill instances to power their editor and overcome the limitations of the linear data model but is now looking for a way to rebuild their editor from scratch due to the issues (performance, complexity, stability). So, yes. You can implement a rich-text editor based on a linear model. But it has its immediate limitations that you need to take into consideration.
In You don't need a CRDT to build a collaborative experience
We use Quill, too, we only need rudimentary features, though. Its maintenance status is... questionable, although my information is out of date (see last paragraph). * Github: https://github.com/quilljs/quill/ * It's latest release was 2019-09-09 – which is _ages_ in term of a JS library. * There's tons of open issues, the maintainer was (or still is) rather quiet. * It's pretty much a one-man-show. Although now that I look at it, the last few months a second contributor appeared. * Apparently there is a v2 in the works, but nobody know when it is due nor what its status is. * There were issue that asked whether the project was abandoned. The issues went unanswered, and then were deleted. To be fair: development seems to have picked up again. There were sporadic commits at the end of 2021, and I now see that there are a few this year, t
Read the rest
oo.
In Rich Text Editor for React
FWIW, the editor they use, at least on the web, seems to be https://github.com/quilljs/quill. I'm guessing Slack implemented something a-la https://github.com/patleeman/quill-markdown-shortcuts, but not very well... In general the model of allowing separate positions for cursor inside vs outside a span is a huge improvements over WYSIWYG assigning "sticky formatting" to characters. (Hat tip to TeXmacs which was maybe first time I've met that UI pattern.) But you have to do it consistently. E.g. end of literal block has separate inside/outside but start doesn't. (Of course, in source editing, it comes for free – formatting is delimited by characters like * or ` and cursor is clearly before or after the delimeter.) ---- I believe there is a saner middle ground — formatting as syntax highlighting. You're still editing the source, no hidden
Read the rest
state, just immediate in-place feedback. (Nowdays some call this "WYSIWYM" though it's not exactly same) Examples: https://stackedit.io/, https://codemirror.net/demo/variableheight.html, https://simplemde.com/, https://laobubu.net/HyperMD (the latter is borderline, hides too many formatting chars IMHO, but does reveal them when you move cursor to edit.)
In Slack’s new WYSIWYG input box is terrible
Read the rest
In Everything I googled in a week as a professional software engineer
> The MIT license is replaced with a custom, ‘free for non-commercial and evaluation’ license This is really all I want out of anything. I don’t want to pay to evaluate, just to see if it’s a good fit. But if I’m going to use something commercially, I actually want to pay for it, at least if that thing is a complicated component like a rich text editor or handsontable. These open source projects usually have 1-2 developers who account for 95% of code changes[0][1]. If they went away, the project would die. Commercially, that’s a huge risk. EDIT: Just read this license. I wonder why they went with license keys? [0] https://github.com/quilljs/quill/graphs/contributors [1] https://github.com/basecamp/trix/graphs/contributors
In Handsontable drops open source for a non-commercial license
waves Y'all are talking about me. I was indeed on the wave team, although I joined Wave right near the end. (And then I stayed on to help opensource the whole thing.) We wrote ShareDB at Lever[1], which was in the 2012 YC batch (iirc). We wrote it to allow realtime collaborative editing in our application of all our data fields by default. I'm still really proud of that work. ShareDB primarily uses JSON-OT[2], which lets you do realtime OT over arbitrary application data. The lever team has been maintaining & improving sharedb for the last few years, which is really lovely to see as I've moved on to other projects. One nice thing about OT is that its much easier to implement. The original quilljs author (Jason Chen) wrote the rich text OT implementation. ShareDB works with any OT code (so long as operations can be JSON stringified / parse
Read the rest
d). And its all hooked up in quill, which is super neat. And looking at the quill github[3], it looks like David Greenspan has been maintaining quill recently. David Greenspan is one of the original authors of Etherpad, which is one of the first web based text OT engines. [1] https://lever.co/ [2] https://github.com/ottypes/json0 [3] https://github.com/quilljs/quill
In Real Differences Between OT and CRDT for Co-Editors
Quill is now a very popular project on Github, in the top 250 of all projects. A lot of people want to add their two cents to popular project and unfortunately the volume is far too high for a) me to respond to every single attempt at adding said cents and b) Github Issues's linear commenting UI makes all attempts at adding two cents confusing and cluttering. With this I prioritize the question that was asked, and specifically the concerns the OP raises. I have repeated many times that the removal of getHTML was because it was a passthrough function that added no additional value to Quill. You can look at the code history and the implementation of getHTML to confirm this fact. It has nothing to do with the desire to remove functionality as no functionality was removed. I'm confused why Delta is a bad name, since the word delta means chang
Read the rest
e, variation or difference and that's seems to describe what it is: a change to Quill's content. Data source on the other hand is unspecific and even misleading. Naming is hard though and other readers can find out what Deltas are here https://quilljs.com/docs/delta/ and decide for themselves. Tables was reported as a feature request by me early in the project life because it is a known feature of Word but only years later did users indicated strong interest in it in Sept 2016. I believe in community contribution to open source so I decided to give the community a chance to build it so I wrote offered detailed implementation guidance: https://github.com/quilljs/quill/issues/117#issuecomment-244.... The fact that this user had seemingly urgent need for it and was employed by a large public company with resources also contributed to this decision. Valuable exchanges were had in the Issue and multiple users has fully implemented it for their companies to varying levels of feature richness depending on their requirements. An official canonical implementation is coming in 2.0: https://medium.com/@jhchen/the-state-of-quill-and-2-0-fb38db....
In ProseMirror 1.0
I wouldn't use Quill. The developers are passive-aggressive to the notion of rendering Quill content outside of the Quill Editor, having ripped out the APIs to do so from newer versions, and silencing conversations in their Github Issues. You can see the latest flare-ups here: https://github.com/quilljs/quill/issues/993 The project also has secondary smells such as inventing weird names for existing concepts; 'Delta', for example instead of 'data source' or something more intelligible. Lastly, it markets itself as feature-complete, but has failed to implement support for something as basic as tables, which have been repeatedly requested for the past 3 years. Personally, I would be afraid to build anything mission-critical upon it.
In ProseMirror 1.0

Showing the 15 most recent of 30 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.