Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 24 additions & 24 deletions .github/workflows/format-members-list.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,30 +7,30 @@ jobs:
contents: write
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v4
with:
node-version: 20
- uses: actions/setup-node@v5
with:
node-version: 22

- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}

- name: 'Format members-list.json'
run: npx prettier@latest -w src/_data/members-list.json

- name: 'Commit formatted code'
run: |
# Check if there is nothing to commit (i.e. no formatting changes made)
if [ -z "$(git status --porcelain)" ]; then
echo "Code is already formatted correctly"
exit 0
fi
- uses: actions/checkout@v5
with:
ref: ${{ github.event.pull_request.head.ref }}

# Setup the git user (required to commit anything)
git config --global user.email "1964376+SleeplessByte@users.noreply.github.com"
git config --global user.name "github-actions[bot]"
- name: "Format members-list.json"
run: npx prettier@latest -w src/_data/members-list.json

# Commit the changes made by prettier
git add .
git commit -m "[CI] Format members-list.json"
git push
- name: "Commit formatted code"
run: |
# Check if there is nothing to commit (i.e. no formatting changes made)
if [ -z "$(git status --porcelain)" ]; then
echo "Code is already formatted correctly"
exit 0
fi

# Setup the git user (required to commit anything)
git config --global user.email "1964376+SleeplessByte@users.noreply.github.com"
git config --global user.name "github-actions[bot]"

# Commit the changes made by prettier
git add .
git commit -m "[CI] Format members-list.json"
git push
10 changes: 10 additions & 0 deletions .puppeteerrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const { join } = require("path");

/**
* @type {import("puppeteer").Configuration}
*/
module.exports = {
// Store Chrome inside the project so Netlify's build cache picks it up
// between builds (Netlify caches ./node_modules and ./.cache by default).
cacheDirectory: join(__dirname, ".cache", "puppeteer"),
};
7 changes: 6 additions & 1 deletion netlify.toml
Original file line number Diff line number Diff line change
@@ -1,2 +1,7 @@
[build]
command = "npx puppeteer browsers install chrome && npm run build"
# Install Chrome via @puppeteer/browsers directly. puppeteer's own install.mjs
# is unreliable on Netlify because (a) it respects PUPPETEER_SKIP_DOWNLOAD=true
# which Netlify sets by default, and (b) it calls downloadBrowsers() without
# awaiting, so failures get swallowed. We pin the cache dir explicitly and
# echo the result so the next failure is debuggable.
command = "node node_modules/@puppeteer/browsers/lib/cjs/main-cli.js install chrome@146.0.7680.153 --path $PWD/.cache/puppeteer && echo '--- .cache/puppeteer contents ---' && ls -la .cache/puppeteer && npm run build"
18 changes: 0 additions & 18 deletions src/en/activities/2026/lunchmeeting-july-2026.md

This file was deleted.

18 changes: 0 additions & 18 deletions src/en/activities/2026/lunchmeeting-may-2026.md

This file was deleted.

35 changes: 35 additions & 0 deletions src/en/activities/2026/lunchmeeting-with-ramon-fincken.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
title: "Fronteers Lunchmeeting with Ramon Fincken"
summary: Steps to becoming a truly sovereign European web host
date: 2026-05-22
eventdate: 2026-06-19
author: Edwin Martin
location: Online
categories:
- Lunchmeetings
locale: en
signupavailable: false
key: 2026-lunchmeeting-fincken
---

The lunchmeeting is an online meeting during lunchtime that you can attend from behind your desk (though from your couch or in the park works too).

This lunch meeting is presented by Ramon Fincken of Klarned.

In this session, we share general information about the AVG/GDPR and digital sovereignty/data portability.

We'll show the audience why websites are currently — and in the future — at high risk.

In addition, we'll share all of our insights and tell you everything about our stack and the choices we've made to be fully and truly sovereign within the European Union.

#### Session introduction

Learn what true digital sovereignty means for web hosting. Gain valuable insights, learn from do's & don'ts, and discover what to look out for when your website needs a perfect GDPR/AVG-friendly hosting provider.

#### Requirements

No specific prior knowledge is needed for this session. However, an active interest in digital sovereignty and technology will lead to a better understanding and more value from the session.

#### Learning objectives

By the end of this presentation, the audience will have a solid understanding of (data) sovereignty and data portability. Additionally, participants will know which steps they can take for their own stack or hosting provider.
18 changes: 0 additions & 18 deletions src/nl/activiteiten/2026/lunchmeeting-juli-2026.md

This file was deleted.

18 changes: 0 additions & 18 deletions src/nl/activiteiten/2026/lunchmeeting-mei-2026.md

This file was deleted.

35 changes: 35 additions & 0 deletions src/nl/activiteiten/2026/lunchmeeting-met-ramon-fincken.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
title: "Fronteers Lunchmeeting met Ramon Fincken"
summary: Stappen om een echt soevereine Europese webhost te worden
date: 2026-05-22
eventdate: 2026-06-19
author: Edwin Martin
location: Online
categories:
- Lunchmeetings
locale: nl
signupavailable: false
key: 2026-lunchmeeting-fincken
---

De lunchmeeting is een online meeting tijdens de lunch die je kan volgen van achter je bureau (maar vanaf je bank of in het park kan ook).

Deze lunchmeeting wordt gepresenteerd door Ramon Fincken van Klarned.

In deze sessie delen we algemene informatie over de AVG/GDPR en digitale soevereiniteit/data-portabiliteit.

We laten het publiek zien waarom websites momenteel — en in de toekomst — een hoog risico lopen.

Daarnaast delen we al onze inzichten en vertellen we alles over onze stack en de keuzes die we hebben gemaakt om volledig en écht soeverein te zijn binnen de Europese Unie.

#### Introductie van de sessie

Leer wat echte digitale soevereiniteit voor webhosting betekent. Krijg waardevolle inzichten, leer van do’s & don’ts en ontdek waar je op moet letten wanneer jouw website behoefte heeft aan een perfecte GDPR-/AVG-vriendelijke hostingprovider.

#### Vereisten

Voor deze sessie is geen specifieke voorkennis nodig. Wel zal een actieve interesse in digitale soevereiniteit en technologie zorgen voor een beter begrip en meer waarde uit de sessie.

#### Leerdoelen

Aan het einde van deze presentatie heeft het publiek een goed begrip van (data-)soevereiniteit en data-portabiliteit. Daarnaast weten deelnemers welke stappen zij kunnen nemen voor hun eigen stack of hostingprovider.