Tiptap V3 Roadmap #5793
Replies: 43 comments 172 replies
-
Package versioning strategy (Status: Feedback)Tiptap major version 2 had all packages bumped at the same time, this was to try to make it clear what versions were compatible with one another, but we are thinking about decoupling versions. We may be moving towards a model where if a change is made to only one package, only that one package has it's version bumped, this should help make it clear what actually changed between versions (rather than getting a package bump because any tiptap package was bumped). This would mean that packages would be bumped a lot less often (since core is 80% of our changes). TLDR; Moving from:
To:
|
Beta Was this translation helpful? Give feedback.
-
Package grouping (Status: Merged) #5469We are trying to reduce the number of overall packages we have. Right now, to have a table in your application you need to depend on So, we are going to maintain the existing packages to not break existing apps, but have them all be re-exports on a single package Relatedly, we also want to introduce smaller kits of functionality like for tables, lists, and text styling (bold, italics, underlining, etc.). |
Beta Was this translation helpful? Give feedback.
-
Drop UMD support (Status: Merged) #5455We’ve moved build systems for a much faster development experience, unfortunately, this means that we will be forced to drop UMD builds of our packages since it is not supported by our build tool (tsup). UMD is a very old format so this should not be a concern for most consumers |
Beta Was this translation helpful? Give feedback.
-
Starter-Kit (Status: Merged) #5466We want to make it easier to manage multiple sets of extensions, and give a better out of the box experience with Tiptap. Historically, we had the |
Beta Was this translation helpful? Give feedback.
-
Package manager (Status: Merged) #5978NPM used to be a good package manager, but it has been left behind in terms of speed and functionality, we will migrate off of it internally, but this should have no effect on package consumers. We've decided to go with PNPM, for stability, speed & feature-set |
Beta Was this translation helpful? Give feedback.
-
Decorations API (Status: Decided) WIP: #5437Tiptap users have drop down into Prosemirror plugins, whenever they wanted to leverage Prosemirror decorations, now we are experimenting with an API that will make Decorations easy. Feel free to comment on our PR here: #5437 We aren't entirely sure at the moment what this API will look like, but in Tiptap fashion we hope that it is flexible enough to handle all of your decoration needs! |
Beta Was this translation helpful? Give feedback.
-
Markdown extension (Status: Idea)We’ve heard you, we want to build a solution to have the editor both accept & output content as markdown, in the age of LLMs which are quite good at outputting markdown, it is a must! Of course, this will be a tradeoff since markdown is an ill-defined format, but we understand the need for it. Our idea is to offer a first-party extension which will add support for inputting & outputting markdown. To keep bundle sizes lean, we would not want to force this on users who do not need such an extension. We are still working on the details of what this would mean so please leave your ideas below! |
Beta Was this translation helpful? Give feedback.
-
Better TypeScript typings (Status: continuous improvement)To improve the typing of the project overall, we need to completely refactor the typings we have right now, this would allow typing of things like attributes, HTMLAttributes, the editor storage API and so on… Doing this in a major version is a natural place to make this sort of a change as it may affect how you type your projects. Give your ideas of what you would like to be better typed below! |
Beta Was this translation helpful? Give feedback.
-
Trailing Node Extension (Status: Merged) WIP: #5970This extension automatically adds an additional empty node at the end of your document to allow the user to easily continue writing content. This resolves an issue, where if a table is the last node within your document it can be tricky to get the selection after it. This extension has been in our Tiptap "experiments" for several years now, we want to upgrade it to be a fully-fledged extension we will support and maintain. See it's demo here: https://embed.tiptap.dev/preview/experiments/trailingnode/ |
Beta Was this translation helpful? Give feedback.
-
SuggestionMenu Extension (Status: Idea)Implementing something like a slash-command is very difficult to do, and even more difficult if you use a framework like React or Vue to render the UI within the menu. We want to make it easy with a first-class component for each of the frameworks like we provide with BubbleMenu & FloatingMenu. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Content Migrations (Status: Idea)This would introduce the ability to re-write Tiptap JSON from a previous incompatible version, to the latest version your editor supports. This would allow gradual migration of content as it is edited by others. Something like: https://github.com/remirror/prosemirror-migration may be interesting to look at. |
Beta Was this translation helpful? Give feedback.
-
Is there any room for any more Ideas? In particular, I'd love to see page (i.e. automatically breaking, and ability to render as a page) somehow integrated. I know it's a super difficult problem, but for certain use cases it's crucial |
Beta Was this translation helpful? Give feedback.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
-
Hi there, any updates on when this will be released? |
Beta Was this translation helpful? Give feedback.
-
TipTap feature idea for V3 An ability to render a React component inside |
Beta Was this translation helpful? Give feedback.
-
Marquee Selection Extension Idea for V3This is a great idea that improves the user experience when working with block selections. It should also work well with drag handle nodes. I found a post about it on the prosemirror forum. |
Beta Was this translation helpful? Give feedback.
-
Reorderable rows and columns in tables (as also requested at #6149) similar to how they work on other platforms (as also shown in the GIF image below). |
Beta Was this translation helpful? Give feedback.
-
A first party extension for columns would be great. There are extensions made by the community like @tiptap-extend/columns but I feel this is important enough for it to be included in your repertoire |
Beta Was this translation helpful? Give feedback.
-
Very happy to finally get rid of Tippy, but I can't help but feel the timing for introducing another opinionated popover library is a bit off, as the native browser solutions are maturing and being adopted en masse. Web apps using or moving to Tiptap are also likely to already have an existing popover solution, so having to either change because one piece of the app is opinionated, or roll with two side-by-side, is less than optimal. Are there any plans to make Floating UI an optional dependency, and to make it possible to integrate our own popover solutions? |
Beta Was this translation helpful? Give feedback.
-
Enabling clicking (or tapping on mobile) to select an entire table cell would be nice, and click/tap and drag to multiselect would be great too. Lexical attempts at least the first request on mobile, but it's not quite right. This would enable more Excel-like behavior and clicking again would create a |
Beta Was this translation helpful? Give feedback.
-
It would be great to be able to use TipTap makes ProseMirror so much easier to wrangle with chained commands, but unless you extract the logic from the commands into helpers that effectively do the same thing, their logic isn't reusable in other key areas. |
Beta Was this translation helpful? Give feedback.
-
tiptap has been doing a lot of work on how to edit content elegantly and efficiently, but has neglected the “uneditable”. For example: when the user is editing a template file, the template part should not be edited (title, notes, etc.), and would like to add this attribute: uneditable, when true, the marked node can not be edited or deleted. |
Beta Was this translation helpful? Give feedback.
-
@nperez0111 do you have a current ballpark estimate as to when 3.0.0 is likely to be releasing as stable? I know it's not always that clear, but the answer could change our plans slightly. |
Beta Was this translation helpful? Give feedback.
-
Hey! Excited for v3! I'm testing out
Edit: This issue turned out to be due to missing I was also not able to get the editor to load with vite/react-router SSR enabled due to the
In both cases, this is a React 19 application. I don't have a reproducible repro easily at hand, but happy to create repros for these if helpful, just don't want to spam you guys with issues if these are known WIP. |
Beta Was this translation helpful? Give feedback.
-
Hello, our company has been using TipTap for a long time, and we are glad that the v3 version is about to be released. Then, combined with some of our usage experience and customer feedback, we want to see whether the v3 version will consider adding the following capabilities: 1. Lists support more flexible indentation effects: 2025-04-14.16.21.04.movAs shown in the video above, it is currently found that products such as Slack and Lark can achieve the effects in the video when editing lists. Compared with TipTap's "traditional" list indentation rules, the method in the video is more flexible, especially when editing small pieces of content, such as writing multi-column text messages. I searched online and found that Meta (Facebook)'s Draft.js and Lexical support the above video effects. 2. When entering link text, it can be automatically converted into link style: 2025-04-14.16.52.19.movAs shown in the video above, when currently typing in Tiptap, you must press a space to trigger link generation; and when the link and text content are the same, modifying the text content will not modify both the link and the text at the same time. Thanks.❤️ |
Beta Was this translation helpful? Give feedback.
-
Since v3 is going to support importing and exporting word, and will handle headers and footers as much as possible, will it support pagination? I've noticed that building a pagination extension is very complex, and in fact there is no mature solution so far. |
Beta Was this translation helpful? Give feedback.
-
Is there any sort of docs for v3 - we're interested in using the next release (or at least testing it in our environment for certain use cases) |
Beta Was this translation helpful? Give feedback.
-
Love this project, thanks to all the contributors. Any chances of a persistent mark solution. For example, once you set a font family, that should persist across all new lines in the editor, even if you go back to a previously added empty paragraph. |
Beta Was this translation helpful? Give feedback.
-
Hello, Tiptap community!
Internally, we are planning out next steps for the next major version of Tiptap v3. We thought that it would be great to involve the community in this planning!
There are some items which we've already decided and made some progress on, while others are only in the ideation phase or need some feedback. I will be posting each feature/idea in a separate thread, so that we can keep the discussion tight to a specific feature as well as to allow voting on particular issues.
So, please upvote an idea if you think that it will be a valuable addition to Tiptap!
We've already started to make some progress towards v3 on the next branch if you want to check out some of the upcoming changes like:
Replace the tippy package with floating-ui: Remove tippy.js and replace with Floating UI #5398
@floating-ui/dom
which is tippy’s official successor and offers a much more convenient APIrenderHTML
JSX: feat(jsx): add@tiptap/jsx
for more convenient rendering of Tiptap content #5558With the new JSX functionality, we can now support JSX as the return type from
renderHTML
resulting in this nice API:Optimal Framework Performance by default
shouldRerenderOnTransaction
API be defaultfalse
, with an opt-in to the previous in-optimal behavior.Static Renderer: feat(static-renderer): add
@tiptap/static-renderer
to enable static rendering of content #5528Support for Prosemirror Markviews: feat(core): add support for markviews #5759
Please vote & discuss your favorites below!
Or, add your own if you've been looking for something yourself!
See our latest announcement here: https://tiptap.dev/tiptap-editor-v3
Beta Was this translation helpful? Give feedback.
All reactions