noteのエディタを新バージョンに完全移行しました
noteで創作を行うための根幹であるエディタ機能が、完全移行しました。
もともとテストで利用していただいていましたが、昨年のリリースですべてのクリエイターが新エディタを利用する状態になりました。
実はnoteのエディタは今回が4度目のリプレイスになります。旧バージョンと新バージョンは次のような開発環境の違いがあります。
旧エディタ
MediumEditorをベースに開発
リポジトリを切り離してライブラリとして開発
新エディタ
ProseMirrorをベースに開発
エディタのコア部分はProseMirrorで開発、表示などのフロント部分はNext.js
モノレポ
新エディタは2020年3月頃から開発が開始され、旧バージョンと並行運用しながら開発が続けられてきました。5年という長い運用を続けた旧バージョンの歴史に幕を閉じました。
リポジトリを完全に切り離したことにより、開発体験は大幅に向上しました。直近1年だけでも数々のリリースを行い、1000件以上のフィードバックを参考に改善を続けました。
現状の技術スタック
新エディタはProseMirrorをベースとして開発されています。
エディタ機能はnoteの創作の根幹であるため、要望や改善が社内外から多く寄せられてきます。その点、ProseMirrorは細かいカスタマイズがしやすいため、以前よりも迅速な対応が可能になりました。
エディタのコア部分はProseMirrorで実装されていて、表示部分はNext.jsで実装されています。note本体のリポジトリとは完全に切り離しています。こちらもやはり旧バージョンよりも開発体験が向上しました。
エディタはモノレポ構成で開発を進めており、コア機能やAPIインターフェース、ユーティリティなどいくつかのパッケージに分割して管理されています。
境界線をしっかりと隔てることで、エディタ機能は独立して開発することが可能となり、将来的なマイクロサービス化にも備えることができます。また、コードの共有がしやすく、同じリポジトリ内でそれぞれのパッケージを容易にインポートすることが可能になりました。
モノレポの管理にはTurborepoを導入してビルド速度の改善も行っています。
誰もが使いやすく、誰もが創作がしやすいエディタを目指して
5年という長い期間、noteを支えてきた旧エディタが終了し、新しいエディタに完全移行することができました。
エディタはここからさらに開発速度をあげて機能開発を行っていきます。
noteのミッションである「だれもが創作をはじめ、続けられるようにする。」を実現するためにも、これからもエディタは注力して開発を続けていきます。
▼noteのフロントエンド開発をさらに知りたい方はこちら
▼noteの技術記事が読みたい方はこちら