Looking back, dated two days after the last commit.
Five people, one trip to Sicily and a planning tool in twelve days
Instead of a spreadsheet and three group chats I built our travel group a small planning site with votes, a budget and a day plan.
Written
Event
March 30 to April 10, 2026, trip in June 2026
Reading time
2 min read
Topics
web
javascript
cloudflare
travel
Five people want to go to Sicily in June. Usually that means a spreadsheet, a few group chats, links that get lost somewhere, and nobody knows what has already been decided. This time I opened an editor on March 30.
Twelve days and 51 commits later there was a site that holds the whole plan. Built on my own, live on GitHub Pages. Accommodation, flights, the car, activities, a packing list, the budget, votes, an idea wall, a day plan and tasks for who does what.
Technically it’s plain on purpose. Static HTML and JavaScript, no database, no framework. One thing was still needed: the data has to sync when two people add something at the same time. That’s what the Cloudflare Worker behind it is for. It handles sign-in with GitHub, writes the data back into the repository through the GitHub API and has a small scraper. When someone pastes a link to an offer, the worker reads the page in. Nobody has to retype what’s already written there.
The demo on this page shows three parts with sample data and no real names. In the votes, everyone picks an option and the result is there right away. The budget adds up what’s planned. And the day plan fixes what happens on which day. Those are the three places where groups usually get stuck in the chat.
Wer bist du?DUDu · +2 Favorit · +1 Gut · 0 Egal · -1 Nein. Nochmal klicken nimmt die Stimme zurück.
1
Casa Limone945 €
LEJOMIDU
2
Appartamento Kalsa1020 €
LEJOTO
3
Villa Zagara1180 €
JOMITODU
4
Baia Blu Apartments760 €
LEMITO
5
Casa del Pescatore690 €
JOTODU
6
Dimora Normanna1290 €
LEMITO
Gruppenranking
Villa Zagara
+6 Pkt. (4)
JOMITODU
Casa Limone
+5 Pkt. (4)
LEJOMIDU
Dimora Normanna
+1 Pkt. (3)
LEMITO
Appartamento Kalsa
+1 Pkt. (3)
LEJOTO
Baia Blu Apartments
+1 Pkt. (3)
LEMITO
Casa del Pescatore
-2 Pkt. (3)
JOTODU
Schnellvergleich
#
Name
Ort
SZ
Strand
Palermo
Storno
1
Casa Limone
Mondello
945 €
27,00 €
9.2 (48)
3
300 m
12 km
Kostenlos bis 01.06.
2
Appartamento Kalsa
Palermo Altstadt
1020 €
29,14 €
4.8/5 (31)
2
~12 km
zentral
Kostenlos bis 25.05.
3
Villa Zagara
Capaci
1180 €
33,71 €
9.5 (64)
3
1,2 km
20 km
Kostenlos bis 05.06.
4
Baia Blu Apartments
Isola delle Femmine
760 €
21,71 €
8.4 (112)
2
150 m
17 km
Nein
5
Casa del Pescatore
Terrasini
690 €TOP
19,71 €
8.1 (27)
3
600 m
33 km
Nein
6
Dimora Normanna
Cefalù
1290 €
36,86 €
4.97/5 (19)
3
200 m
~70 km
Kostenlos bis 30.05.
Im Detail
6 Optionen
3
Villa Zagara
Villa mit Pool · Capaci · Booking.com
1180 €33,71 €/P./N.
9.564 Bew.3 SZ3 Bad140 m²Kostenlos stornierbar
Palermo: 20 km Strand: 1,2 km Flughafen: ~15 Min.
PoolGartenGrillMeerblickParkplatz
7 Vorteile× 2 NachteileGruppe: +6 Pkt.
Demo with sample data
The planner in the look of its best page, the accommodation overview: voting, ranking, comparison and details, plus flights, car, activities, day plan, polls, packing list and budget. It is all connected: the vote sets the accommodation line in the budget. Stays, people and prices are invented; the map is a sketch.
What I noticed along the way: design matters. As soon as four other people use a site and not just me, it has to look like it works. So there’s a DESIGN.md with colours as CSS variables, a few fixed components and accessibility rules. Every new page uses those instead of reinventing what a button looks like.
Second lesson: for a problem this size, a static front end with a single worker is enough. No database, no server to look after.
In parallel the bigger idea behind it has been growing. I’m sketching a scaffold called TripForge, a planning tool for any group trip, with Next.js, Expo and Supabase. That’s still architecture, not a product. Sicily is what runs today.
Tools and skills: vanilla JavaScript, HTML and CSS, GitHub Pages, Cloudflare Workers, GitHub OAuth and the Contents API, a bit of web scraping and a small design system. Plus the question of what five people actually need to agree on something.