ローカルとGitHubのような仕組み
先日、SNSで「Canvaが動かない…デザインでも『ローカル』と『GitHub』のような仕組みがほしい」という投稿を見つけました。多くの人が同じ問題を感じているかもしれません1。
これは単なる不便さではなく、もっと根本的な問題があるのではないでしょうか。デザイナーにとっては、Canvaはメインツール。Canvaのサービスが停止すると、デザイン作業が完全にストップしてしまいます2。
このようなオンラインサービスに事業の大半が依存してしまうリスクはほかにもあります。例えば、ニコニコ動画の1ヶ月間サービス停止事件では、そこで事業展開していたメディア企業の収益が完全に絶たれました3。これは「作業場所と保存場所が同じ場所にある」リスクの最悪例です。
Gitが教えてくれる「場所を分ける」という知恵
私は、Gitを「過去のバージョンに戻せる便利なツール」だと思っていました。確かにそれも重要な機能ですが、GitとGitHubの連携による魅力は「作業場所と保存場所を分けている」ことです。手元のパソコン(ローカル)で自由に試行錯誤を重ね、納得できる状態になったらGitHub(リモート)に送信する。この仕組みが作業の安定性・継続性を生み出しています。
VSCodeでコードを書くとき、ネット接続が不安定でも作業は続けられます。完成したタイミングで「プッシュ」すれば、クラウド上に安全に保存されます。これが分散型の強みです。
重い作業ほどローカル対応が重要
すべてのツールがローカル対応すべきというわけではありません。簡単な計算や短い文書作成なら、Webツールで十分です。
問題は長時間の集中作業です。デザイン制作、動画編集、ブログ執筆など、時間をかけて取り組む作業では、中断されることのダメージが大きくなります。
プログラミングがよい例です。昔はブラウザ上で動くオンラインエディタもありましたが、結局多くの開発者がローカルのVSCodeなどを選んでいます。長時間作業するものは、やはりローカルの方が効率的なのです。
PowerPointとCanvaの決定的な違い
スライド作成を例に考えてみましょう。PowerPointやKeynoteは、手元のパソコンで動きます。画像や動画を追加するときも、フォルダから直接ドラッグ&ドロップするだけです。
一方、Canvaではすべての素材をアップロードする必要があります。ネット接続が遅いと、画像1枚追加するだけでも待ち時間が発生します。サーバーに障害が起きれば、作業そのものができません。
この違いは、根本的な設計思想の差から生まれています。
現実的な解決策
Canvaのようなデザインツールでは、作業の大半は一人のデザイナーが担当し、修正段階で他の人が関わることが多いです。
であれば、GitHubのように明示的に「プッシュ」する方法が現実的かもしれません。ローカルで集中して作業し、共有したいタイミングでクラウドに送信する。そこからは従来通りクラウドベースで共同作業を進める。
この段階的なアプローチなら、作業効率と共同作業の両方を実現できます。
WordPressが抱える同じ問題
ブログ執筆でも同じ課題があります。WordPressの管理画面で長文を書いていて、ブラウザがクラッシュした経験はありませんか。
理想的なのは、お気に入りのテキストエディタでローカルに文章を書き、タグ付けやカテゴリ設定もローカルで完了させて、最後に「プッシュ」でまとめて投稿することです。
しかし、WordPressは記事単位での部分的な同期が困難です。移行ツールはありますが、サイト全体を丸ごと移すような大掛かりな作業になってしまいます4。Gitのような差分管理ができません。
設計思想が決める限界
なぜ後からローカル対応を追加するのは難しいのでしょうか。それは、サービスの根本的な設計思想に関わる問題だからです。
Canvaは「ブラウザで手軽にデザインできる」「どこからでもアクセス可能」という思想で作られました。WordPressも「Webベースの投稿システム」として設計されています。
一方、Gitは最初から「分散型」「オフライン作業」を前提としています。1991年にLinuxを作り、2005年にGitを開発したリーナス・トーバルズの先見性は驚異的です5。当時はまだ「中央集権型」が主流だった時代に、現在の理想的な作業環境を先取りしていました。
作業スタイルに合わせた使い分け
ExcelとOneDriveの関係は、比較的うまくいっている例の一つです。ローカルで作業して、クラウドに自動同期される仕組みです。ただし、複数人での同時編集時の競合処理は、Gitほど洗練されていません。
まとめ
WebツールにGitのような仕組みが求められる理由は、作業場所と保存場所の分離にあります。長時間の集中作業では、ローカルでの快適な作業環境と、クラウドでの安全な保存・共有機能の両方が必要です。既存のWebファーストなサービスにとって、この機能追加は設計思想の根本的な変更を伴う困難な課題ですが、ユーザーの作業効率向上のためには重要な進化といえるでしょう6。
- 「Canva 終了… デザイナーにも「ローカル」と 「GitHub」のような仕組みをくれ」 – KAWAIさん / X
- 2024年11月12日に実際にCanvaで大規模な障害が発生し、約1時間にわたってサービスが利用できなくなった事例があります。 – ロック、飽和、CDNネットワークの問題がCanvaをダウンさせた理由 – InfoQ
- 2018年6月にニコニコ動画でシステム障害が発生し、約1ヶ月間サービスが不安定な状態が続きました。この期間、動画投稿者やそこで収益を得ていた企業は大きな影響を受けました。
- Local by FlywheelやMAMPなどのツールでWordPressをローカル環境で動作させることは可能ですが、本番サイトとの同期は複雑な手順が必要になります。 – Local by Flywheel を使った開発環境の構築 | はじめての『WordPress』入門
- リーナス・トーバルズは、Linuxカーネルの管理用にBitKeeperを使用していましたが、ライセンス問題で使用できなくなったため、わずか10日程度でGitの初期バージョンを開発しました。 – 「Git」誕生から20周年を記念してリーナス・トーバルズ氏が開発初期の裏事情や使用頻度の高いコマンドなどを明かす – GIGAZINE
- 分散型バージョン管理システムの概念は、ソフトウェア開発以外の分野でも応用可能性があり、今後のWebツール設計において重要な指針となる可能性があります。 – Gitを使ったバージョン管理|サル先生のGit入門