A modern, SEO-optimized blog built with Astro focusing on financial literacy, wealth building, and systems thinking.
This project is a personal blog for Dennis Tröger, built with Astro and featuring a clean, modern design. The blog focuses on decoding complex systems into simple solutions, with content primarily about financial literacy, wealth building, personal development, and AI implementation.
- Modern Design: Clean, responsive layout with dark mode support
- Blog System: Full-featured blog with categories, tags, and pagination
- SEO Optimization: Complete metadata management including OpenGraph and Twitter cards
- Structured Data: JSON-LD implementation for better search engine visibility
- Performance: Built with Astro for optimal performance and minimal JavaScript
- Content Management: MDX support for rich content creation
src/
├── assets/ # Static assets like images and styles
├── components/ # Reusable UI components
│ ├── blog/ # Blog-specific components
│ ├── common/ # Common components like metadata, analytics
│ ├── ui/ # UI components like buttons, cards
│ └── widgets/ # Larger widget components
├── content/ # Content configuration
├── data/ # Blog posts and other content
│ └── post/ # MDX blog posts
├── layouts/ # Page layouts
├── pages/ # Astro pages
│ └── [...blog]/ # Blog routes with dynamic paths
└── utils/ # Utility functions
├── blog.ts # Blog-related utilities
├── jsonld.ts # JSON-LD structured data utilities
├── permalinks.ts # URL handling utilities
└── images.ts # Image processing utilities
The project recently added JSON-LD structured data to improve SEO and search engine visibility. JSON-LD (JavaScript Object Notation for Linked Data) helps search engines better understand the content of the pages.
-
Utility Functions: Created in
src/utils/jsonld.ts
with three main functions:createBlogPostJsonLd
: Generates structured data for individual blog postscreateBlogListingJsonLd
: Generates structured data for blog listing pagescreateWebsiteJsonLd
: Generates structured data for the website/organization
-
Integration Points:
- Blog posts (
src/pages/[...blog]/index.astro
): UsesBlogPosting
schema - Blog listing (
src/pages/[...blog]/[...page].astro
): UsesCollectionPage
schema - Homepage (
src/pages/index.astro
): UsesWebSite
schema
- Blog posts (
-
Schema Types Used:
BlogPosting
: For individual blog articlesCollectionPage
: For blog listing pagesWebSite
: For the homepageOrganization
: For publisher informationPerson
: For author information
The blog contains articles primarily focused on:
- Financial literacy and wealth building
- Money management and investing
- Personal development
- Systems thinking
Each blog post is written in MDX format with frontmatter containing metadata like title, excerpt, image, author, categories, and tags.
- Node.js (v16+)
- npm or yarn
- Clone the repository
- Install dependencies:
npm install
oryarn
- Run development server:
npm run dev
oryarn dev
- Build for production:
npm run build
oryarn build
- Preview production build:
npm run preview
oryarn preview
The project is configured for deployment on multiple platforms:
- Vercel (vercel.json)
- Netlify (netlify.toml)
- Docker (Dockerfile and docker-compose.yml)
See LICENSE.md file for details.