Skip to main content
← Back to blog

The story of our new website: how mik.fi was built

Malmin Ilmailukerho
websitetechproject
The story of our new website: how mik.fi was built

Many members noticed last January that mik.fi suddenly looked completely different. The old WordPress site gave way to something more modern, faster, and available in three languages. Here’s the story of how it was built — and what’s happened since.

Wireframe of the mik.fi homepage with three language chips FI/SV/EN in the top corner
The new site serves Finnish, Swedish, and English from one shared content model

Why a new site?

The old site was built on WordPress and wasn’t designed for mobile use or multiple languages. Updating content meant logging into an admin panel, and changes left no trace anywhere. The goal was simple: a modern, fast site that works on every device, whose content any club volunteer could update directly by editing text files — with every change tracked in Git.

How it was built

The project started on 25 November 2025, when Chris Whellams created a new repository. The foundation was laid that very same day with the help of GitHub Copilot’s autonomous coding agent, which scaffolded an Astro-based site with news and events support in a single run. From there, the site grew step by step, mostly on volunteer time, piece by piece.

Diagram: content flows from Markdown through Astro to Cloudflare's edge network, with mik-ng's events API feeding data into the site
Content is written as Markdown, Astro compiles it into static pages, and Cloudflare serves them to visitors

The technical foundation today is:

  • Astro 5 for static, and partly server-rendered, page generation
  • TypeScript across the codebase
  • Tailwind CSS for styling
  • Content Collections for blog posts, news, and pages — every article is a Markdown or MDX file whose fields (title, description, publish date, language…) are validated automatically with a Zod schema
  • Cloudflare Pages as the hosting platform — every merged change ships to production automatically

Content management is deliberately simple: a new blog post or news item is a single Markdown file in src/content/. A small custom remark plugin turns the plain ![image](path "caption") syntax into images with captions, a clickable high-resolution version, and custom widths, without any separate components or imports.

Making a change is kept lightweight too: content and code are edited on a branch, npm run dev shows the result locally right away, and code runs through Prettier via npm run format before a pull request goes up. Cloudflare Pages handles the actual deploy automatically the moment a change is merged to main — no separate release step needed.

Three languages, one set of content

Finnish is the site’s default language with no URL prefix, Swedish lives under /sv/, and English under /en/. Every page and article exists separately in each language, and switching languages always preserves where you were on the site.

Timeline

Timeline from November 2025 to August 2026: project kickoff, launch, team growth, and integration with mik-ng
The site's main milestones over a bit more than half a year
  • November 2025 — Project kicks off; the first version is scaffolded with help from Copilot’s coding agent
  • December 2025 — Niko Ikonen joins and builds out the content model and trilingual pages
  • January 2026 — The new site launches (Jan 14)
  • February 2026 — Kalle Autio and Jani Grundström join as contributors; image features are expanded
  • July 2026 — The public events page starts pulling data live from the club’s own mik-ng system, with improved timezone and structured-data handling
  • August 2026 — Astro, Tailwind, MDX, and the Cloudflare adapter are upgraded to their latest major versions, and translation issues are fixed

The people

A small group of volunteers has built this site over the past year: Chris Whellams started the project, Niko Ikonen has built most of the content structure and features, and Kalle Autio, Jani Grundström, and Kim G. have contributed content and fixes along the way. It’s all done on the club’s own volunteer time, a hobby alongside the flying.

AI as part of the toolkit

The site’s commit history also tells another story: the gradual adoption of AI-assisted development. The very first version of the site was produced in November 2025 by GitHub Copilot’s autonomous coding agent in a single run, with a human setting the task and reviewing the result. In July 2026, Claude Code joined the toolkit too, used among other things to build the mik-ng events integration and its timezone handling. Both agents work alongside human design and review work — not in place of it.

What’s coming next

Based on the open GitHub issues, work on the site currently includes:

  • Migrating from Cloudflare Pages to Cloudflare Workers, the platform’s newer and more actively developed deployment model
  • Richer event cards, once mik-ng’s events API starts exposing images and performer information
  • New training pathways on the training page, such as the LAPL(S) → LAPL(A) and PPL(A) SEP(land) transitions

More content keeps arriving as the club has things to share — recently that’s included news about a visit to the EFHK air traffic control tower and this summer’s club party. If you’d like to write a blog post or news item yourself, reach out to the club’s web team!