プロジェクト事例

SquaddUp

コンサート、ハイキング、美術館などのアクティビティを誰かと楽しみたい人のための、本番運用中の同行者マッチングサービスです。

Wallace Panterによるプロジェクト事例

プロダクト概要

SquaddUpは、アクティビティや共通の予定を通じて人をつなぐサービスです。Expo React Native製モバイルアプリ、API、Web体験、管理画面で構成されています。

フルタイムの育児と並行して開発し、iOS、Android、Webへ本番公開しました。

課題

同行者マッチングサービスでは、本人確認、アクティビティ検索、位置情報データ、複数のクライアント画面を、一貫したプロダクトとして連携させる必要があります。

モバイル、API、Web、管理画面を継続的に発展させられる、再現可能なデプロイ構成も必要でした。

実装内容

ExpoとReact Nativeでクロスプラットフォームのモバイル体験を構築し、Bun上で動作するElysia APIと接続しました。

PostgreSQL、PostGIS、Prismaでアプリケーションデータと位置情報データを設計し、本人確認にStripe Identityを統合しました。

Terraformでインフラ変更を明示的かつ再現可能にし、iOS、Android、Webの公開環境へリリースしました。

アーキテクチャ

  • Expo React Nativeが共通のモバイルアプリケーション層を担います。
  • ElysiaとBunがAPIランタイムとリクエスト境界を提供します。
  • PostgreSQLとPostGISがリレーショナルデータと位置情報データを保持し、Prismaがアプリケーションのデータ層を担います。
  • Stripe Identityが本人確認連携を、Terraformがデプロイ可能なインフラ定義を担います。

成果

  • 単独の試作ではなく、一貫したフルスタックプロダクトとして提供しました。
  • 共通の技術基盤からiOS、Android、Webの本番体験を公開しました。
  • モバイル開発、API設計、位置情報データ、本人確認、インフラ自動化を統合する基盤を構築しました。

技術スタック

Expo React NativeReact Nativeの上にExpoを組み合わせたモバイルアプリスタック。Elysia + BunElysiaフレームワークとBunランタイムを組み合わせたAPIスタック。PostgreSQL + PostGISPostgreSQLにPostGISの地理空間クエリ機能を組み合わせたデータベース構成。PrismaリレーショナルDBのモデル化、クエリ、マイグレーションを行うTypeScript ORM。Stripeカード決済、請求、本人確認、金融ワークフロー向けの決済プラットフォーム。Terraformクラウドリソースを再現可能に構築するInfrastructure as Codeツール。

アプリを入手