Your apps
Ian Mulheims
A student from Luxembourg who builds apps, school tools and small web projects — in the browser, on iPhone and on Apple Watch.
What ian.lu is
ian.lu is where I put the things I build. I'm a secondary-school student in Luxembourg, and almost everything here started as a question — can I make a lap timer for karting, can I put every marked walking trail in the country on one map, can I write a chat app that feels instant. The answers ended up being used by my friends, my class and my family, so they live here rather than in a folder on my laptop.
What you can use without an account
Most of the site is open. You can play all of the PixelBreak arcade games in the browser with nothing installed, look up live bus and train departures anywhere in Luxembourg, check the weather, follow aircraft overhead in SkyLens, and browse every hiking and mountain-bike route in the country. Only the things that are personal to you — messages, friends, grades, your timetable — need a free account, and those are marked with a lock.
Walking and cycling in Luxembourg
The part I've put the most work into is the trail directory. Luxembourg has around 105 signposted circular walks called Auto-Pédestres, plus a network of marked mountain-bike loops, and the information about them is scattered and often hard to use. Every route here has its length, walking or riding time, elevation gain and profile, a real map of the actual path, and — because public transport in Luxembourg is free — the nearest bus stops and which lines serve them. You can also see all of them at once on the trail map, or open the geoportal, which puts the routes on top of the country's official topographic maps, aerial photography going back to 1967, and the LiDAR terrain model.
How it's built
Everything is written by hand — plain JavaScript in the browser, Supabase for accounts, real-time chat and storage, and Python for the pipelines that generate the trail pages from OpenStreetMap data. There is no site builder and no template behind it. If something here is broken or wrong, it's mine to fix, and you can tell me about it.