🐌
karatrip
× Portugal 2026
karatrip began as one family's app for one trip: eleven days in Portugal,
9–19 August 2026. This is the story as it was written then, in the middle of the
trip. The product at karatrip.app came afterwards.
A travel app that did not exist when the trip started. The whole thing was written
inside it — in airports, in cafés, in the car, and mostly after everyone else had
gone to sleep.
The moment
First morning in Lisbon, in a Starbucks. The family had the trip dossier —
dozens of pages nobody had found time to read before leaving. So they had the book,
and no idea what to actually do that day.
What if the book never needed reading? What if it became an app — one that
knows where we're standing, what time it is, what the plan says, and when you ask it
"so, what now?", it answers?
Right there, over a coffee, karatrip was born.
The first commit was written that same afternoon. The second app — the kids'
camera — started the same night.
Credits
Direction & code🧔 Antonis
Production & patience👩 Glykeria
Starring🦁 Achilleas · 🐙 Orestis
Guide🐌 Karaolos
The trip in numbers
11days
82points of interest
35pastéis de nata
69journal notes
138questions to the 🐌
17tins of fish
What it became
The trip's live companion. A Now screen with the map, the weather, tonight's sunset time — on a trip with
twins, sunset is a deadline — and the day's next step; a Plan where stops are marked done or skipped — never deleted,
because "we didn't go after all" is part of the story too; a journal with one question
each evening; and a pastéis de nata counter, which proved the hardest-worked button of
the holiday.
For the kids: Experiences — pocket audio-guides in Greek for each place,
signage translated, because a museum captioned in Portuguese is mute to an
eight-year-old; scavenger hunts that award points; missions; and a scoreboard with a
full audit trail — who gave points, when, why, with undo.
And the nuances that don't show: family messaging with a parental switch enforced
on the server, not the screen; coordinates that never lie — an unverified pin admits it
on its face; the day rolling over at 06:00 rather than midnight, because midnight on a
trip is still evening; a kid mode with a phone hand-over ritual; a keepsake album with
guest links for the grandparents; and updates with no App Store — every fix reached the
family's phones in seconds, sometimes while they were still walking to the next place.
And because a family app without secrets is hardly a family app, five or six easter
eggs sleep inside it — hidden here and there, for no purpose beyond the fun
of it, and nobody is saying where. The boys will find them.
The code in numbers
340commits
30,305lines added
31,924lines today
104endpoints
And a second app
Alongside it came kidtrip, in Swift — a real iPhone app, not a web
page. It began with a simple thought: the old work iPhone 13, instead of sitting in a
drawer, would become the kids' camera — so they could shoot the trip themselves,
not merely appear in it.
Two kids, one phone — so the first problem was fairness: timed turns with
a countdown, a hand-over ritual from one to the other, and a separate album per kid so no
photo ever needs renegotiating. Every capture is stamped with time, GPS — and the photographer: the
kid's name is written into the EXIF, so in twenty years, in whatever album the photo has
ended up, it will still say which of the two took it.
Then it grew: an end-of-day vlog studio with interview prompts, missions
tied into karatrip's experiences — including a «🤝 Together» option, because the
castle happens once and the phone is in one pair of hands: a mission can be claimed
cooperatively and count for both — fact cards for each place, and a parent dashboard
that fills in near-live over the phone's eSIM. Everything works offline too; the photos live in
the phone's own library — nothing of value is ever trapped inside an app.
115commits
70Swift files
16,303lines of Swift
79at night
What had to exist first
None of this happens on one machine. Several projects were being written at the
same time, from different sessions on different machines — and each had to see the
others' work without overwriting it. And a great deal of it was done from a phone, on
the move — in queues, on trains, on beaches: this was a holiday, and the day could
not be spent in front of a laptop. The laptop came out at night; the rest of the time,
the sessions were driven from a phone.
That idea also arrived in a Starbucks — but in Nicosia, on the Friday morning
two days before the flight. And it had nothing to do with the trip: the ask was to
carry the same Claude Code session from one laptop to the other — Windows
and Mac — in case the smart-lock-and-cameras bot needed work while away: the one
that runs AI over the home cameras to recognise Aris 🐕 and Periklis 🐈 and
report their whereabouts, so the family could look in on them from Portugal. A travel app
was not even a thought yet. Two long days of code followed: the first commit landed
at 00:44, by which point Friday had already become Saturday — and the
last at 05:16 on Sunday morning, hours before the flight.
The third machine did not even wait for the trip: in that same night — Saturday
into Sunday morning — the home NAS joined the fleet, so a session could live there permanently: driven from Portugal, running on a
machine in Cyprus. Alongside it, a tool built from the ground up for syncing, encrypted secrets,
and handing work from one machine to another. For the record: the AI building it kept
insisting, repeatedly, that the NAS and full sync were "a job for after the trip."
All of this happened, in other words, Against all Claudes — and
luckily so, or nothing below would have existed in time.
154commits
9,489lines
20scripts
3machines
When, two mornings later and in a different Starbucks, karatrip was born,
16 commits of plumbing were already waiting — built for another reason entirely, ready
by happy coincidence. Two Starbucks, both before breakfast: the first had no idea what
the second would start.
And everything else running alongside
karatrip was not the only one. Over the same stretch — from the Friday
before the flight to today — 10 projects were live at once, off the same nights
and the same sync plumbing. Some existed already; what is counted here is only
the work done inside these days.
10projects
917commits in total
115,387lines added
284at night
Across every project, 284 of the 917 commits
(31%) were written between midnight and six in the morning, over
13 separate nights. The latest landed at 05:16 — in Nicosia, before the flight.
One bar per hour, local time — Nicosia before the flight, Portugal after. The red ones are while the rest of the family slept.
commits
karatrip — the trip app
340
devsync — machine & secret syncing
154
donna
145
kidtrip — the kids' camera (Swift)
115
the NAS session fleet — including a Telegram bot to drive it from a phone
53
Telegram bot that sends films to the TV
33
a random Friends episode in one tap — auto-playing on the living-room Kodi, or opening in Netflix
27
Telegram bot for the front-door lock and cameras
27
launchpad
17
shortcut-maker
6
The entry
karatrip
/ˌka.ra.ˈtrip/ · noun
1. a family journey lived at full intensity, in which the itinerary is an
opening position rather than an instruction, and the parts everyone remembers are
the ones nobody booked.
To the untrained eye, a holiday like any other. To anyone who has travelled
with children, anything but. It signifies:
- The itinerary rewritten from a restaurant table, twice before lunch.
- The solar eclipse with glasses sold out everywhere — a hole in a piece of paper, then a stranger handing over his own.
- The castle cancelled because the sea won the vote.
- The dinner found on the fourth attempt, at 22:25.
- The boys' first-ever midnight summer live-music beach party, on the sands of Nazaré.
- The last-minute change of plan that resulted in witnessing a truly magical sunset over the Atlantic.
- The national cycling tour that finished, uninvited, at their front door.
- The pair of gloves a rider handed to the twins mid-race, from the saddle — 25 metres and a few seconds before finishing a 12-day, 1,430 km bicycle race across the whole of Portugal.
In essence, not a holiday: a holiday that refuses to stay inside its plan.
Etymology
From καρα- (kara-), the Cypriot intensifier — as in καρακουκλάρα
(karakouklára) or καραγέλιο (karayélio): thoroughly, enormously,
more than the word can hold — plus trip.
Example
"We did not take a holiday this August. We took a karatrip."
Note
It also sounds suspiciously like the surname Καραολής (Karaolis) —
which any Cypriot will tell you comes from καράολος (karáolos), Cypriot for
snail, itself borrowed from the Venetian caragol: a word that took a boat to
Cyprus and never went home. A creature that carries its entire house on its back and
still arrives everywhere it means to.
Which is, more or less, the job description for travelling with twins. 🐌
Inclusion in the Oxford English Dictionary: pending. They have not replied yet —
but then, it has only been a week.
The guide
Which is why the app's guide could only ever be a snail: Karaolos, christened
with the Cypriot word itself. He answers in Greek, knows where you are and what the plan
says, rewrites the day when the day demands it, and is never in a hurry — a useful trait
on a trip whose plan changes before lunch.
Under the shell, Karaolos is an LLM — speaking through OpenRouter to one
of the large models, fully briefed: the trip dossier, the day's plan, the GPS position,
the weather, even the photos you send him. And he does not merely answer — he acts,
through eighteen tools: adding stops, marking what happened, logging expenses, resolving
coordinates through Google, sending family messages. When the kids talk to him he shifts
register; and anything a child may not do is refused on the server, not hidden on the
screen.
And the joke closes itself: Karaolos carries his house on his back, and the
family carries Karaolos in a pocket. The app's end credits say «the snail arrived last, but it arrived» —
which is also the shortest accurate description of how all of this was written.
One edition per trip, like a collector's collaboration: this one is
karatrip × Portugal 2026. Next year, somewhere else.
What remains
The suitcases will empty and the tins will, sooner or later, be eaten —
but a karatrip does not end with the flight. The keepsake album remains, with its own
link for the grandmother. The journal remains: 69 notes written while things were
happening, not as someone remembered them afterwards. The boys' photographs remain, their
names written inside the files, ready to testify in twenty years to who shot what. The
end-of-trip questionnaire remains — one round at the airport, one at home — every answer
sealed until everyone has answered. And the word remains. Next year, in another country,
karatrip will already mean something: the promise that the plan will lose to the sea
again — and that nobody will mind.
And the truth
Behind the commits and the counts, the plain truth: this was one of the best
holidays ever. Eleven days of being fully there — not beside the family but inside
the trip, living all of it.
All of it: the tantrums, the ice-cream negotiations, and the rapid-fire
«papá— papá— papá— papá», a million times a day. That was part of it too.
That will be missed too.
And beside all of it, Glykeria — who kept the trip standing while the
other parent held a phone full of commits; who said yes to every "what if we went…";
and whose "Production & patience" in the credits is not a joke but an accurate job
description. Without her there is no karatrip — not the trip, and not the word.
The app was written in the hours everyone slept, precisely so it would not
take one minute from the hours they were awake. Worth it. Every minute.
What happened next
The trip ended on 19 August. The app did not. What had been one Worker for one
family and one country became karatrip.app: many trips, each at its own
address, with its own people and its own Karaolos — and the Portugal edition stayed
exactly as it was, frozen, as issue number one.
There is no sign-up; there are invitations. If you want one for a trip of your
own, try the demos first — or
ask for it on the front page.
The trip's numbers are final — the trip ended on 19 August 2026. The code's
numbers come from the repositories themselves and refresh on each deploy. None of
them were typed by hand.
made with ❤️ by Antonis, for Glykeria, Achilleas and Orestis.
03/09/2026 07:19:31 (UTC+3) · 2,211 words