2024 Lexical OSS Recap #7220
fantactuka
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Lexical 2024 recap
As we wrap up 2024, it's time to reflect on the journey of Lexical over the past year. From growth in community engagement to exciting new features and collaborations, Lexical has continued to evolve and expand its impact.
Adoption 🚀
Lexical is used in the vast majority of internal and external products built in Meta, and is the go-to framework for building new products with rich text editing.
As for other companies using Lexical for company-critical products, it’s worth mentioning Proton (Mail) launched its own version of Google Docs and Bloomberg Notes both using Lexical for collaborative editing. On top of it NPM downloads has grown 186K → 667k/week (+258%), showing good adoption trend:
Highlights ✨
Lexical extension
Good DevX is one of the main goals for the project, and extension is a significant improvement. Lexical used to rely on a
TreeView
plugin that is not necessarily added to each product, while extension provides the same features for any Lexical editor instance without any bundle size or page performance overhead. Available in all major browsers and already with 1K downloads since release, it's a valuable tool for development.ESLint package
Lexical comes with a set of rules or best practices that help engineers scale their code more easily, such as using $-functions to manage an active editor. Linters package was initially designed to address antipatterns that, while not causing errors, developers should avoid.
Reliability
This year had an enormous amount of enhancements for tables with 100+ related bugs closed. Lots of it came from our community partners from Bloomberg as they’re heavily relying on tables in their products. It’s great to see bugs around selection and corrupted table structure being addressed as major pain points for users.
Introduction of DOM slots allowed fixing long existing issues with table columns resizing combined with cell merging. With slots we finally support table’s colgroup to address that. Dom slots is experimental feature we're trying internally, but its results are great so far.
Another big group of fixes (100+) was around selection addressing DOM and Lexical selection normalization, cursor positioning, node replacement, and more. Combined, it improves typing experience and programmatic content updates, especially around edge cases.
Extensibility
We spent a lot of time this year working on features and proposals that will make it much easier to extend Lexical. This includes properly documenting some of the functionality that was already there (e.g. serialization, node override withKlass), allowing mutation listeners to be initialized more easily and work seamlessly with overrides, as well as adding new methods that allow you to implement your subclasses with much less boilerplate with the new updateFromJSON and refactoring exportJSON for all built-in classes to use the type from the current node.
Stay tuned, there’s a lot more coming in 2025 to make this even easier, and to reduce the cases where node overrides are required.
Releases
Lexical is now on a monthly release schedule, with ad hoc releases as needed to address regressions and high priority bug fixes. The workflow for releases has been streamlined and documented so it is not dependent on any specific maintainer.
Lexical packages are published for both ESM and CJS as of 2024, previously they were only available in CJS format.
CI
Updated CI pipeline utilizes resources more efficiently and reduces tests queue. We’re also generating nightly NPM builds so that anyone can try the latest Lexical build.
Community 🤝
Lexical would be nowhere near its current state without strong open-source community support. This year just proved it once again.
We continue our partnership with Bloomberg and Ghost, with their teams investing in Lexical development and support. Notably, Bloomberg addressed the majority of table and table selection issues this year.
In 2024, we added two open-source contributors, Bob Ippolito and Germán Jabloñski, to the weekly Lexical Heroes meetings. These meetings are crucial for the success of Lexical, as they bring together core members, partners, and open-source contributors to discuss major features, issues, and the future of the framework. Bob and Germán's core contributions and valuable knowledge in the domain enable more expertise for Lexical's development.
As in the previous year, we are joined by two MLH fellows who will be with us for a couple of months, mentored by Bob.
It's impossible to overstate the significance of every contributor's role, whether it's through code commits, thoughtful reviews, valuable bug reports, or engaging discussions on Discord. We’d like to highlight those who got to the top of the chart with 50+ commits:
This year marks the first time external contributor taking number one (very deserved) spot in this list since the project started in 2021!
More stats by wrapped.dev
Closing notes and 2025 plans 📅
Lexical has solidified its position among rich text editing libraries, showing fastest YoY-% downloads growth. The library's expansion is a testament to the collaborative efforts of our community and partners, who have been instrumental in driving innovation and adoption.
We are thankful to everyone using Lexical and providing invaluable feedback. Your contributions are vital to our ongoing development and success.
Thank you all for being a part of Lexical's journey!
Beta Was this translation helpful? Give feedback.
All reactions