今回のプロジェクトでは、todoistにGitHubで作成したissueをタスクとして自動的に反映させる機能を実装しました。この統合により、開発プロセスの効率化とタスク管理の自動化を目指しています。
創造の喜び: 何か新しいものを作りたかった
タスク管理の効率化: 日々、Todoアプリを活用して様々なタスクを管理しており、GitHubのissueとTodoistのタスクを連携させることで、より一元化されたタスク管理を実現したいと考えました。
既存ツールの限界: 以前はIFTTTを使用して同様の連携を試みましたが、不安定な動作と遅延が問題となりました。
これらの課題を解決するため、自ら手を動かして解決策を開発することに決めました。要件のシンプルさから、サーバーレスアーキテクチャを採用することで迅速かつ効率的な開発を目指しました。選定したプラットフォームはcloudflareで、その決定理由は以下の通りです。
honoは、日本人開発者によって作られたCloudflare Workersに特化したフレームワークです。その特徴は、軽量でありながら高速で直感的な開発が可能であることにあります。詳細については、こちらの記事が参考になります。
本プロジェクトでは以下の技術を採用しました。
Bun: モダンなJavaScript実行環境。
TypeScript: 静的型付けを提供するJavaScriptのスーパーセット。
Hono: 軽量なCloudflare Workers用フレームワーク。
Wrangler: Cloudflare Workersの開発ツール。
開発の始め方は非常にシンプルです。以下のコマンドライン操作で環境構築から開発、デプロイまでスムーズに行えます。
# アプリケーションの作成
$ bun create hono my-app
$ cd my-app
# 開発サーバーの起動
$ bun run dev
# デプロイ
$ bun run deploy
# 環境変数の設定
$ wrangler secret put SECRET
アプリケーションの核となるコードはsrc/index.tsに配置されます。ここでは、簡単なHTTP GETリクエストに対して"Hello 🔥"と応答する最小限の例を示しています。
import { Hono } from "hono";
const app = new Hono();
app.get("/", (c) => c.text("Hello 🔥"));
export default app;
Webhookを受け取り、他のAPIを呼び出すようなマイクロアプリケーションには、honoとCloudflareの組み合わせが非常に適していると感じました。このプロジェクトを通じて、サーバーレスアーキテクチャの利点を実感し、開発の柔軟性と効率を高めることができました。