記事一覧に戻る
Papercal Tech Blogはじめました

Papercal Tech Blogはじめました

家族向けカレンダーアプリPapercalの開発で得た知見を発信していくブログを開設しました。モノレポ構成、型安全設計、API自動生成など、実践的な技術記事を書いていきます。

ブログを始めることにしました。

Papercalという家族向けカレンダーアプリを作っていて、開発の中で「これ、誰かの役に立つかも」と思うことがちょこちょこあったので、技術ブログとして発信してみようかなと。

Papercalについて

Papercalは、紙の予定表をスマートフォンで撮影するだけで家族みんなで共有できるカレンダーアプリです。

学校からもらうプリント、習い事の予定表、地域の行事カレンダー…紙の予定表って意外と多いんですよね。それを一つ一つ手入力するのは面倒だし、かといって写真で撮っても「あの予定どこだっけ」と探すことになる。

自分も子供の学校のプリントを毎回Googleカレンダーに入力していて、これ自動化できないかな?と思ったのがきっかけです。撮影した紙の予定表からイベントを自動抽出して、家族で共有できるカレンダーに登録できるようにしました。

OCRで読み取った文字からAIでイベントを抽出する、みたいなことをやっています。この辺りの話もそのうち書くかもしれません。

技術スタック

せっかくなので、使っている技術スタックを簡単に紹介します:

  • フロントエンド: React + TypeScript + Vite
  • バックエンド: Hono
  • 認証・DB: Supabase
  • インフラ: Cloudflare Pages + Cloud Run
  • ブログ: Astro

Honoは軽量でシンプルなのが気に入っています。Expressより書きやすいし、余計な機能がない。Supabaseは認証とDBが統合されていて、OAuthでソーシャルログインまで簡単に対応できるのがいい。個人開発だとFirebaseより素直に使える印象です。

モノレポ構成でTurborepo + pnpmを使っていて、APIとフロントエンドで型を共有できるようにしています。最初は「モノレポって大げさかな」と思っていたのですが、一度使うと戻れなくなりました。この辺りの話は別の記事で詳しく書く予定です。

インフラはCloudflare PagesとCloud Runを使っています。フロントエンドはCloudflareのエッジで配信して、APIはCloud Runで動かす構成。Cloudflare Pagesは無料枠が太っ腹で、個人開発には助かります。

このブログで書いていくこと

開発で試してみて良かったこと、ハマったことなどを書いていこうと思っています。

  • モノレポの構成と運用
  • ZodスキーマベースのDomain層設計
  • OpenAPIからの型安全なAPIクライアント生成
  • マルチ環境デプロイの仕組み
  • などなど…

技術的に深い話というより、「実際にやってみてどうだったか」という実践的な内容が中心になる予定です。「この組み合わせ試してみたけど、こういうところでハマった」みたいな、ドキュメントには書いてないリアルな話を書ければいいなと思っています。

更新頻度はゆるめになると思いますが、よろしくお願いします。