Open4
最近の技術選定のメモ書き 2025年〜

frontend (web)
※アプリではないがPWAで動くことまでは想定している状態(WebViewは一旦想定しないがTauriまでは想定したい)
- pnpm (ts-node使うぐらいならbunでやる。ただしそれはCLI程度まで、今回の対象は範囲はpnpmで)
- Next.js (NestJSは使わない)
- React (next.jsから自動的に)
- Auth.js (旧 next-auth.js)
- Vercel AI SDK
- LiteLLM (動かないなら自前で)
- [WIP] shadcn ui: https://ui.shadcn.com/
- biome (prettierは必要になるまで使わない)
biome format --write src
で - [WIP] vitest (jestは使わないがvitest uiメインか?bun testの速さは魅力的)
- [WIP] playwright (test uiがメインか?)
- [WIP] storybook (過剰かも...)
- [WIP] chromatic (playwrightやstorybookと連携)
- day.js
- uuid: ライブラリ不要
crypto.randomUUID
で。ブラウザ外は "crypto" 必須なので注意 - [WIP] optimus id: 自前?
- [WIP] 可視化: observablehq
- openapi (graphql, grpcは要メリットで基本使わない、swr最近の状況から多分使わない)
- ...

backend (python)
※API兼推論サーバー、リアルタイム処理を一部含むを想定
- mise
- uv (ryeやpoetryは使わない) miseのpy環境でuv venvして
source .venv/bin/activate
で - ruff (flake8やisortは使わない)
ruff check --select I --fix && ruff format
で - pytest
- fastapi
- pydantic
- ...

backend (go)
※APIサーバー、リアルタイム処理を一部含むを想定
- ...

トピックごと
※スケールや運用など全要素にまたがる複雑なものはこちらで想定する
永続化
- Firestore
- [WIP] Spanner
- ...
ゆるめのリアルタイム性
- Firestore Native mode
- ...
特徴量ストア
- Firestore
- ...
otel
- [WIP] grafana
- ...
i18n
- crowdin
rtl
- ...
通知
- ...
メール
- [WIP] resend
- ...
headless cms
- [WIP] payload
- ...
動的なUI
- JSON Schema
- [WIP] JSON Type Definition
- ...