A free, community-driven archive for awakening knowledge. Built in solitude, offered in solidarity. This platform hosts over three hundred volumes across forbidden history, consciousness, and mysticism—without paywalls, ads, or algorithms.
- Framework: Next.js 15 (App Router, React 19, Server Components)
- Database & Auth: Supabase (PostgreSQL, Row Level Security)
- Styling: Tailwind CSS & Framer Motion
- AI Integration: Google Gemini API (Streaming "Librarian" Chat Agent)
The platform utilizes heavily locked-down Role-Based Access Control (RBAC):
- Public & Reading Access: Anyone with a registered account can access open-stack books. Unauthenticated users are redirected to the Login page.
- Role Verification: Middleware intercepts incoming requests. Non-admins attempting to access
/adminor/curatordashboards are hard-redirected to the homepage. API routes are strictly typed and verified on the server side.
Restricted books exist within "The Vault." These books are housed in a secure Supabase storage bucket (vault-files). Users cannot access the raw file URLs.
- The user creates a
vault_access_requestsentry, detailing their intent. - An Admin (Curator) reviews the request on the Admin Dashboard and updates the status to
approved. - The server-side API Route
/api/storage/signed-urlcross-references the request status against the user session to dynamically issue a temporary, signed read-only link.
-
Clone & Install:
git clone https://github.com/pman369/in_my_solitude.git cd in_my_solitude npm install -
Environment Variables: Copy the example environment file and fill in your Supabase connection strings and Google Gemini API keys:
cp .env.example .env.local
Note: Ensure your Service Role key is only accessed securely within server routes to avoid exposing database capabilities.
-
Database Initialization: If this is a fresh setup, push the required schema:
npx supabase db push
(Wait for standard manual seed data syncing if necessary).
-
Launch Dev Server:
npm run dev
The platform operates at
http://localhost:3000.