graphql code generator を使ってgraphql api を開発する方法を解説します
iamfax.comで使われているフロントエンドの技術や内容の解説を行っていきます。
iamfax.comでフロントエンドはNextjs+typescriptで構築しています。構築にあたって得られた知見や皆さんと共有したほうが良いことなどを書いていく予定です。
Next.jsを選んだ経緯
allshifter.comというサイトも運営しておりVue2+vuetify
で作成しました。今回はVuejsでなくNext.jsを採用しております。
その理由はlexical というリッチテキストエディターのWYSIWYG ライブラリを使いたかったからです。
令和の時代ですしFAXを送る時はワード感覚でFAXを送信したい、と考えていました。TextAreaに書いて送信!では後発のサービスとしては全く面白くありません。
Lexical
はMeta(Facebook社)製のですので、React関連のライブラリがたくさん揃っており開発が早そうということでNext.jsを採用しました。
仮想domを使用していないSvelte.jsも個人的には大変魅力でしたが、やはり2024年のときは成熟していないと感じたのとlexical などの対応がちょっとまだ時間がかかりそうだと感じ断念しました。Vueも同様にLexicalを利用している例はありましたが、ライブラリの成熟度から導入が難しい印象でした。
結果的にNext.jsを選んで良かったと思っています。
状態管理にはEffector!Effectorの使い方解説
状態管理ライブラリ、Effectorの使い方を解説します
Lexical リッチテキストエディタ解説
リッチテキストエディタ, Lexicalとは?