01
Complete portals from scratch
Concept, data model, frontend, editing tools. No half measures and no page-builder leftovers.
FREISBERG — PORTALS FROM SMÅLAND, SWEDEN
40 years of programming, 30 of them on international, multilingual portals. Built on a farm in a forest clearing, five kilometres to the nearest neighbour — and surprisingly good internet.
40
years programming
30
years multilingual portals
35
languages in the largest portal
1
person to talk to
SKOG
WHAT I DO
01
Concept, data model, frontend, editing tools. No half measures and no page-builder leftovers.
02
Languages that carry the structure from day one instead of being bolted on — including a workflow for whoever maintains it.
03
Clean structures that still make sense after ten years and a million records.
04
hreflang, sitemaps, proper URLs per language — so Google understands what people already do.
05
Logo, palette, a picture language of its own — and everything it becomes in print and at large format. Reduced, geometric, with room to breathe.
06
Servers, updates, backups, monitoring. You get a website, not homework.
SPECIALITY
Multilingual is where most projects get expensive — because it arrives last. I build for it from the first line.
From the start
Language lives in the data model, not in a plugin layered on afterwards.
Translating without fear
Content and translation run separately from the code. Nobody touches a file to change a word.
Fallbacks that make sense
A missing translation breaks nothing — the page falls back cleanly to the next sensible language.
Legible to Google too
Every language with its own URL, hreflang and sitemap. Otherwise only people who already know you will find you.
SPECIALITY
Behind every large portal is a body of data that grows for years: timetables, stops, places, translations. I build it so that it is still clean after the hundredth import — and still makes sense ten years on.
Many sources, one model
Timetables from national data portals, transport associations and operators, plus my own research where no open data exists. Everything ends up in one common model, with validity for each timetable period.
Check first, then apply
Every import runs as a dry run first and is applied only once it has been checked. Nothing maintained by hand is ever overwritten by an import.
One register, no duplicates
Stops are matched against a station register of my own, and duplicates are merged. Place names in original script and transliteration — 35 languages at rail.world.
Own servers, open formats
PostgreSQL, Python and TypeScript on my own servers in the EU. GTFS preferred, other formats by arrangement. Sources credited, licences respected, nothing resold.
A station as it sits in the register: names in original script and transliteration, where each value comes from, validity per timetable period. Whatever is maintained by hand is protected.
SPECIALITY
Code and appearance aren't two trades here. Someone who knows the data structure designs the surface differently — and someone who drew the mark fits it into the grid more cleanly.
Palette and type
A palette that holds on screen, in print and at large format. Written down as values, not as a feeling.
Logo and brand
From the mark to the letterhead to the business card. A system everything else follows from, not a single picture.
Beyond the screen
Stationery, print, signage, vehicle and large format. The same brand, at another size and on another material.
Interface and use
How something feels, not just how it looks. Short paths, and buttons where people look for them.
None of it is a mock-up: the same colour values run in the stylesheet, and the same typeface sets both the headline and the small print.
SELECTED WORK
6 OF 12 · CHANGING ON THEIR OWN
CLICK TO OPEN
A large route database of legs, changes and night trains — kept by travellers, not by a booking engine.
Timetables, compartment classes and fares for night trains worldwide. Independent, no paid placements.
Finds people whose route runs parallel to yours for a while. For solo travellers, without swiping.
Curated places to stay within a five minute walk of the platform. Measured footpaths, not straight lines.
Company site and umbrella for several rail travel platforms. In seven languages, illustrated, very tidy.
A carpenter's site in Småland, Swedish and German. Small, fast, brings in enquiries.
Modular wooden houses on a shared grid — sleep, connect, heat, feed. No plastic, no chemicals, no kennel.
Travellers take him along and send a photo. New countries are entered by his owner himself — map, counter and page follow along.
Pick a date and say what you feel like — cycling, hiking, castles, with dog and kids. Out comes a day plan with stops, times and routes for bike, car, train and bus.
Say where you are staying, when you set off and what you fancy — a swimming lake, a loppis, a canoe, fika, a farm shop. Out comes a day in a sensible order, with opening hours, a rainy-day plan and the shopping on the way home.
Clubs and activities for children in one place — and the way there: lift-sharing among parents who know each other, buses and bike groups. With a message when the child has arrived.
Brings travellers and locals together — for a coffee, a language exchange, an evening in an unfamiliar city. You create a stay, not a profile to swipe through.
ABOUT
I started when programs were still thought through on paper, because machine time was expensive. I kept the habit — it still saves the most money.
For thirty years I have built international portals: many languages, many records, many years of uptime. The company behind it is Railworld AB in Älmhult. The work usually happens somewhere else: on a remote farm, deep in the forest.
1984
First lines of code. Never stopped for longer than a few weeks since.
1996
First international portal. Multilingual becomes the through-line.
2023
Cyprus, until the end of 2025. Within a few years the island drew IT teams from Israel, Ukraine and half of Europe. What remains is a network that takes projects international quickly.
2026
Moved to Sweden. Shorter walk to the forest, longer drive to the shop.
Today
Railworld AB in Älmhult — own portals and client projects — concept to operations, all from one pair of hands.
Tell me in three sentences what you have in mind. I will answer honestly whether I am the right person for it — even when the answer is no.
hej@freisberg.comNO PHONE · USUALLY A REPLY WITHIN A DAY