631ca6b4c40a20ec8a72b27b4062f2db8e64c530
User decision: emails should display openly on the panel (Tailscale-only, single founder). The reveal-with-audit pattern was overkill for this trust model and added a click per inspection. - List page: u****@x.com → u.email - Detail header: <EmailReveal/> → plain <span>{user.email}</span> - Delete _email-reveal.tsx + /api/sase/users/[id]/reveal-email route - Delete maskEmail() helper (no remaining callers) Audit log no longer captures per-email reveals; the audit tab now only shows lifecycle/billing/impersonation actions, which is what we actually care about. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Süper Panel
Internal admin panel — sp.semih.ai — Tailscale-only access.
Phase 0 skeleton: Next.js 16 + Better Auth (email/password + TOTP) + Prisma + Postgres + Redis. Deployed on Coolify, fronted by Traefik with Let's Encrypt (Cloudflare DNS-01).
See super-panel-prd.md for the full PRD.
Local dev
pnpm install
cp .env.example .env
# fill DATABASE_URL_PANEL, BETTER_AUTH_SECRET (32+ chars)
pnpm --filter @panel/web prisma:generate
pnpm dev
Production deploy
Pushes to main trigger Coolify deploy via webhook.
Deploy status
First production deploy: 2026-05-13. Live at https://sp.semih.ai (Tailscale only).
Description
Languages
TypeScript
99.2%
CSS
0.4%
Shell
0.2%
Dockerfile
0.2%