No description
- Svelte 67.4%
- TypeScript 24.4%
- HTML 6.2%
- CSS 1.2%
- Dockerfile 0.6%
- Other 0.2%
| .cursor | ||
| .vscode | ||
| content/articles | ||
| example | ||
| src | ||
| static | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| .mcp.json | ||
| .npmrc | ||
| .onedev-buildspec.yml | ||
| ACHIEVEMENTS.md | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| docker-compose.yml | ||
| Dockerfile | ||
| package-lock.json | ||
| package.json | ||
| PROJECT_GUIDE.md | ||
| README.md | ||
| svelte.config.js | ||
| tsconfig.json | ||
| vite.config.ts | ||
Fungatorium
A retro terminal-themed wiki application for TTRPG games, built with SvelteKit, Tailwind CSS, and markdown-based content.
Quick Start
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview
Visit http://localhost:5173 to view the app.
Default Login Tokens
- Visitor:
visitor123(can view all public articles) - Admin:
admin456(can view all articles including restricted)
Features
- Retro CRT terminal aesthetic with scanlines and phosphor green text
- Token-based authentication (visitor and admin roles)
- Markdown-based articles with frontmatter
- Category-based organization
- Auth-protected articles
- File-based content (no database required)
- Automatic article loading on server start
Content Management
Articles are stored as markdown files in content/articles/:
---
title: Article Title
category: Category Name
requiresAuth: false
createdAt: 2026-01-01
updatedAt: 2026-01-02
---
# Your Content Here
Write your article content in markdown...
Adding Articles
- Create a new
.mdfile incontent/articles/ - Add frontmatter with title, category, etc.
- Write your content
- Restart server or wait for auto-reload
See content/articles/README.md for detailed formatting instructions.
Project Structure
src/
├── lib/
│ ├── components/TerminalLayout.svelte
│ └── server/
│ ├── articles.ts (markdown loader)
│ └── auth.ts (token validation)
├── routes/
│ ├── articles/ (article listing & viewing)
│ ├── auth/ (login/logout)
│ └── map/ (placeholder)
content/
└── articles/ (markdown files)
├── welcome.md
├── mycelial-network.md
└── ...
Design
The app features a unique retro terminal aesthetic inspired by old CRT monitors:
- Terminal green (#33ff00) color scheme
- VT323 display font for headers
- Fira Code monospace font for body text
- Scanline overlay effect
- Retro 3D box shadows
- Grid background pattern
- Custom green scrollbar
Tech Stack
- SvelteKit 2.x - Full-stack framework
- Svelte 5.x - UI framework with runes
- Tailwind CSS 4.x - Styling
- gray-matter - Frontmatter parsing
- marked - Markdown to HTML
- TypeScript - Type safety
Authentication
Simple token-based authentication with in-memory store. To add or modify tokens, edit src/lib/server/auth.ts:
const AUTH_TOKENS = {
visitor123: { role: 'visitor', name: 'Guest Visitor' },
admin456: { role: 'admin', name: 'Administrator' }
};
Development
Articles are cached for 1 minute during development. To force reload:
- Restart the server
- Modify
src/hooks.server.tsto trigger reload - Wait for cache to expire
License
MIT