
How my website is built: Astro, Markdown, and Azure Static Web Apps
A technical overview of how my website is built with Astro, Markdown, GitHub Actions, and Azure Static Web Apps.
I have been asked what technology powers my website. This article gives a quick technical overview of the individual building blocks and the path from a new Markdown article to a published page.
My goals
- I want to blog simply. As simply as possible and without spending too much time in a maze of editors and menus.
- Keep costs as low as possible.
- Stay close to current technology.
- Use AI. Not just to make my work easier, but because learning by doing is also part of the process.
The building blocks
Astro
The foundation is built on Astro. Astro turns pages and Markdown articles into a static website. That fits a blog well, because the finished pages can be delivered quickly and no application server is needed to render the articles.
Markdown and Astro components
The articles live as Markdown files in the repository. Frontmatter contains metadata such as the title, description, date, language, and tags. Astro components and layouts handle the shared presentation, such as the header, footer, navigation, SEO metadata, and blog articles.
Tailwind CSS
Tailwind CSS is used for styling. Colors, spacing, and the appearance of light and dark surfaces are managed centrally through the site’s style files.
Azure Static Web Apps
Azure Static Web Apps hosts the finished site. For a blog with static pages, this is a suitable and cost-effective solution.
I use the free tier, which is sufficient for my needs. It includes 100 GB of bandwidth per month.
Umami
Umami is used for web analytics. It is a privacy-friendly, cookie-free tool that analyzes site usage without personalized tracking and therefore fits the requirements of data protection and GDPR. For my use case, Umami is free of charge and does not include API support.
From article to published page
I write and edit articles in Visual Studio Code. The content is then pushed to a GitHub repository together with the rest of the project.
A GitHub Action then starts the build. Astro checks the project and generates the static files. Once the build succeeds, they are automatically published to Azure Static Web Apps.
I can also prepare an article with an optional publish date so that it only becomes visible later. The actual publishing process still runs automatically.
Multilingual support and SEO
The website is available in German and English. The language versions of an article are linked so visitors can switch between languages.
For search engines, titles, descriptions, canonical URLs, Open Graph data, and structured data are generated automatically. This is done through shared layouts and does not need to be rebuilt for each article.
The role of GitHub Copilot
GitHub Copilot helped me set up the project, translate content, and review drafts. The changes are still checked and tested before publication. Copilot does not replace the build and review process; it simply speeds up several work steps.
I create the images for the website with Microsoft Copilot, and I also use Microsoft Copilot to help me formulate the prompts.
Despite all the AI, these are just tools that help me produce better output.
On costs: GitHub Copilot currently costs $10 per month for Pro, $39 per month for Pro+, and $100 per month for Max. I use GitHub Copilot Max. For the initial creation of the website, Pro+ would probably have been enough, because it offers better model and agent options. Pro already includes access to agents, but the credits are noticeably tighter for everyday use. I built the website in April, when there were still unlimited credits.
Once the blog is up and running, there is not much to do on an ongoing basis. Writing and translating articles works without AI as well, but of course it also works with the free version or Microsoft Copilot Basic. If you want to keep updating Astro regularly (not strictly necessary from a security perspective, because it is a static web page), then GitHub Copilot Pro is probably more enjoyable.
Cost overview
| Service | Cost | Notes |
|---|---|---|
| Azure Static Web Apps | €0 | Free tier is sufficient |
| Domain / name | Price depends on the domain | Varies by TLD, provider, and renewal period |
| GitHub Copilot Pro | $10/month | Cheapest paid option |
| GitHub Copilot Pro+ | $39/month | Better model and agent options |
| GitHub Copilot Max | $100/month | My choice for heavier use |
| Umami | $0/month | Privacy-friendly analytics, free of charge and without API support |
| GitHub / repository | €0 | Enough for a private blog |
Conclusion
The combination of Astro, Markdown, GitHub, GitHub Actions, Umami, Microsoft Copilot, GitHub Copilot, and Azure Static Web Apps matches my original goals: writing articles is easy, publication is automated, analytics stays privacy-friendly, and ongoing costs remain manageable.
And of course: it is becoming increasingly obvious what became clear to me at the MVP Summit 2025: if you develop something, you need GitHub Copilot — or a competing product.