4.9 KiB
Will & Representation — Schopenhauer Chat App
“Speak, and the Will shall betray itself.”
Will & Representation is a minimal, elegant, mobile-first chat application that allows users to converse with an AI persona inspired by the 19th-century German philosopher Arthur Schopenhauer. Unlike generic conversational bots, this application acts as a dry, elegant, and philosophically consistent interlocutor grounded deeply in Schopenhauer’s core doctrine: the world as representation, the blind striving of the Will, existence swinging between suffering and boredom, art as temporary intellectual liberation, and compassion as the true foundation of ethics.
🎨 Design & Visuals
The interface is designed with a dark-academic aesthetic featuring:
- Palette: Clean, modern dark mode surfaces (
#0E0E10background,#17171Asurfaces) with high-contrast warm cream text (#F4F1EA) and premium gold accents (#C8A96A). - Typography: Sleek Sans-serif body font (
Inter) combined with elegant Serif headers (Cormorant Garamond). - Mobile First: Fixed bottom chat inputs, safe-area boundary configurations, smooth scrolling animations, and auto-resizing text fields tailored for phone screen viewports.
🛠️ Tech Stack
- Core Framework: Next.js 15+ / 16 (App Router)
- Logic: React 19, TypeScript
- Styling: Tailwind CSS v4 with custom design tokens
- AI SDK: Official
@google/genai(Google Gen AI SDK) - Markdown Support:
react-markdownfor rendering assistant formatting (quotes, lists, code snippets) - State Store: Client-side
localStoragecaching for secure local conversation history
⚙️ Environment Variables
Copy the example template to prepare your local configuration:
cp .env.example .env.local
Open .env.local and add your credentials:
# Google Gemini API key from AI Studio
GEMINI_API_KEY=your_gemini_api_key_here
# Default model (can override)
GEMINI_MODEL=gemini-3.1-flash
Note: The backend endpoint includes a model fallback sequence. If gemini-3.1-flash is not available, it automatically falls back to gemini-2.5-flash and then gemini-1.5-flash to prevent API failures.
🚀 Local Setup & Development
-
Install Dependencies:
npm install -
Run Dev Server:
npm run dev -
Open the browser: Navigate to http://localhost:3000 using a desktop or mobile browser viewport.
🧠 Key Features & Usage
1. Persona Intensity Modes
You can customize the philosopher's tone via the Settings Modal (accessible from the header top-right):
- Gentle Schopenhauer: Softens the delivery, offering patient, empathetic, and slightly less biting responses to personal struggles while maintaining philosophical seriousness.
- Classical Schopenhauer (Default): Lucid, formal, pessimistic, and dryly witty. Strictly aligns with his historical treatises.
- Severe Schopenhauer: Concise, sharp, and cutting. Highly skeptical of human ambition and societal optimism.
2. Source-Grounded Mode
Toggle Source-Grounded Mode in the settings. This appends directives to anchor replies strictly to historical publications, reminding the simulation to draw directly from his main works.
3. Quote Card Generator
Click the Quote (quotation mark) icon beneath any response from the assistant. This opens the Quote Card Generator. You can edit the text to shorten it, preview it on a beautiful dark-academic gold-bordered canvas, and download it as an 800x500 PNG image for sharing.
4. Safety Guardrails
Discussing existential pessimism necessitates care. The application monitors incoming messages for crisis signals. If expressions of self-harm or suicidal intent are detected, the system immediately bypasses the philosophical persona to deliver direct, compassionate mental health resources and helpline information.
🐳 Docker Deployment
The application is completely containerized for simple plug-and-play execution.
-
Verify your Env File: Ensure
.env.localexists and contains yourGEMINI_API_KEY. -
Start the Container:
docker compose up --build -d -
Browse the App: Navigate to http://localhost:3000 on your device.
-
Stop the Container:
docker compose down
📚 Bibliography & References
For further reading on Arthur Schopenhauer's original public-domain writings, refer to:
- Project Gutenberg Author Index: Arthur Schopenhauer Page
- The World as Will and Idea, Vol. 1: Gutenberg eBook 38427
- Studies in Pessimism: Gutenberg eBook 10732
- Internet Archive PDF Index: The World as Will and Representation