From f318a6bdafb541ef03b0a31ac1463e05118ddec8 Mon Sep 17 00:00:00 2001 From: latte Date: Wed, 24 Dec 2025 16:45:35 +0100 Subject: [PATCH 1/6] Add .gitignore, robots.txt, and sitemap integration Move and restructure BaseLayout to src/layouts with SEO meta tags Add 404 page with accessibility improvements Restructure pages to src/pages --- .gitignore | 41 +++++++ BaseLayout.astro | 93 -------------- astro.config.mjs | 8 ++ package.json | 3 +- favicon.svg => public/favicon.svg | 0 public/robots.txt | 16 +++ src/layouts/BaseLayout.astro | 174 +++++++++++++++++++++++++++ src/pages/404.astro | 150 +++++++++++++++++++++++ index.astro => src/pages/index.astro | 89 +++++++------- 9 files changed, 439 insertions(+), 135 deletions(-) create mode 100644 .gitignore delete mode 100644 BaseLayout.astro rename favicon.svg => public/favicon.svg (100%) create mode 100644 public/robots.txt create mode 100644 src/layouts/BaseLayout.astro create mode 100644 src/pages/404.astro rename index.astro => src/pages/index.astro (69%) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d75993e --- /dev/null +++ b/.gitignore @@ -0,0 +1,41 @@ +# Build output +dist/ +.astro/ + +# Dependencies +node_modules/ + +# Logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# Environment variables +.env +.env.local +.env.production +.env.*.local + +# macOS +.DS_Store + +# IDE +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# OS +Thumbs.db + +# Package lock files (keep package-lock.json but ignore others) +yarn.lock +pnpm-lock.yaml + +# Local development +*.local + +# Build artifacts +*.tsbuildinfo diff --git a/BaseLayout.astro b/BaseLayout.astro deleted file mode 100644 index eafde98..0000000 --- a/BaseLayout.astro +++ /dev/null @@ -1,93 +0,0 @@ ---- -interface Props { - title: string; -} - -const { title } = Astro.props; ---- - - - - - - - - - - {title} - - - - - - - diff --git a/astro.config.mjs b/astro.config.mjs index e7b017a..4caa244 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,6 +1,14 @@ import { defineConfig } from 'astro/config'; +import sitemap from '@astrojs/sitemap'; // https://astro.build/config export default defineConfig({ site: 'https://hiddenden.cafe', + integrations: [ + sitemap({ + changefreq: 'weekly', + priority: 0.7, + lastmod: new Date(), + }), + ], }); diff --git a/package.json b/package.json index 27457eb..728e972 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.16.18" + "astro": "^4.16.18", + "@astrojs/sitemap": "^3.2.2" } } diff --git a/favicon.svg b/public/favicon.svg similarity index 100% rename from favicon.svg rename to public/favicon.svg diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..c182de7 --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,16 @@ +# Hidden Den Cafe - Robots.txt +User-agent: * +Allow: / + +# Sitemap +Sitemap: https://hiddenden.cafe/sitemap-index.xml + +# Crawl-delay for polite crawlers +Crawl-delay: 1 + +# Block aggressive bots (optional - uncomment if needed) +# User-agent: AhrefsBot +# Disallow: / + +# User-agent: SemrushBot +# Disallow: / diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro new file mode 100644 index 0000000..94c86f8 --- /dev/null +++ b/src/layouts/BaseLayout.astro @@ -0,0 +1,174 @@ +--- +interface Props { + title: string; + description?: string; + ogImage?: string; + canonicalURL?: string; +} + +const { + title, + description = "Hidden Den Cafe - A cozy, self-hosted corner of the internet. Privacy-focused, furry-friendly, and built with love.", + ogImage = "/og-image.png", + canonicalURL = Astro.url.pathname +} = Astro.props; + +const fullCanonicalURL = new URL(canonicalURL, Astro.site).href; +const fullOgImage = new URL(ogImage, Astro.site).href; +--- + + + + + + + + + + {title} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/pages/404.astro b/src/pages/404.astro new file mode 100644 index 0000000..a8bade5 --- /dev/null +++ b/src/pages/404.astro @@ -0,0 +1,150 @@ +--- +import BaseLayout from '../layouts/BaseLayout.astro'; +--- + + +
+
+
+
+

404

+

Lost in the Den?

+

+ Oops! This cozy corner doesn't seem to exist. Maybe it's still being built, + or perhaps you've wandered into a part of the den that hasn't been opened yet. +

+ +
+
+
+
+
+ + diff --git a/index.astro b/src/pages/index.astro similarity index 69% rename from index.astro rename to src/pages/index.astro index 05e9e54..ac6f696 100644 --- a/index.astro +++ b/src/pages/index.astro @@ -2,23 +2,28 @@ import BaseLayout from '../layouts/BaseLayout.astro'; --- - -
+ +
-
+
-

🏡 Hidden Den Cafe

+

+ Hidden Den Cafe +

A cozy corner of the internet

-
+
-

☕ About Hidden Den

+

About Hidden Den

Welcome to Hidden Den Cafe - a warm, self-hosted space where technology meets comfort. This is a personal corner of the internet built with love, @@ -34,10 +39,10 @@ import BaseLayout from '../layouts/BaseLayout.astro';

-
+
-

🦊 About Me

+

About Me

Hey there! I'm Latte, a gay furry developer who loves building things and being part of the warm, welcoming furry community. I'm passionate @@ -58,24 +63,24 @@ import BaseLayout from '../layouts/BaseLayout.astro';

-
+
-

🛠️ Services

+

Services

Here are the services currently running in the den:

- -
-
+ +
+

- - 📦 Gitea + + Gitea

Self-hosted Git service for all my projects and code repositories.

- -
-

🔜 More Coming Soon

+ +
+

More Coming Soon

The den is always growing! More services will be added as they're developed and deployed.

@@ -84,36 +89,36 @@ import BaseLayout from '../layouts/BaseLayout.astro';
-
+
-

💝 How to Help Out

+

How to Help Out

- If you'd like to support the Hidden Den and help keep the lights on, + If you'd like to support the Hidden Den and help keep the lights on, here are some ways you can contribute:

- -
-
-

🌟 Share & Spread the Word

+ +
+
+

Share & Spread the Word

Tell others about the projects and services hosted here!

- -
-

🐛 Report Issues

+ +
+

Report Issues

Found a bug or have a suggestion? Let me know!

- -
-

☕ Buy Me a Coffee

+ +
+

Buy Me a Coffee

- Donations help cover server costs and keep the den cozy. + Donations help cover server costs and keep the den cozy. (Payment links coming soon!)

-
-

🤝 Contribute

+
+

Contribute

Check out the projects on Gitea - contributions are always welcome!

@@ -122,14 +127,16 @@ import BaseLayout from '../layouts/BaseLayout.astro';
-
From ee324596ba69bf2e97f0ec3507e41278f5dc0d77 Mon Sep 17 00:00:00 2001 From: latte Date: Tue, 30 Dec 2025 13:43:08 +0000 Subject: [PATCH 2/6] Update documentation to reflect current project structure MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Rename CLAUDE.MD to CLAUDE.md for correct case-sensitive formatting - Update file structure diagrams across all documentation files - Document standard Astro src/ directory structure (layouts, pages) - Add 404.astro custom error page to documentation - Include robots.txt and sitemap integration in docs - Update current status to reflect completed features: - Custom 404 page with themed styling - Sitemap integration for SEO - Accessibility improvements (ARIA labels, semantic HTML) - Update code examples to use proper import paths from src/ - Mark completed TODO items (404 page, sitemap, accessibility) All documentation now accurately reflects the standard Astro project structure with layouts in src/layouts/ and pages in src/pages/. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- CLAUDE.MD | 236 --------------------------------------------- CLAUDE.md | 169 ++++++++++++++++++++++++++++++++ DEVELOPMENT.md | 16 ++- PROJECT_CONTEXT.md | 8 +- TODO.md | 12 ++- 5 files changed, 196 insertions(+), 245 deletions(-) delete mode 100644 CLAUDE.MD create mode 100644 CLAUDE.md diff --git a/CLAUDE.MD b/CLAUDE.MD deleted file mode 100644 index 7efe163..0000000 --- a/CLAUDE.MD +++ /dev/null @@ -1,236 +0,0 @@ -# CLAUDE.MD - AI Assistant Guide - -This file provides guidance for Claude Code and other AI assistants when working with the Cozy Den project. - -## Project Quick Reference - -**Project:** Cozy Den - Personal landing page for hiddenden.cafe -**Owner:** Latte (gay furry developer, values self-hosting and privacy) -**Tech Stack:** Astro 4.x, TypeScript, Vanilla CSS, Docker + Nginx -**Aesthetic:** Warm coffee/cappuccino theme, cozy hidden den vibes -**Deployment:** Docker containers pushed to Gitea registry at git.hiddenden.cafe - -## Core Design Principles - -1. **Cozy Aesthetic** - Warm colors, coffee/cappuccino theme, hidden den vibes -2. **Self-Hosted** - Everything runs on personal infrastructure (homelab/VPS) -3. **Privacy First** - No tracking, no external dependencies -4. **Lightweight** - Static HTML/CSS, minimal JavaScript -5. **Docker-Ready** - Easy deployment via containers - -## File Structure - -``` -src/ -├── layouts/ -│ └── BaseLayout.astro # Base HTML layout + global styles + CSS variables -├── pages/ -│ └── index.astro # Main landing page (all sections here) -└── components/ # Empty - ready for future components -public/ -└── favicon.svg # Coffee emoji favicon -``` - -**Key Files:** -- `src/layouts/BaseLayout.astro` - CSS variables, global styles, base HTML structure -- `src/pages/index.astro` - All page content and section-specific styles -- `astro.config.mjs` - Astro configuration -- `Dockerfile` - Multi-stage build (Node builder + Nginx server) -- `docker-compose.yml` - Local Docker Compose setup -- `nginx.conf` - Production Nginx configuration - -## Color System - -All colors use CSS custom properties in `src/layouts/BaseLayout.astro`: - -```css ---color-bg: #1a1410 /* Dark background (deep coffee) */ ---color-bg-light: #2a1f18 /* Lighter background for cards */ ---color-text: #f4e9d8 /* Cream text */ ---color-text-dim: #c4b5a0 /* Dimmed text */ ---color-accent: #d4a574 /* Warm accent (coffee with cream) */ ---color-accent-bright: #e8bf8e /* Brighter accent for highlights */ ---color-warm: #8b6f47 /* Warm brown for borders/accents */ -``` - -**To change theme:** Edit these variables. All components update automatically. - -## Common Modification Patterns - -### Adding a Section -```astro -
-
-
-

Section Title

-

Content

-
-
-
-``` - -### Adding a Service -```astro -
-

🔧 Service Name

-

Description of the service

-
-``` - -### Adding a New Page -Create `src/pages/newpage.astro`: -```astro ---- -import BaseLayout from '../layouts/BaseLayout.astro'; ---- - - -
-

New Page

-
-
-``` - -## Development Workflow - -```bash -npm install # Install dependencies -npm run dev # Start dev server (http://localhost:4321) -npm run build # Build for production (output to dist/) -npm run preview # Preview production build -``` - -## Docker Workflow - -```bash -# Build image -docker build -t cozy-den . - -# Run locally -docker run -d -p 3000:80 --name cozy-den cozy-den - -# Or use Docker Compose -docker-compose up -d - -# Tag for Gitea registry -docker tag cozy-den git.hiddenden.cafe/mats/cozy-den:latest - -# Push to Gitea -docker login git.hiddenden.cafe -docker push git.hiddenden.cafe/mats/cozy-den:latest -``` - -## Important Implementation Guidelines - -### DO: -- Maintain the cozy, warm aesthetic (coffee theme) -- Keep the site lightweight and fast (static HTML/CSS) -- Use CSS custom properties for all colors -- Add `.fade-in` class for animations -- Test both dev and production builds -- Verify Docker build works after changes -- Use semantic HTML with consistent `.card` class styling -- Ensure responsive design works on mobile -- Be warm and friendly in communication (matches site vibe) -- Focus on practical implementation -- Respect the furry community context - -### DON'T: -- Add tracking or external dependencies -- Make the site heavy or complex -- Use JavaScript unless absolutely necessary (site is pure HTML/CSS) -- Create sterile or corporate design elements -- Add features not explicitly requested -- Break the coffee/warm color theme -- Ignore accessibility considerations - -## Astro-Specific Notes - -- **File Extensions:** `.astro` for components, `.mjs` for config -- **Frontmatter:** Code between `---` runs at build time -- **Styling:** ` diff --git a/src/pages/index.astro b/src/pages/index.astro index ac6f696..0cad766 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,301 +1,331 @@ --- -import BaseLayout from '../layouts/BaseLayout.astro'; +import BaseLayout from "../layouts/BaseLayout.astro"; --- -
- -
-
-
-

- Hidden Den Cafe -

-

A cozy corner of the internet

-
-
-
- - -
-
-
-

About Hidden Den

-

- Welcome to Hidden Den Cafe - a warm, self-hosted space where technology - meets comfort. This is a personal corner of the internet built with love, - care, and a strong belief in privacy and open-source values. -

-

- Everything here runs on self-hosted infrastructure, giving complete control - over data and services. No cloud dependencies, no tracking, just a cozy - digital home. -

-
-
-
- - -
-
-
-

About Me

-

- Hey there! I'm Latte, a gay furry developer who loves building things - and being part of the warm, welcoming furry community. I'm passionate - about self-hosting, open-source software, and creating cozy spaces - both online and off. -

-

- I work primarily with Python and Flask, though I'm always learning new - things (currently exploring JavaScript and the C stack). When I get those - surges of creative energy, I love diving into new projects - from Reddit - downloaders to Telegram sticker tools, and everything in between. -

-

- Coffee enthusiast ☕ • Linux lover 🐧 • Self-hosting advocate 🏠 -

-
-
-
- - -
-
-
-

Services

-

Here are the services currently running in the den:

- -
-
-

- - Gitea - -

-

Self-hosted Git service for all my projects and code repositories.

+
+ +
+
+
+

Hidden Den Cafe

+

A cozy corner of the internet

+
+
-
-

More Coming Soon

-

The den is always growing! More services will be added as they're developed and deployed.

+ +
+
+
+

About Hidden Den

+

+ Welcome to Hidden Den Cafe - a warm, self-hosted space + where technology meets comfort. This is a personal + corner of the internet built with love, care, and a + strong belief in privacy and open-source values. +

+

+ Everything here runs on self-hosted infrastructure, + giving complete control over data and services. No cloud + dependencies, no tracking, just a cozy digital home. +

+
-
-
-
-
+ - -
-
-
-

How to Help Out

-

- If you'd like to support the Hidden Den and help keep the lights on, - here are some ways you can contribute: -

- -
-
-

Share & Spread the Word

-

Tell others about the projects and services hosted here!

+ +
+
+
+

About Me

+

+ Hey there! I'm Latte, a gay furry developer who loves + building things and being part of the warm, welcoming + furry community. I'm passionate about self-hosting, + open-source software, and creating cozy spaces both + online and off. +

+

+ I work primarily with Python and Flask, though I'm + always learning new things (currently exploring + JavaScript and the C stack). When I get those surges of + creative energy, I love diving into new projects - from + Reddit downloaders to Telegram sticker tools, and + everything in between. +

+

+ Coffee enthusiast • Linux lover • Self-hosting advocate +

+
+
-
-

Report Issues

-

Found a bug or have a suggestion? Let me know!

+ +
+
+
+

Services

+

Here are the services currently running in the den:

+ +
+
+

+ + Gitea + +

+

+ Self-hosted Git service for all my projects and + code repositories. +

+
+ +
+

More Coming Soon

+

+ The den is always growing! More services will be + added as they're developed and deployed. +

+
+
+
+
-
-

Buy Me a Coffee

-

- Donations help cover server costs and keep the den cozy. - (Payment links coming soon!) -

+ +
+
+
+

How to Help Out

+

+ If you'd like to support the Hidden Den and help keep + the lights on, here are some ways you can contribute: +

+ +
+
+

Share & Spread the Word

+

+ Tell others about the projects and services + hosted here! +

+
+ +
+

Report Issues

+

+ Found a bug or have a suggestion? Let me know! +

+
+ +
+

Buy Me a Coffee

+

+ Donations help cover server costs and keep the + den cozy. + (Payment links coming soon!) +

+
+ +
+

Contribute

+

+ Check out the projects on Gitea - contributions + are always welcome! +

+
+
+
+
-
-

Contribute

-

Check out the projects on Gitea - contributions are always welcome!

+ +
+
+

Made with love by Latte

+
-
-
-
-
- - - -
+ +
From 6ed0eee514576ff924bdc6060ecbf27984cdf76f Mon Sep 17 00:00:00 2001 From: latte Date: Wed, 31 Dec 2025 18:12:11 +0000 Subject: [PATCH 6/6] feat: Implement Phase 1 enhancements - components and animations Components: - Extract ServiceItem component with hover effects - Extract SupportItem component with hover animations - Extract Card component with scroll animations - Extract Section component for consistent layout Enhancements: - Add Intersection Observer for scroll-triggered animations - Implement hover effects on cards, services, and support items - Add PWA manifest (site.webmanifest) - Create SVG OG image placeholder for social sharing - Add comprehensive favicon meta tags (16x16, 32x32, apple-touch-icon) - Respect prefers-reduced-motion for accessibility Files modified: - src/pages/index.astro - Refactored to use new components - src/layouts/BaseLayout.astro - Enhanced favicon and meta tags Files created: - src/components/Card.astro - src/components/Section.astro - src/components/ServiceItem.astro - src/components/SupportItem.astro - public/og-image.svg - public/site.webmanifest - public/FAVICON_INSTRUCTIONS.md Note: PNG favicon variants still need to be generated (see FAVICON_INSTRUCTIONS.md) --- public/FAVICON_INSTRUCTIONS.md | 51 +++++ public/og-image.svg | 30 +++ public/site.webmanifest | 32 ++++ src/components/Card.astro | 74 +++++++ src/components/Section.astro | 27 +++ src/components/ServiceItem.astro | 68 +++++++ src/components/SupportItem.astro | 58 ++++++ src/layouts/BaseLayout.astro | 313 ++++++++++++++++-------------- src/pages/index.astro | 320 +++++++++++-------------------- 9 files changed, 622 insertions(+), 351 deletions(-) create mode 100644 public/FAVICON_INSTRUCTIONS.md create mode 100644 public/og-image.svg create mode 100644 public/site.webmanifest create mode 100644 src/components/Card.astro create mode 100644 src/components/Section.astro create mode 100644 src/components/ServiceItem.astro create mode 100644 src/components/SupportItem.astro diff --git a/public/FAVICON_INSTRUCTIONS.md b/public/FAVICON_INSTRUCTIONS.md new file mode 100644 index 0000000..2ad1af3 --- /dev/null +++ b/public/FAVICON_INSTRUCTIONS.md @@ -0,0 +1,51 @@ +# Favicon Generation Instructions + +The following favicon files are referenced in the site but need to be generated: + +- `favicon-16x16.png` - 16x16px PNG favicon +- `favicon-32x32.png` - 32x32px PNG favicon +- `apple-touch-icon.png` - 180x180px PNG for Apple devices +- `og-image.png` - 1200x630px PNG for social media sharing (optional, currently using SVG) + +## How to Generate + +### Option 1: Use an Online Tool +Visit https://realfavicongenerator.net/ and upload your source image (coffee emoji or custom design). + +### Option 2: Use ImageMagick (if available) +If you have a source PNG image: + +```bash +# 16x16 +convert source.png -resize 16x16 favicon-16x16.png + +# 32x32 +convert source.png -resize 32x32 favicon-32x32.png + +# Apple touch icon +convert source.png -resize 180x180 apple-touch-icon.png + +# OG image +convert source.png -resize 1200x630 og-image.png +``` + +### Option 3: Use the SVG favicon +The current `favicon.svg` (coffee emoji) works in modern browsers. The PNG variants are fallbacks for older browsers and specific platforms. + +## Current Status + +- ✅ `favicon.svg` - Exists (coffee emoji) +- ❌ `favicon-16x16.png` - Needs to be created +- ❌ `favicon-32x32.png` - Needs to be created +- ❌ `apple-touch-icon.png` - Needs to be created +- ✅ `og-image.svg` - Created (SVG placeholder) +- ⚠️ `og-image.png` - Optional (browsers support SVG, but PNG is more compatible) + +## Design Recommendations + +Use the cozy coffee theme colors: +- Background: `#1a1410` (dark coffee) +- Accent: `#e8bf8e` (light coffee/cream) +- Text: `#f4e9d8` (cream) + +The favicon should be simple and recognizable at small sizes. The coffee emoji ☕ is perfect! diff --git a/public/og-image.svg b/public/og-image.svg new file mode 100644 index 0000000..e4801b9 --- /dev/null +++ b/public/og-image.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + Hidden Den Cafe + + + + + A cozy corner of the internet + + + + + Self-hosted • Privacy-focused • Furry-friendly + + diff --git a/public/site.webmanifest b/public/site.webmanifest new file mode 100644 index 0000000..e8022b0 --- /dev/null +++ b/public/site.webmanifest @@ -0,0 +1,32 @@ +{ + "name": "Hidden Den Cafe", + "short_name": "Hidden Den", + "description": "A cozy, self-hosted corner of the internet", + "icons": [ + { + "src": "/favicon.svg", + "sizes": "any", + "type": "image/svg+xml" + }, + { + "src": "/favicon-16x16.png", + "sizes": "16x16", + "type": "image/png" + }, + { + "src": "/favicon-32x32.png", + "sizes": "32x32", + "type": "image/png" + }, + { + "src": "/apple-touch-icon.png", + "sizes": "180x180", + "type": "image/png" + } + ], + "theme_color": "#d4a574", + "background_color": "#1a1410", + "display": "standalone", + "start_url": "/", + "orientation": "portrait" +} diff --git a/src/components/Card.astro b/src/components/Card.astro new file mode 100644 index 0000000..7159b1a --- /dev/null +++ b/src/components/Card.astro @@ -0,0 +1,74 @@ +--- +interface Props { + class?: string; +} + +const { class: className } = Astro.props; +--- + +
+ +
+ + diff --git a/src/components/Section.astro b/src/components/Section.astro new file mode 100644 index 0000000..98b9e45 --- /dev/null +++ b/src/components/Section.astro @@ -0,0 +1,27 @@ +--- +interface Props { + class?: string; + ariaLabelledby?: string; +} + +const { class: className, ariaLabelledby } = Astro.props; +--- + +
+
+ +
+
+ + diff --git a/src/components/ServiceItem.astro b/src/components/ServiceItem.astro new file mode 100644 index 0000000..4eafd7d --- /dev/null +++ b/src/components/ServiceItem.astro @@ -0,0 +1,68 @@ +--- +interface Props { + title: string; + description: string; + url?: string; + comingSoon?: boolean; +} + +const { title, description, url, comingSoon = false } = Astro.props; +--- + +
+

+ {url ? ( + + {title} + + ) : ( + title + )} +

+

{description}

+
+ + diff --git a/src/components/SupportItem.astro b/src/components/SupportItem.astro new file mode 100644 index 0000000..ba5546e --- /dev/null +++ b/src/components/SupportItem.astro @@ -0,0 +1,58 @@ +--- +interface Props { + title: string; + description: string; + comingSoonNote?: string; +} + +const { title, description, comingSoonNote } = Astro.props; +--- + +
+

{title}

+

+ {description} + {comingSoonNote && ( + ({comingSoonNote}) + )} +

+
+ + diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro index 94c86f8..205b91a 100644 --- a/src/layouts/BaseLayout.astro +++ b/src/layouts/BaseLayout.astro @@ -1,16 +1,16 @@ --- interface Props { - title: string; - description?: string; - ogImage?: string; - canonicalURL?: string; + title: string; + description?: string; + ogImage?: string; + canonicalURL?: string; } const { - title, - description = "Hidden Den Cafe - A cozy, self-hosted corner of the internet. Privacy-focused, furry-friendly, and built with love.", - ogImage = "/og-image.png", - canonicalURL = Astro.url.pathname + title, + description = "Hidden Den Cafe - A cozy, self-hosted corner of the internet. Privacy-focused, furry-friendly, and built with love.", + ogImage = "/og-image.png", + canonicalURL = Astro.url.pathname, } = Astro.props; const fullCanonicalURL = new URL(canonicalURL, Astro.site).href; @@ -19,156 +19,183 @@ const fullOgImage = new URL(ogImage, Astro.site).href; - - - - + + + + - - {title} - - - + + {title} + + + - - - - - - - - + + + + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - + + + + + + - - - - - - + + + + + + diff --git a/src/pages/index.astro b/src/pages/index.astro index 0cad766..4eebc54 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,5 +1,9 @@ --- import BaseLayout from "../layouts/BaseLayout.astro"; +import Card from "../components/Card.astro"; +import Section from "../components/Section.astro"; +import ServiceItem from "../components/ServiceItem.astro"; +import SupportItem from "../components/SupportItem.astro"; --- -
-
-
-

About Hidden Den

-

- Welcome to Hidden Den Cafe - a warm, self-hosted space - where technology meets comfort. This is a personal - corner of the internet built with love, care, and a - strong belief in privacy and open-source values. -

-

- Everything here runs on self-hosted infrastructure, - giving complete control over data and services. No cloud - dependencies, no tracking, just a cozy digital home. -

-
-
-
+
+ +

About Hidden Den

+

+ Welcome to Hidden Den Cafe - a warm, self-hosted space where + technology meets comfort. This is a personal corner of the + internet built with love, care, and a strong belief in + privacy and open-source values. +

+

+ Everything here runs on self-hosted infrastructure, giving + complete control over data and services. No cloud + dependencies, no tracking, just a cozy digital home. +

+
+
-
-
-
-

About Me

-

- Hey there! I'm Latte, a gay furry developer who loves - building things and being part of the warm, welcoming - furry community. I'm passionate about self-hosting, - open-source software, and creating cozy spaces both - online and off. -

-

- I work primarily with Python and Flask, though I'm - always learning new things (currently exploring - JavaScript and the C stack). When I get those surges of - creative energy, I love diving into new projects - from - Reddit downloaders to Telegram sticker tools, and - everything in between. -

-

- Coffee enthusiast • Linux lover • Self-hosting advocate -

-
-
-
+
+ +

About Me

+

+ Hey there! I'm Latte, a gay furry developer who loves + building things and being part of the warm, welcoming furry + community. I'm passionate about self-hosting, open-source + software, and creating cozy spaces both online and off. +

+

+ I work primarily with Python and Flask, though I'm always + learning new things (currently exploring JavaScript and the + C stack). When I get those surges of creative energy, I love + diving into new projects - from Reddit downloaders to + Telegram sticker tools, and everything in between. +

+

Coffee enthusiast • Linux lover • Self-hosting advocate

+
+
-
-
-
-

Services

-

Here are the services currently running in the den:

+
+ +

Services

+

Here are the services currently running in the den:

-
-
-

- - Gitea - -

-

- Self-hosted Git service for all my projects and - code repositories. -

-
- -
-

More Coming Soon

-

- The den is always growing! More services will be - added as they're developed and deployed. -

-
-
+
+ +
-
-
+ + -
-
-
-

How to Help Out

-

- If you'd like to support the Hidden Den and help keep - the lights on, here are some ways you can contribute: -

+
+ +

How to Help Out

+

+ If you'd like to support the Hidden Den and help keep the + lights on, here are some ways you can contribute: +

-
-
-

Share & Spread the Word

-

- Tell others about the projects and services - hosted here! -

-
- -
-

Report Issues

-

- Found a bug or have a suggestion? Let me know! -

-
- -
-

Buy Me a Coffee

-

- Donations help cover server costs and keep the - den cozy. - (Payment links coming soon!) -

-
- -
-

Contribute

-

- Check out the projects on Gitea - contributions - are always welcome! -

-
-
+
+ + + +
-
-
+ +
@@ -166,6 +128,32 @@ import BaseLayout from "../layouts/BaseLayout.astro";
+ + +