これは React Router v7 を使用した、Firebase をバックエンドに持つ Web アプリケーションのサンプルプロジェクトです。ユーザーが文章を書き散らすことができるシンプルなサービスを実装しています。
- Firebase
- Authentication (Google認証)
- Firestore
- Hosting
- Google認証によるユーザー認証
- 記事の作成・編集・削除
- Markdownによる記事作成
- レスポンシブデザイン
- ダークモード対応
- Node.js v18以上
- pnpm
- Firebase CLIツール
- リポジトリのクローン:
git clone https://github.com/yourusername/remix-spa-example.git
cd remix-spa-example
- 依存関係のインストール:
pnpm install
- 環境変数の設定:
cp .env.example .env
.env
ファイルを編集し、必要な環境変数を設定してください:
VITE_GOOGLE_CLIENT_ID
: GoogleのOAuth クライアントID
- 開発サーバーの起動:
pnpm dev
このプロジェクトはFirebase Hostingを使用してデプロイします。
- Firebase CLIのインストール:
npm install -g firebase-tools
- Firebaseにログイン:
firebase login
- プロジェクトの初期化:
firebase init
- ビルドとデプロイ:
pnpm build
firebase deploy
pnpm dev
: 開発サーバーの起動pnpm build
: プロダクションビルドの作成pnpm preview
: ビルドしたアプリケーションのプレビューpnpm lint
: Biomeを使用したコードの検証pnpm format
: Prettierを使用したコードのフォーマットpnpm typecheck
: TypeScriptの型チェックpnpm validate
: lint、format、typecheckの実行pnpm start
: ビルドしたアプリケーションの起動
- React Router v7: 最新のReact Router v7を使用し、型安全なルーティングを実現
- Data Loaders: React Router v7のデータローダーを活用した効率的なデータフェッチング
- 型安全なルーティング:
safe-routes
を使用した型安全なルート生成
├── app/ # アプリケーションのソースコード
│ ├── components/ # Reactコンポーネント
│ ├── routes/ # ルーティング
│ ├── services/ # サービスレイヤー
│ ├── models/ # データモデル
│ └── styles/ # グローバルスタイル
├── public/ # 静的ファイル
└── firebase/ # Firebase設定
このプロジェクトはMITライセンスの下で公開されています。
このプロジェクトはしずかなインターネットのUIデザインを参考にさせていただいています。