Skip to content
Open
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
8 changes: 7 additions & 1 deletion .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Deploy to GitHub Pages

on:
push:
branches: [ '2026' ]
branches: ['2026']

permissions:
contents: write
Expand All @@ -29,6 +29,12 @@ jobs:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

- run: pnpm install --frozen-lockfile

- name: Fetch meetups data
run: node scripts/fetch-meetups.js
env:
MEETUPS_API_URL: ${{ secrets.MEETUPS_API_URL }}

- run: pnpm build

- uses: peaceiris/actions-gh-pages@v4
Expand Down
85 changes: 85 additions & 0 deletions public/meetups.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
{
"1": {
"id": 64570,
"date_add": 1768395416,
"date": "5.02.2026",
"time": "17:30",
"name": "meet.js Gdansk TypeScript Meetup #18",
"type": "Spotkanie",
"url": "https://crossweb.pl/wydarzenia/meetjs-gdansk-typescript-meetup-18/",
"rsvp": "https://www.meetup.com/gdansk-typescript/events/312877678/?eventOrigin=group_upcoming_events",
"city": "Trójmiasto",
"address": "aleja Grunwaldzka 411",
"image": "https://crossweb.pl/upload/gallery/event/64570/840x320/-1768997061.png",
"serie": "meet.js",
"topic": [
"JavaScript",
"Open Source",
"TypeScript"
]
},
"2": {
"id": 64387,
"date_add": 1766409023,
"date": "12.02.2026",
"time": "18:00",
"name": "meet.js Wrocław 2026-02-12 (15th anniversary!)",
"type": "Spotkanie",
"url": "https://crossweb.pl/wydarzenia/meet-js-wroclaw-2026-02-12-15th-anniversary/",
"rsvp": "https://www.meetup.com/meet-js-wroclaw/events/312499657/",
"city": "Wrocław",
"address": "Włodkowica 5",
"image": "https://crossweb.pl/upload/gallery/event/64387/840x320/meet-js-wroclaw-2026-02-12-15th-anniversary-1766409024.avif",
"serie": "meet.js",
"topic": [
"JavaScript",
"Open Source",
"TypeScript",
"programowanie",
"design"
]
},
"3": {
"id": 72477,
"date_add": 1769515758,
"date": "19.02.2026",
"time": "17:30",
"name": "meet.js Lublin #15",
"type": "Spotkanie",
"url": "https://crossweb.pl/wydarzenia/meetjs-lublin-15/",
"rsvp": "https://luma.com/564kxhiw",
"city": "Lublin",
"address": "Prezydenta Gabriela Narutowicza 55B",
"serie": "meet.js",
"topic": [
"JavaScript",
"Open Source",
"TypeScript",
"programowanie",
"design"
]
},
"4": {
"id": 64736,
"date_add": 1769074026,
"date": "4.03.2026",
"time": "09:00",
"name": "meet.js Summit 2026",
"type": "Konferencja",
"url": "https://crossweb.pl/wydarzenia/meetjs-summit-2026/",
"rsvp": "https://summit.meetjs.pl/2026/",
"city": "Warszawa",
"address": "Aleja Niepodległości 162",
"image": "https://crossweb.pl/upload/gallery/event/64736/840x320/-1769074507.png",
"serie": "meet.js",
"topic": [
"JavaScript",
"Open Source",
"TypeScript",
"programowanie",
"design",
"AI/ML",
"Call For Papers"
]
}
}
37 changes: 37 additions & 0 deletions scripts/fetch-meetups.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import { writeFileSync } from 'fs';
import { dirname, join } from 'path';
import { fileURLToPath } from 'url';

const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

const MEETUPS_API_URL = process.env.MEETUPS_API_URL;

if (!MEETUPS_API_URL) {
console.error('Error: MEETUPS_API_URL environment variable is not set');
process.exit(1);
}

async function fetchMeetups() {
try {
console.log('Fetching meetups data...');
const response = await fetch(MEETUPS_API_URL);

if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}

const data = await response.json();

const outputPath = join(__dirname, '../public/meetups.json');
writeFileSync(outputPath, JSON.stringify(data, null, 2));

console.log(`✓ Meetups data saved to ${outputPath}`);
console.log(`✓ Found ${Object.keys(data).length} events`);
} catch (error) {
console.error('Error fetching meetups:', error);
process.exit(1);
}
}

fetchMeetups();
2 changes: 2 additions & 0 deletions src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { BecomeASponsor } from '@/components/become-a-sponsor.tsx';
import { Charity } from '@/components/charity.tsx';
import { LoveLetter } from '@/components/love-letter.tsx';
import { MonthlyMeetups } from '@/components/monthly-meetups.tsx';
import { Partners } from '@/components/partners.tsx';
import { PhotosSlider } from '@/components/photos-slider.tsx';
import { Speakers } from '@/components/speakers.tsx';
Expand Down Expand Up @@ -28,6 +29,7 @@ export const App = () => {
<Venue />
<PhotosSlider />
<VideoPlaylists />
<MonthlyMeetups />
<Charity />
{/*<CFP />*/}
<BecomeASponsor />
Expand Down
Loading