このプロジェクトについて
Go Performance Starterは、小規模SaaS向けに opinionated なサーバーレンダリングのスターターキットで、Go (Chi)、templテンプレート、HTMX on Alpine.js、Tailwind CSS、Supabase (Auth + PostgreSQL)、Cloudflareを組み合わせています。主眼は最小限のJavaScriptによるサーバーレンダリングGoで、パフォーマンス制約とAIエージェントのガードレールが単なる記述ではなくCIで強制されます。
提供するもの
認証はSupabaseのメール/パスワード方式でサーバーサイドJWT検証をサポートし、匿名ゲストサインインも可能で、デモ訪問者には登録なしで実際の身元が与えられます。マルチテナンシーはPostgreSQL Row Level Securityに依存し、リクエストのJWTクレームはスコープ付きトランザクション(SET LOCAL ROLEおよびrequest.jwt.claims)を介してすべてのクエリに引き継がれ、auth.uid()はRLSポリシー内で解決されるため、リポジトリ層がテナントスコーピングをスキップできません。READMEはこの構成をSupabase依存とし、ベンダーニュートラルな認証に変更する場合はauthミドルウェア、RLSスコープヘルパー、ポリシーの再実装が必要と記載しています。
同梱のデモはスタックを検証するためのものです:各HTMX/Alpineパターンを示す/live-demo付き/patternsショーケース、および間違った回答がRLS保護行として保存されるアーキテクチャクイズ。非アクティブなゲストの期限切れはSupabase管理APIによるバックグラウンドジョブで処理されます。
開発ツールは型安全なtemplテンプレート(Goにコンパイル)、sqlcコード生成、リポジトリパターン、airによるホットリロード、Taskfile自動化、golangci-lint、Prometheusメトリクス、log/slogによる構造化ロギング、ヘルスチェック、CI/CDをカバーします。ロールベースのデザインシステムはbg-surfaceやtext-muted-foregroundなどのセマンティックトークンを使用し、ダークモードはトークンを反転させることであり、CIは生グレイやdark: driftに対してチェックします。
パフォーマンス制約
READMEによると、以下が強制的な制約です:P95応答時間100ms未満、バイナリサイズ20MB未満、Dockerイメージ30MB未満、定常状態メモリ128MB未満、起動500ms未満。task test:performanceおよびtask test:binary-sizeで検証されます。
AIエージェント支援開発
本プロジェクトは多層のAI憲法を備えています:CLAUDE.mdに停止ルール、.claude/engineering.md、workflow.md、stack.mdにエンジニアリングデフォルト、プロセス、スタックの事実を保持します。AGENTS.mdはtask agents:buildによりこれらの層から生成され、driftがあればCIは失敗します。大規模な機能はArchitect → Coder → Reviewerの3パスフローに従います。完了の単一定義はフォーマット、lint、raceテスト、driftチェック、バイナリサイズ、脆弱性スキャンを含むtask ci quality gateであり、エージェントは閾値を下げるのではなくクリアしなければなりません。
ADRにはそれぞれ Enforcementセクションがあり、ルールをチェックにマッピングしています。task check:adrはテスト可能なADRの結果を検証する決定論的スイートを実行し、秘密スキャナも含まれます。チェックはまず警告として始まり、クリーン期間または実際の検出後にブロックへ昇格します。2つのフックがブロックされ、Stop-gateはエージェントが失敗したテストやブロッカーのある状態でターンを終えるのを防ぎ、PreToolUseガードは既存ADR、AGENTS.md、生成コードへの手動編集を防ぎます。両方にキルスイッチがあります。READMEには依存部分と除去可能部分を明記し、エンforcementスイート全体を剪定する方法も記載しています。
ルートversions.jsonはスタックピンをリストする公共消費契約として説明され、task versions:checkは任意のキーがリポ内ソースと一致しない場合に失敗します。キーの追加は問題なし、改名または削除は破壊的変更です。
始め方と範囲
要件はGo 1.26+、Docker、Docker Compose、Task、Node.js 20+です。クイックスタートはクローン、.env.exampleのコピー、データベース起動、マイグレーション実行、sqlcタイプ生成、Goおよびnpm依存関係インストール、ホットリロード付きdevサーバー起動(デフォルトポート4000)をカバーします。1回のSupabaseパスワードリセットテンプレート設定も文書化されています。利用可能なタスクはdev、ci、build、test、coverage、performance、binary-sizeチェック、lint、CSSビルド、Dockerイメージビルド、脆弱性スキャンです。本プロジェクトはMITライセンスでリリースされています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.