77b5eb86c862e9b92aaf9029dce00ff2fb734b34
Add CLAUDE.md with repo guidance and architecture notes Add new post "The Haircut Nobody Mentioned" Adjust pubDate for Clearing the Queue and Knowing Your Worth Remove draft flag from Knowing Your Worth Fix frontmatter in Building as Avoidance
Cozy Den 🏡☕
A cozy landing page for hiddenden.cafe built with Astro.
About
Cozy Den is a warm, self-hosted corner of the internet. This landing page represents the values of privacy, open-source software, and creating comfortable digital spaces.
Features
- ☕ Cozy, warm aesthetic with hidden den theme
- 🎨 Catppuccin Mocha color palette
- 📱 Responsive design
- ⚡ Built with Astro for blazing fast performance
- 🐳 Docker support for easy deployment
- 📝 Blog powered by Astro Content Collections (hardcoded Markdown, no CMS)
Setup
Prerequisites
- Node.js 18+ and npm
- (Optional) Docker for containerized deployment
Installation
- Clone or download this project
- Install dependencies:
npm install
- Run the development server:
npm run dev
- Build for production:
npm run build
- Preview production build:
npm run preview
Docker Deployment
Building the Docker Image
docker build -t cozy-den .
Running the Container
docker run -d -p 3000:80 --name cozy-den cozy-den
Or with docker-compose:
docker-compose up -d
Pushing to Gitea Registry
# Tag the image
docker tag cozy-den git.hiddenden.cafe/mats/cozy-den:latest
# Login to your Gitea registry
docker login git.hiddenden.cafe
# Push the image
docker push git.hiddenden.cafe/mats/cozy-den:latest
Blog Text-to-Speech
Blog posts kunnen automatisch omgezet worden naar audio met scripts/tts_generate.py.
Setup
- Kopieer
.env.examplenaar.enven vul je API key in - Exporteer de variabelen:
export GOOGLE_API_KEY=jouw_sleutel_hier
# of: export MISTRAL_API_KEY=... / export OPENAI_API_KEY=...
Audio genereren
# Eén post — output: <slug>.mp3 in de huidige map
python scripts/tts_generate.py src/content/blog/hello-world.md
# Andere output directory
python scripts/tts_generate.py src/content/blog/hello-world.md --output-dir public/audio
# Andere provider
TTS_PROVIDER=openai python scripts/tts_generate.py src/content/blog/hello-world.md
Beschikbare providers (via TTS_PROVIDER):
| Provider | Env var | Prijs |
|---|---|---|
google (standaard) |
GOOGLE_API_KEY |
1M chars/maand gratis |
mistral |
MISTRAL_API_KEY |
~$16/M chars |
openai |
OPENAI_API_KEY |
~$15/M chars |
Audio tonen op een blogpost
Voeg audio: true toe aan het frontmatter van de post. De <audio> player verschijnt automatisch en laadt van https://audio.hiddenden.cafe/<slug>.mp3.
---
title: "Mijn post"
audio: true
---
Customization
The site is built to be easily customizable:
- Colors: Edit the CSS variables in
src/layouts/BaseLayout.astro - Content: Update sections in
src/pages/index.astro - Favicon: Replace
public/favicon.svg - Blog posts: Add
.mdfiles tosrc/content/blog/— they appear automatically at/blog - Blog images: Place images in
public/blog/<post-slug>/and reference with/blog/<post-slug>/image.jpg
Technology Stack
- Astro - Static site generator
- Vanilla CSS with custom properties
- TypeScript for type safety
License
Personal project - feel free to use as inspiration for your own cozy corners of the internet!
Made with 💖 by Latte
Description
Cozy Den is a warm, self-hosted corner of the internet. This landing page represents the values of privacy, open-source software, and creating comfortable digital spaces.
Languages
Astro
82.5%
TypeScript
10.8%
Python
6.2%
Dockerfile
0.3%
JavaScript
0.2%