A brutalist design portfolio monorepo
Modern web portfolio built with Next.js, Storyblok CMS, and Panda CSS. Showcasing projects, art, and development work through a unique design language.
My personal portfolio and creative space built as a modern monorepo. Showcasing projects, design work, and experiments through a brutalist aesthetic with custom components and a headless CMS.
Built with Next.js, Panda CSS, and Storyblok. Type-safe, tested, and documented.
Brutalist Design Language Impact typography, monochrome palette, ASCII decorations (β¦, ο½₯οΎβ, π), and a custom cursor that adds personality without sacrificing clarity.
Modular Component System Every UI element is reusable, documented in Storybook, and built with design tokens for consistency across the entire site.
Content-Driven Powered by Storyblok CMS with live preview, making it easy to update projects and content without touching code.
apps/
web/ β Portfolio website
storybook/ β Component showcase
docs/ β Documentation
packages/
ui/ β Component library
tokens/ β Design system
storyblok-api/ β CMS API client
storyblok-ui/ β CMS components
storyblok-sync/ β CMS sync scripts
storyblok-utils/ β CMS utilities
storyblok-richtext/ β Rich text renderer
analytics/ β Google Analytics
consent/ β Cookie consent
observability/ β Sentry & Datadog
security/ β Arcjet protection
env/ β Environment config
typescript/ β TS configs
now-playing/ β Spotify widget
feature-flags/ β Feature toggles
A Turborepo monorepo with shared packages for UI components, design tokens, and CMS utilities.
# Install dependencies
pnpm install
# Start development
pnpm dev
# Open http://localhost:3000Requirements: Node.js 20+, pnpm 9+
For CMS integration, add your Storyblok token to .env.local (see .env.example).
pnpm dev # Start all apps
pnpm build # Build everything
pnpm test # Run tests
pnpm lint # Check code qualityEach package can be developed independently in watch mode.
Pull requests welcome! For major changes, open an issue first.
- Fork the repo
- Create your branch (
git checkout -b feature/cool-thing) - Commit changes (
git commit -m 'Add cool thing') - Push (
git push origin feature/cool-thing) - Open a PR
MIT License - see LICENSE for details.
*ΰ©β©β§βΛΰΌΊβΰΌ»*ΰ©β©β§βΛ
Domenik TΓΆfflinger Β· @dmnktoe
Instagram Β· @icon.icon.iconn