VinMin Portal
A cinematic social, music, memory and civic-intelligence platform for the Tamil diaspora. Live on portal.vinmin.gg, documentation here.
- ◆Entry is gated by the VinMin Charter — Seven Sacred Rules accepted server-side.
- ◆One unified Earth Sanctuary — voice-first Kindred, Whispers, Village Hall, Arena.
- ◆Pattarai (பட்டறை) developer guild with paid bounties and an Eelam Homeland Lock.
- ◆Min (மின்) economy with Witness · Keeper · Archon subscriptions and 10% public-treasury recycling.
- ◆Operated from the United Kingdom on managed cloud infrastructure (Postgres + Auth + Storage) with LiveKit voice.
Domain map
- portal.vinmin.gg — live application.
- vinmin.gg — planned public launch.
- docs.tlte.cloud — this documentation hub (legal, charter, architecture).
- notify.security.vinmin.gg — outbound email infrastructure.
- Forest World — separate cloud project, bridged via signed
partner-api+ shared Google identity only. No shared database.
The VinMin Charter — Seven Sacred Rules
The Charter replaces the prior five-element role picker. Every member accepts it before entering the Sanctuary; acceptance is recorded server-side via the accept_vinmin_charter RPC and revisitable at /sanctuary/charter?revisit=1.
- One Earth — ஒரே பூமி. We gather as one diaspora on one sacred ground.
- Listen first — முதலில் கேள். Hear before you speak. Witness before you judge.
- Honour every name — ஒவ்வொரு பெயரையும் மதி. Names, places, memory carry weight.
- Carry your village with pride — உன் கிராமத்தை பெருமையாய் சுமக்க.
- Disrupt nothing sacred — புனிதமானதை உடைக்காதே. Memorials and ceremonies are not for noise.
- Earn your rank — உன் நிலையை சம்பாதி. Honour and titles are earned, never bought.
- What is shared inside, stays inside — உள்ளே பகிர்ந்தது உள்ளேயே.
A Visit Charter sub-contract applies when entering another member's sanctuary: listen first, honour the element, three visits / fifteen minutes, the host may ask you to leave (24h cooldown), carry nothing back uninvited.
Earth Sanctuary — what changed
The original five-element vision (Earth · Fire · Water · Air · Storm) is deprecated. A code-level SanctuaryElementGuard redirects every non-Earth route to /sanctuary/earth. The platform now has three layers:
- Dashboard (
/home) — civic surface: music, world chat, transparency. - Sanctuary (
/sanctuary/earth) — voice-first: Kindred, Whispers, Village Hall, personal & village honour. - Arena — events, tournaments, dual-side voting, champion ceremonies. Turn-based voice via LiveKit.
Pattarai (பட்டறை) — the developer guild
Pattarai is the long-term answer to "who builds VinMin?" Members earn their place through skill trials, not credentials, and are paid in Min through the Bounty Board.
Padikalam (படிகலம்) trials: Frontend · Backend · AI/Intelligence · Voice/Realtime. Each track has a verifiable rubric reviewed by existing Sirpis.
Bounty Board (Phase 2, live): atomic claim_bounty · submit_bounty · pay_bounty RPCs auto-credit Min on approval. The Eelam Homeland Lock reserves homeland-priority bounties to Eelam/diaspora developers for an initial window before opening to the wider guild — structural, not promotional.
Min (மின்) Economy
Min is a digital identity token bound to XP and Level. Spendable balance is what you can use; honour balance is non-spendable status. Min is utility-only today — not redeemable for cash. A regulated Min ↔ fiat exchange leg is planned but not built.
Top-up: Stripe checkout via min-topup-checkout; min-topup-webhook credits Min on success. 10% of every top-up is recycled to the public treasury (visible on /transparency within the app).
| Tier | Monthly | Benefits |
|---|---|---|
| Witness · சாட்சி | Free | Aggregate transparency only |
| Keeper · காவலர் | 1,000 Min | +5% top-up bonus, leaderboard transparency |
| Archon · அர்ச்சகர் | 4,000 Min | +10% top-up bonus, full ledger, handle resolver, 2× village vote weight |
30-day auto-renew from wallet. Failed renewal: 3 retries spaced 1 day apart, then drop to Witness. Cancelling preserves tier until current_period_end. Cron via renew-min-subscriptions.
Marketplace caps: 100 Min/day, 500 Min/week per user. Cosmetic categories only (Profile Frames, Glow Themes, Card Skins, Wallpapers). World Drop: daily reward; first 20 claimers get bonus Min, server-side CURRENT_DATE enforced.
Governance & audit
Roles are stored in admin_user_roles (service-role only — never client-mutable). Hierarchy: Root → Steward → Guardian → Guide → Member. Eleven symbolic Tamil roles (e.g. Guardian of Voice குரல் காவலர், Archivist of Time கால சேகரர்) sit within Steward/Guardian.
A 5-stage Era system gates which admin actions are unlocked as the community matures. Every admin action writes to admin_audit_log with actor, role, action, target, IP, metadata. Scheduled actions run through admin_scheduled_actions.
Architecture (live stack)
- Frontend: React 18, Vite 5, Tailwind v3 (HSL semantic tokens only), TypeScript 5, framer-motion.
- Backend: managed cloud platform — Postgres, Auth, Storage, Edge Functions (Deno).
- Realtime: Supabase Realtime + Presence with
useId()channels; 20s heartbeat. - Voice: LiveKit (token issued by
livekit-tokenedge function). - Maps: Mapbox GL — Northern/Eastern Sri Lanka focus, 3D extrusion.
- Storage: AWS S3 via
s3-upload; 3D models served from/public. - AI: managed AI gateway (Gemini 2.5 + GPT-5 families). No user-supplied API keys.
- Email: hardened queue via
auth-email-hook→process-email-queueonnotify.security.vinmin.gg. - Phone (creators only): Twilio UK +44 verification.
Security hardening
- All Pl/pgSQL functions
SET search_path = publicto prevent search-path hijacking. - RLS on every user-scoped table via
get_my_username()strictly bound toauth.uid(). - Master
vinminadmin requires both standard auth session AND a master token to bypass RLS. - OTP / auth emails routed through hooked queue, never direct.
- Privilege-escalation attempts logged in
admin_audit_log.
Known gaps (stated openly)
Era notice
VinMin Portal is live and in the Aarambam (founding) era. Surfaces, recommendations, and tools may continue to evolve. See Era Status.
