The new isor.is: a public institution moves off WordPress
isor.is went live on 4 September 2026: 396 pre-rendered pages in Icelandic and English, a CMS the staff run themselves and the map viewer hosted inside the site. How Vefapp's largest project so far went.

The new website of Iceland GeoSurvey, ÍSOR, went live on isor.is on Friday 4 September 2026. ÍSOR is an independent state research institute for geothermal energy, geology, groundwater and the seabed, and it advises energy companies in Iceland and abroad. It is Vefapp's largest project to date and the first public institution in the portfolio.
The site is 396 pre-rendered pages in Icelandic and English. ÍSOR staff write news, projects, service descriptions and the staff directory themselves in the site's . The institute's map viewer is hosted inside the site. We moved 92 articles off the old site and mapped 166 old URLs so they still land where they should. This is how the project went and what turned out hardest.
What was wrong with the old site
The old isor.is ran on with a stack of plugins. A plugin is a small program from an outside author that bolts search, forms or galleries onto a site. Each one needs its own updates, and plugins are one of the most common ways criminals get into the systems of companies and institutions.
The English edition was a separate site on en.isor.is with fewer pages than the Icelandic one. The URLs followed no rule. The organisation chart was an image that had to be redrawn every time the staff changed. Staff could change little themselves.
The requirements were clear. An institute that publishes research in two languages needs a site where staff write news and articles themselves. A public-sector site has to meet accessibility and privacy requirements. And old links in reports and papers have to keep working after the move.
Two languages in one system
Icelandic and English live side by side in one system. An editor writes both editions in the same form, and every page has its pair, so Google knows that /en/frettir is the English edition of /frettir and not a duplicate. Visitors outside Iceland get English on their first visit, while search engines see Icelandic as the primary edition.
A translate button in the editor saves most of the work. It sends the Icelandic text to Opus 5, which writes an English draft into the same fields. An editor reads it and saves. Nothing goes live on its own.

A that needs no developer
The covers news, projects, services, staff and job openings. An editor also sets up home-page slides with a photo or a video, and an announcement bar that switches itself on and off at a set time. The media library keeps photos and galleries for reuse. Drafts can be previewed on the site itself before they go live. When an editor saves, the change shows immediately. No deploy follows.
The editor stores body text as plain text rather than , so nothing foreign reaches the page, whatever gets pasted in.
News can be shared to Facebook, Instagram and LinkedIn straight from the editor, ticked per article. Instagram gets its own 4:5 card with the article's photo, rendered on the server. Every attempt is logged before it goes out, so a retry never duplicates a post.
The newsletter uses double opt-in. Enquiries from the site land in an inbox in the , with a copy to ÍSOR's mailbox and a receipt to the sender. Signing in requires a code, and the database itself tells administrators and editors apart.
The map viewer moved into the site
The ÍSOR map viewer, Kortasjá, is an interactive map of Iceland's geology, geothermal areas, groundwater, geophysics and seabed. Its layers run into the dozens, with separate land and ocean modes. ÍSOR's GIS team builds it themselves on Esri's .
It used to fetch hundreds of small files from servers abroad every time someone opened it. We take the code as it comes from the GIS team and have bundle it into one 378 KB file hosted on isor.is. The site loads no code from Esri, and the viewer opens faster. The map data itself still comes from ÍSOR's map servers.
The site's look and language choice follow into the viewer, dark mode included. It gets its own rules, wider than the rest of the site. A watcher fetches a map tile every hour and reports when the map servers stop answering.


92 articles and 166 URLs
We imported the content with scripts: 92 articles, 14 services, 12 research projects and 52 staff. Three articles ÍSOR published on the old site while the build was under way were copied over two days before launch, photos and captions included.
Old URLs are the part of a migration that is forgotten most often. We crawled both isor.is and en.isor.is, found 166 URLs and mapped each of them to the right page on the new site. 84 fixed rules are built into the site, and old article paths are looked up in the database. Whatever the crawl missed shows up in the 404 monitor in the admin, where an editor adds a redirect with one click.
We rehearsed the domain switch in advance. A script replays around 200 against the site, first on a staging domain and then on isor.is after the move. The domain moved at 10:00 on 4 September and the old URLs worked from the first minute.
Security and operations
A public-sector site needs more than a good look. This is built in:
- A code on every sign-in, checked again in every server action.
- Row-level access rules () on every table in : the public reads published content only, and drafts are never visible.
- Sign-ins expire after 24 hours and after ten idle minutes.
- A enforced site-wide, with a wider variant for the map viewer alone.
- Form rate limiting in the database, with IP addresses stored only as salted hashes.
- Personal data deleted automatically on the privacy policy's schedule: enquiries after 24 months, unsubscribes after six.
- An hourly watcher checks the map servers, the statistics service, the mail domain and the social-media tokens. One alert when something breaks, a daily reminder while it lasts and one when it recovers.
- Analytics without cookies or IP addresses, aggregated in .
- The build fails if public pages stop being pre-rendered. On every merge, CI runs a typecheck, ESLint, 23 test files and a full build.
Speed and accessibility
All 396 pages are pre-rendered at build time and served from a CDN. Every page is ready before a visitor asks for it. Images are WebP at the right size for each device, and the fonts are hosted on the site itself. The site scores full marks in Google , on both the mobile and the desktop test.
The site meets . Menus work from the keyboard, a skip link goes straight to the main content, focus rings are visible and animation respects the reduced-motion setting. The home-page slider has a pause control. Light and dark themes follow the device setting.


The project in numbers
- 396 pre-rendered pages in two languages
- 92 articles moved off
- 52 staff in the directory
- 166 old URLs that land where they should
- 63 versioned database migrations
- 378 KB: the whole map viewer in one file
- Monitoring every hour, around the clock
The full case study is in our portfolio and the site itself is at isor.is.
Still running a site that nobody dares to update? Get in touch.
More posts

19 July 2026 · 4 min read
Can AI see your website?
More and more visits come from AI reading your site, not a person. Here's how we build websites that both people and machines can read and understand