スポット(位置情報)に紐付くアイデアと、それを実装した GitHub リポを残せる開発者 SNS。 Web + Electron デュアルターゲット。
- 📊 ファイルサイズで色が変化 — 一目で編集量
- 🟢 ステータスバッジ — active / WIP / released …
- 🌱 活動の草 — 53週分の heatmap
- 📍 スポット紐付け — 位置でアイデアを残す
- 💡 アイデア投稿 — その場で思いついた事を書き込み
- 🔗 GitHub リンク — 実装方法を共有
# Web
npm run start:web # http://localhost:8080
# Electron (要: npm install で electron をインストール)
npm install
npm run start:electron
# App
npm run cap:open:ios src/ ← Web/Electron 共通のフロントエンド
electron/ ← Electron ラッパ(main.js / preload.js)
data/ ← モックデータ
docs/ ← 設計メモ
.github/ ← Pages デプロイ workflow
@spotcode_official は 誰もログインできない仮想アカウント — auth.users にはランダムパスワード(誰も知らない)の行が 1 つあるだけで、admin / operator は自分のセッションのまま 「公式として投稿」モードに切り替え て発信します。Stage 25 RLS が author_id = official AND auth.uid() が admin/op を検証するので、許可された人だけが公式として投稿できます。
@spotcode_dev は完全に別の通常テストアカウントです。
- 公式アカウント —
docs/supabase-schema.sqlの Stage 25 ブロックを Supabase SQL Editor で実行するだけ。末尾のdo $$ … end $$ブロックがauth.usersにランダムパスワード(不可逆ハッシュ)の sentinel ユーザー ([email protected]) を作成profilesに handlespotcode_official/ 表示名spotcode/is_official = trueの行を upsert を冪等に行います。サインアップ画面で何もする必要はありません。誰もこの auth.users にログインできません(パスワードは生成時にしか存在せず、保存もされない)。
- dev テストアカウント — サイトの
/signupで email フィールドにdev.test.accountとだけ入力(src/js/login-aliases.jsが[email protected]に展開、配信なし)→ handlespotcode_dev/ 表示名spotcode dev。パスワードはパスワードマネージャー保存。 - dev テストアカウントは 管理者・運営者の権限を一切持たない 普通のユーザー —
src/js/dev-mode.jsのADMIN_HANDLES/OPERATOR_HANDLESリストに入れないこと。 - 管理者 / 運営者でログインすると、アバター → アカウント切り替えメニューに 「公式」 行が出ます。クリックすると…
- トップバー / コンポーザーのアバターが公式に切り替わる
- コンポーザーに「@spotcode_official として投稿します — 自分に戻る」バナーが出る
- 次の投稿は
@spotcode_officialの author で保存される(RLS が再確認) - 自分の行 or バナーの「自分に戻る」で解除