Placepoint

How docs.placepoint.no works

Placepoint publishes 1,200+ pages of product documentation in Norwegian and English without manual writing. This is how the pipeline behind docs.placepoint.no works.

Published 28 August 2026

I started at Placepoint on 20 April, and one of the first things I wanted to build was living product documentation. Not a static ‘how to use Placepoint’ page that is out of date the day after new functionality is launched, but something that updates automatically in step with the product.

That is what we have built at docs.placepoint.no. 1,200+ pages in Norwegian and English. 7,000+ screenshots. Over 250 main map layers documented. 140+ datasets from 30 suppliers. A glossary with 300+ verified Norwegian property terms, with source references to Lovdata, Kartverket, Brønnøysundregistrene, NVE and SSB. A dedicated developer portal generated from the OpenAPI specifications.

No human has written a single sentence of this. The pipeline was built in two to three weeks.

It is still not finished. The Fusion documentation is rather rough around the edges, and we find things every day that could be better. But it works.

Why automate the documentation

Documentation is one of the hardest things to keep up to date in a software company. Every time the product changes, the documentation should follow, but in practice that rarely happens. Many companies of Placepoint's size would have a dedicated department for technical writing and translation. We have chosen a different path.

When you as a customer are wondering about something, whether a feature, a dataset limit or a term, the answer should be one click away. It should be updated the same day the functionality changes, and available both as a standalone website and as help inside the Placepoint web app.

How the pipeline works

The pipeline consists of three interconnected technical layers.

Navigation (TypeScript, Playwright, Chromium). TypeScript scripts drive headless Chromium, that is, without a visible browser window, through the entire Placepoint app via Playwright. The scripts import the web app's React routes and navigate as a customer would: logging in via Azure B2C, opening every panel, activating every map layer, typing in search fields and hovering the mouse pointer over icons. Thousands of clicks per run, spread across 1 to 20 browsers in parallel. An adaptive explorer discovers new menus, tabs and hover elements, and creates new documentation pages automatically. The sales team can use the example pages for municipalities and customers with specific organisation numbers. All of them are generated automatically.

Writing (Claude Code). The writing itself is done in Claude Code, mostly in a terminal window (iTerm2) and a little in Cursor. Sub-agents distribute the tasks among three models from Anthropic: a fast model for simple things, a mid-range one for anything a bit more advanced, and the most powerful one when it really matters. A hierarchical rule system governs it all: CLAUDE.md per component, STYLE.md for language styles, PROCESS.md for workflow and PLAN.md for how tasks are to be carried out. This ensures efficient use of agents and tokens without constant human steering. Git worktrees let several sessions work in the same repo in parallel. My global rules for Claude Code are openly available on GitHub.

Quality (Python, Pillow, OpenCV, pytesseract). All PNG screenshots are checked automatically. Python with Pillow, NumPy and SciPy catches blank map layers and half-loaded tiles. pytesseract recognises text in Norwegian and English error messages. OpenCV detects tooltips, loaders and error icons. imagehash flags images that suddenly look like a different page in the app. Anything flagged ends up in a purpose-built web app for human classification, and every label there becomes a fix in the navigation scripts.

The documentation amounts to around 300,000 words of Norwegian Markdown. Docusaurus builds static pages. The glossary is also synchronised to Sanity, the CMS behind placepoint.no, so the terms are available on both websites. The diagram at the top shows Webflow, our previous CMS.

Norwegian in an AI world

A little-known problem with Norwegian LLM solutions is that Norwegian is an inflected language with dialects and specialist terminology that are not handled well by default. We have built around 2,500 AI-generated synonym entries covering inflections and regional variants, refreshed against the entire documentation on every build.

The result is that a user searching for ‘kartlag for vegetasjon’ finds the right page even if the source text says ‘naturtype’. A fast model expands and rephrases the query, Algolia searches the index, and a stronger model re-ranks the results.

The user documentation is written in Norwegian plain language for the property industry. The developer documentation is in precise, technical English generated from the OpenAPI specifications. Same pipeline, two voices for two audiences.

The pipeline learns from customers

Three Slack emojis make the Slack bot PlacepointBot do things. The robot reaction has it reply in the thread with the most relevant documentation link, powered by an Azure Function. The light bulb reaction turns a documentation gap into an issue and a pull request on GitHub. Trivial corrections will soon go straight through, while larger changes wait for human approval. A Linear reaction creates or groups a task in Linear.

Every customer enquiry makes the product better. It is no longer a question of how we prioritise features versus bugs. It is a pipeline that works as a self-reinforcing learning system.

Built on the tram

A detail that says something about how we work now: the first version of the quality-check system was built on a phone.

One morning in May I was sitting on the tram in Oslo with a problem. The quality check that was supposed to pick up bad screenshots still had a gap, and some images with blank map layers, half-loaded panels and tooltips appearing at the wrong moment were slipping through. I opened the Claude app on my iPhone, remotely controlled the Claude Code session running on the Mac at the office, and built the first working version of the web app for manual classification on the tram.

A quiz that started as an internal joke

We have also created a quiz based on the documentation, the glossary and customer enquiries from the past 24 months. It started as an internal joke. Now we use it, among other things, to train an AI assistant for the Customer Success team, and to find gaps in the documentation that we would not otherwise have discovered. The quiz is open to everyone: docs.placepoint.no/quiz.

What this means in practice

Always up-to-date documentation. Search that actually understands Norwegian. A complete overview of map layers, datasets, suppliers and terms, documented with source references to Brønnøysundregistrene, Kartverket, Matrikkelen, NVE, SSB and other primary sources.

The documentation customers read today is also the training data for the AI assistant under development. In time, it will help customers do the actual work in Placepoint. The product documents itself, while also building its own foundation for becoming smarter.

See the documentation at docs.placepoint.no. Missing something, or found something that is wrong? Just let us know.

See it on a property you know.Everything the article describes is already looked up in Placepoint, with the source and date for each field.