The professional network for the club music industry.
SocialTypeScript · CSSGitHub @alecastel91OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
The public-facing Next.js app for TORA — a curated network for the club music industry. Hosts:
• Marketing site at torahub.io (homepage, /about, /roles, /features, /privacy, /terms)
• Application form at torahub.io/apply
• Admin dashboard at torahub.io/admin (password-protected, server-side JWT cookie auth)
• Transactional email templates sent via Resend
The other two repos in the system:
• tora-backend — Express + Prisma API
• tora-app — the main Vite/React app at app.torahub.ioRead the full README ↗The public-facing Next.js app for TORA — a curated network for the club music industry. Hosts:
torahub.io (homepage, /about, /roles, /features, /privacy, /terms)torahub.io/applytorahub.io/admin (password-protected, server-side JWT cookie auth)The other two repos in the system:
tora-backend — Express + Prisma APItora-app — the main Vite/React app at app.torahub.iowaitlist tablemaingit clone https://github.com/alecastel91/tora-application.git
cd tora-application
npm install
cp .env.local.example .env.local # then fill in real values — see SECRETS.md
npm run dev # localhost:3000
You'll need values for: NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, RESEND_API_KEY, BACKEND_API_URL, INVITATION_API_KEY, ADMIN_PASSWORD, ADMIN_JWT_SECRET. See SECRETS.md for where each one lives.
npm run dev | Local dev server on port 3000 |
npm run build | Production build (verifies it compiles) |
npm run lint | Run ESLint |
npx tsc --noEmit | Type-check without emitting files |
src/
├── app/ # Next.js App Router pages + API routes
│ ├── admin/page.tsx # Admin dashboard
│ ├── apply/page.tsx # Application form (waitlist)
│ ├── api/admin/ # Admin auth + GDPR delete endpoints
│ └── api/send-*/ # Resend-powered email send endpoints
├── components/sections/ # Marketing page sections
├── components/ui/ # Reusable UI primitives
├── lib/adminAuth.ts # JWT helpers for admin session cookie
├── middleware.ts # Protects /api/admin/* routes
└── translations/ # 8 language files (EN, ES, FR, IT, PT, JP, CN, KR)
emails/ # React Email templates
sentry.{server,edge,client}.config.ts # Sentry runtime configs
instrumentation.ts # Next.js Sentry init
CLAUDE.md — full project context, recent updates, architectural decisionsSECRETS.md — where every secret lives (Vercel, Railway, Supabase) + rotation proceduresdocs/LIGHTHOUSE_BASELINE.md — perf/a11y/best-practices/SEO scores snapshotgitleaks protect --staged to block accidental secret leaksmain auto-deploys to Vercel production