diff --git a/.github/workflows/format-members-list.yml b/.github/workflows/format-members-list.yml index 9f02ba7b..5e7eb6f9 100644 --- a/.github/workflows/format-members-list.yml +++ b/.github/workflows/format-members-list.yml @@ -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 diff --git a/.puppeteerrc.cjs b/.puppeteerrc.cjs new file mode 100644 index 00000000..48abff38 --- /dev/null +++ b/.puppeteerrc.cjs @@ -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"), +}; diff --git a/netlify.toml b/netlify.toml index 42834232..824efa38 100644 --- a/netlify.toml +++ b/netlify.toml @@ -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" diff --git a/src/en/activities/2026/lunchmeeting-july-2026.md b/src/en/activities/2026/lunchmeeting-july-2026.md deleted file mode 100644 index c601bc80..00000000 --- a/src/en/activities/2026/lunchmeeting-july-2026.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: 'Fronteers Lunchmeeting - Late July 2026' -summary: Details to follow -date: 2025-12-13 -eventdate: 2026-07-28 -eventdateTentative: true -location: Online -categories: - - Lunchmeetings -locale: en -signupavailable: false ---- - -We're organizing a Fronteers lunchmeeting in late July 2026. The lunchmeeting is an online meeting during lunch that you can follow from behind your desk (but also from your couch or in the park). - -We're currently looking for a **speaker** to show (and tell), or just speak on a certain subject, during lunch. - -If you can help, please [get in touch](mailto:bestuur@fronteers.nl?subject=Fronteers%20Lunchmeeting%20-%20Late%20July%202026)! diff --git a/src/en/activities/2026/lunchmeeting-may-2026.md b/src/en/activities/2026/lunchmeeting-may-2026.md deleted file mode 100644 index b76023ba..00000000 --- a/src/en/activities/2026/lunchmeeting-may-2026.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: 'Fronteers Lunchmeeting - Mid May 2026' -summary: Details to follow -date: 2025-12-13 -eventdate: 2026-05-17 -eventdateTentative: true -location: Online -categories: - - Lunchmeetings -locale: en -signupavailable: false ---- - -We're organizing a Fronteers lunchmeeting in mid May 2026. The lunchmeeting is an online meeting during lunch that you can follow from behind your desk (but also from your couch or in the park). - -We're currently looking for a **speaker** to show (and tell), or just speak on a certain subject, during lunch. - -If you can help, please [get in touch](mailto:bestuur@fronteers.nl?subject=Fronteers%20Lunchmeeting%20-%20Mid%20May%202026)! diff --git a/src/en/activities/2026/lunchmeeting-with-ramon-fincken.md b/src/en/activities/2026/lunchmeeting-with-ramon-fincken.md new file mode 100644 index 00000000..8472b8be --- /dev/null +++ b/src/en/activities/2026/lunchmeeting-with-ramon-fincken.md @@ -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. diff --git a/src/nl/activiteiten/2026/lunchmeeting-juli-2026.md b/src/nl/activiteiten/2026/lunchmeeting-juli-2026.md deleted file mode 100644 index 8d293837..00000000 --- a/src/nl/activiteiten/2026/lunchmeeting-juli-2026.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: 'Fronteers Lunchmeeting - Eind juli 2026' -summary: Details volgen -date: 2025-12-13 -eventdate: 2026-07-28 -eventdateTentative: true -location: Online -categories: - - Lunchmeetings -locale: nl -signupavailable: false ---- - -We organiseren een Fronteers lunchmeeting eind juli 2026. 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). - -We zijn op zoek naar een **spreker** om te laten zien (en vertellen), of gewoon te spreken over een bepaald onderwerp, tijdens de lunch. - -Lijkt het je leuk iets te laten zien? [Neem dan contact met ons op](mailto:bestuur@fronteers.nl?subject=Fronteers%20Lunchmeeting%20-%20Eind%20juli%202026)! diff --git a/src/nl/activiteiten/2026/lunchmeeting-mei-2026.md b/src/nl/activiteiten/2026/lunchmeeting-mei-2026.md deleted file mode 100644 index 9efc6358..00000000 --- a/src/nl/activiteiten/2026/lunchmeeting-mei-2026.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: 'Fronteers Lunchmeeting - Half mei 2026' -summary: Details volgen -date: 2025-12-13 -eventdate: 2026-05-17 -eventdateTentative: true -location: Online -categories: - - Lunchmeetings -locale: nl -signupavailable: false ---- - -We organiseren een Fronteers lunchmeeting half mei 2026. 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). - -We zijn op zoek naar een **spreker** om te laten zien (en vertellen), of gewoon te spreken over een bepaald onderwerp, tijdens de lunch. - -Lijkt het je leuk iets te laten zien? [Neem dan contact met ons op](mailto:bestuur@fronteers.nl?subject=Fronteers%20Lunchmeeting%20-%20Half%20mei%202026)! diff --git a/src/nl/activiteiten/2026/lunchmeeting-met-ramon-fincken.md b/src/nl/activiteiten/2026/lunchmeeting-met-ramon-fincken.md new file mode 100644 index 00000000..b7ab9e3e --- /dev/null +++ b/src/nl/activiteiten/2026/lunchmeeting-met-ramon-fincken.md @@ -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.