Swiss {ai} Weeks · Hackathon Liebefeld · 2025

Farmly
Farm logistics with an agentic assistant on Apertus, the open Swiss language model — orders taken in a chat, routes planned the moment a shipment exists, and the delivery tracked live across Bern.
A delivery is easy to promise and hard to keep track of.
Between an order arriving and the van pulling up there is a chain of small handovers — someone takes the request, someone turns it into a stop on a route, someone tells the customer when it will land. Every handover is a place where the answer to «where is my delivery?» goes stale. Farmly collapses that chain into one conversation: the order is taken by an agent that asks for what it needs, the route is planned the moment the shipment exists, and one record drives both the driver's map and the customer's status.

Built at
Swiss {ai} Weeks
The Swiss {ai} Weeks are the largest open AI movement in Switzerland — over 150 events, hackathons and workshops across more than ten cities. Farmly was built at one of those hackathons, in Liebefeld.
swiss-ai-weeks.chBrand: Swiss {ai} Weeks · image via ggba.swiss
Our Solution
The whole thing is one app. Scroll, and it gets used.
It starts on the home screen
The widget carries the next delivery without the app being open: twenty-five minutes out, seventy per cent of the way there. Tap it, or just keep scrolling.
Tech stack & data flow
Everything runs through our own Flask server: the chat message arrives as JSON, Apertus decides what to do with it, OpenRouteService plans the drive, and Firestore holds the one record the app reads back.
App · Flutter
Our server
External
Chat UI
Flutter · agentic chat
main_api.py
Flask · JSON endpoints
apertus_agent.py
builds the AI prompts
Apertus
agent & route planner (LLM)
route_calculation.py
sets smart waypoints

routing engine
Firebase
Firestore · shipments & routes
Flutter app
shipment list & map
The request
The driver asks in the Flutter chat. The message travels as JSON through Flask into our own server, where every function comes together.
The decision
apertus_agent.py builds the prompt and Apertus picks the action. For a delivery, route_calculation.py sets the waypoints through OpenRouteService.
The record
Shipments and routes are written to Firestore as documents — one record behind the driver’s map and the customer’s status alike.