Skip to content

Repository files navigation

Open Knowledge Belgium website

The official website of Open Knowledge Belgium — an umbrella organisation (vzw/asbl) for the many open-knowledge and open-data initiatives in Belgium.

Live siteLicense: MITDeploy to GitHub Pages

It's a fast, static site built with Astro. All content lives as plain Markdown in this repo, so it's easy to read, review, and contribute to — no CMS or login required.


✨ Contributing

We welcome contributions from the community — fixing a typo, adding a story, updating an activity, or improving the site itself.

The easiest way: edit a Markdown file straight on GitHub (use the ✏️ button on any file) and open a pull request. For anything bigger, fork the repo and run it locally (below).

Common edits:

I want to…Edit
Publish a story / blog postadd a file in src/content/stories/
Add or update an activity / projecta file in src/content/activities/
Change the Home / About / Team pagessrc/content/pages/
Update navigation, footer, contactsrc/config/site.ts

See Editing content for the field details. Every pull request gets a preview build, and once merged it deploys to openknowledge.be automatically.

🚀 Run it locally

Requires Node.js 22+ and pnpm.

pnpm install
pnpm dev # http://localhost:4321
pnpm build # production build → dist/
pnpm preview # preview the production build

🧩 Tech stack

FrameworkAstro — static output
Interactivity & animationReact islands + motion (scroll reveals, hover)
StylingTailwind CSS + the Relume design system + OKBE brand tokens
ContentMarkdown via Astro content collections
HostingGitHub Pages (auto-deploy on push to main)

📁 Project structure

src/
├── components/
│ ├── react/ # interactive/animated islands (Hero, Navbar, grids, newsletter…)
│ └── ui/ # design-system primitives (button, card, input)
├── content/
│ ├── stories/ # blog posts (Markdown)
│ ├── activities/ # projects & communities (Markdown)
│ └── pages/ # Home / About / Team (Markdown frontmatter)
├── config/site.ts # nav, footer, socials, contact — one place
├── layouts/ # page shell + SEO/head
├── lib/ # content helpers
├── pages/ # routes
└── styles/ # global styles + article typography
public/uploads/ # images, referenced with absolute /uploads/… paths

📝 Editing content

All content is plain Markdown with a small YAML frontmatter block at the top.

A storysrc/content/stories/<yyyymmdd-slug>.md

---
title: Your headlinedate: 2026-01-31author: Your nametags: [open data, event]excerpt: One-sentence summary (optional).
---
Your post, in Markdown. Images go in public/uploads/stories/<slug>/ and arereferenced like /uploads/stories/<slug>/photo.jpg

An activitysrc/content/activities/<slug>.md

  • status: active lists it under “Active now”; status: past (the default) files it under “Past activities”. When nothing is active, the site invites people to start something.
  • Other fields: name, logo, tags, to (website), catchphrase, featured_image, contact_info, members.

Home / About / Teamsrc/content/pages/{home,about,team}.md.

🎨 Brand

  • Deep purple #301948 and electric purple #641bff
  • Headings in Work Sans, body in Chivo

📣 Newsletter

The signup form posts to an n8n automation (automation.openknowledge.be) that stores subscribers. The endpoint lives in src/config/site.ts.

📄 License

Code is released under the MIT License. Site content is © Open Knowledge Belgium, shared under CC BY 4.0 unless noted otherwise.

About

Open Knowledge Belgium website (v2) — Astro rebuild of openknowledge.be

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages