Skip to content

Two sites. One back office.

Mountain cabins in Stöten and rental apartments in Gnosjö. Different clients and different looks, built on the same platform with the same back office.

Clients
Polarstigen, GnosjöBo Fastigheter
Since
2026
Status
Pilot
We built
Platform, CMS, booking, tenant portal
Polarstigen's homepage: the cabin on a winter evening, the headline "Mountain cabin in Stöten, 150 metres from the lift", and a search bar for free weeks. Demo data.
Polarstigen · weekly cabin rentals polarstigen.se (opens in a new tab)
GnosjöBo's homepage: the headline "At home in the middle of Gnosjö", buttons to vacant apartments and the interest form, and the courtyard in front of the yellow brick buildings. Demo data.
GnosjöBo · rental apartments in Gnosjö gnosjobo.se (opens in a new tab)

One back office under both

  • Block CMS
  • Weekly booking
  • Leases
  • Tenant portal
  • Swedish + English

Overview

Polarstigen lets a mountain cabin one week at a time. GnosjöBo Fastigheter lets 21 apartments in central Gnosjö on ordinary leases. Two businesses with very little in common, and both are built on the same property platform, with the same back office.

The challenge

Polarstigen wanted to let its mountain cabin itself, a week at a time and with no agency in between. GnosjöBo Fastigheter needed a home for vacant apartments, applications, and tenants. Two entirely different needs.

What we built

A property platform with one back office for both: a block CMS, weekly booking, leases, and a tenant portal, with each site in a look of its own.

How it's used today

Both sites' pages, photos, and settings are already in the platform, ready to run from one back office.

Each site has its own domain, colours, and menus. A new site is set up in the back office, with no new installation and no new code, and switching between them is one menu in the corner.

Site 1

Polarstigen

Polarstigen lets a newly built cabin in Granfjällsbyn, Stöten, 150 metres from the lift: twelve beds, five bedrooms, four bathrooms, and a relax room with a sauna. They handle the letting themselves, with no agency in between, so the site is both shop window and booking desk.

Visit polarstigen.se (opens in a new tab)
The Stora stugan page: the facts, the calendar of free weeks over Christmas and New Year, and the "Your week" booking card. Demo data.

Guests pick an arrival Saturday right on the homepage and land in the cabin's calendar. Stays are whole weeks, Saturday to Saturday. If the week has a price, you see the total and book straight away. If it doesn't, it becomes an inquiry that Polarstigen answers with a price.

The site is dark, with evening shots of the cabin and large photos from inside, in Swedish and English.

Site 2

GnosjöBo

GnosjöBo Fastigheter owns the ICA building at Köpmansgatan 21 in central Gnosjö, with 21 rental apartments and an ICA Supermarket in the same property. The apartments are renovated one at a time, usually when someone moves out.

Visit gnosjobo.se (opens in a new tab)
GnosjöBo's vacant apartments: a filter by number of rooms, two vacant apartments with their rent, and a card for registering interest. Demo data.

On the site you see the vacant apartments, filter by number of rooms, and register your interest. Every apartment has its own page with photos, rooms, and rent, and the rental policy and everything about the laundry room, the rubbish, and parking are in the same place.

Tenants get a personal invitation to My pages by email. There they see their lease and their payments, with the bankgiro number and reference to copy, download the lease as a PDF, and report faults they can follow until they're fixed. The look is light and plain, and nothing like Polarstigen's.

Look

Three sites, one shell.

Polarstigen and GnosjöBo each have their own stylesheet, Gislatorp just a database row. Pick one and the sample changes its look, or reskin this whole site and see how far a theme goes.

Mode

Lasts until you close the tab. Only you see it.

Polarstigen's cabins: snow, polar night and lamplight on the buttons.

Body text contrast: 16.1:1. Muted text: 6.8:1.

This week's deliveries

Active

Three orders are waiting to be packed. The next truck leaves at two.

Welding Painting Assembly

Everything that belongs to the project, in one place.

On time %
96
Open cases
12

What changed 138 values

Source: NIT.Estate src/NitBaseline.Client/src/tenants/polarstigen/polarstigen.css @ 900a2de0

NameNorin ITPolarstigen
--accent #35312c #e9ecf5
--accent-foreground #ede6db #1b2236
--background #0f0d0b #f5f7fb
--border #75564e #d9dfeb
--card #282420 #ffffff
--card-foreground #ede6db #121a2e
--chart-1 #f97316 #3b82f6
--chart-2 #86b6dc #14b8a6
--chart-3 #e8b04a #f59e0b
--chart-4 #7cc48f #8b5cf6
--chart-5 #c79ab8 #ec4899
--chart-6 #827b72 #64748b
--chart-axis #c4bbae #4a5672
--chart-cat-1 #f97316 #3b82f6
--chart-cat-10 #7cc48f #8b5cf6
--chart-cat-2 #86b6dc #14b8a6
--chart-cat-3 #e8b04a #f59e0b
--chart-cat-4 #7cc48f #8b5cf6
--chart-cat-5 #c79ab8 #ec4899
--chart-cat-6 #827b72 #64748b
--chart-cat-7 #f97316 #3b82f6
--chart-cat-8 #86b6dc #14b8a6
--chart-cat-9 #e8b04a #f59e0b
--chart-current #f97316 #3571d5
--chart-exempt #6b655e #939bae
--chart-grid #75564e #d9dfeb
--chart-negative #f2735f #b8322a
--chart-other #d0d0d0 #373737
--chart-positive #7cc48f #2e7a52
--chart-previous #6d6d6d #8a8a8a
--chart-projected #6e391a #a2c5fc
--chart-rank-1 #422516 #c6dbfd
--chart-rank-2 #5e3119 #afcdfd
--chart-rank-3 #7a3e1c #99bffc
--chart-rank-4 #994b1d #81b0fb
--chart-rank-5 #b7581d #6ba1fa
--chart-rank-6 #d9661b #5391f8
--chart-rank-7 #f97316 #3b82f6
--chart-ref-line #c4bbae #4a5672
--chart-seq-1 #422516 #c6dbfd
--chart-seq-2 #6c381b #a4c6fd
--chart-seq-3 #994b1d #81b0fb
--chart-seq-4 #c75e1c #609af9
--chart-seq-5 #f97316 #3b82f6
--chart-text #c4bbae #4a5672
--chart-volume #86b6dc #14b8a6
--destructive #f2735f #b8322a
--destructive-foreground #0f0d0b #ffffff
--destructive-soft-foreground #f2735f #8f2620
--foreground #ede6db #121a2e
--info #86b6dc #3d558c
--info-foreground #0f0d0b #ffffff
--info-soft-foreground #86b6dc #2c3c60
--input #827b72 #7f8ba6
--muted #191614 #e9edf5
--muted-foreground #c4bbae #4a5672
--muted-foreground-subtle #c4bbae #5b6681
--popover #282420 #ffffff
--popover-foreground #ede6db #121a2e
--primary #9a3412 #f2ab3c
--primary-foreground #ede6db #121a2e
--primary-soft-foreground #f97316 #7a4a0e
--ring #f97316 #3d558c
--secondary #35312c #e6ebf5
--secondary-foreground #ede6db #1b2236
--state-tile-bad-bg #450a0a #fef2f2
--state-tile-bad-foreground #fca5a5 #991b1b
--state-tile-brand-bg #1e120e #f5f1ee
--state-tile-brand-foreground #f97316 #7a4a0e
--state-tile-good-bg #052e16 #f0fdf4
--state-tile-good-foreground #86efac #166534
--state-tile-info-bg #172554 #eff6ff
--state-tile-info-foreground #93c5fd #1e40af
--state-tile-neutral-bg #191614 #e9edf5
--state-tile-neutral-foreground #c4bbae #4a5672
--state-tile-warning-bg #451a03 #fffbeb
--state-tile-warning-foreground #fcd34d #92400e
--state-tint-bad #f2735f #b8322a
--state-tint-brand #9a3412 #f2ab3c
--state-tint-good #7cc48f #2e7a52
--state-tint-info #86b6dc #3d558c
--state-tint-neutral #c4bbae #4a5672
--state-tint-warning #e8b04a #b45309
--success #7cc48f #2e7a52
--success-foreground #0f0d0b #ffffff
--success-soft-foreground #7cc48f #1f5a3b
--warning #e8b04a #b45309
--warning-foreground #0f0d0b #ffffff
--warning-soft-foreground #e8b04a #8a3f07
--font-family-display 'Newsreader Display', 'Newsreader Fallback', 'Georgia', serif 'NI Demo Familjen Grotesk', ui-sans-serif, system-ui, sans-serif
--font-family-mono ui-monospace, 'Cascadia Code', 'Source Code Pro', 'Menlo', 'Consolas', monospace 'NI Demo DM Mono', ui-monospace, 'SFMono-Regular', 'Menlo', 'Consolas', monospace
--font-family-sans 'Inter', 'Inter Fallback', sans-serif 'NI Demo Atkinson Hyperlegible Next', ui-sans-serif, system-ui, sans-serif
--font-family-special 'Inter', 'Inter Fallback', sans-serif 'NI Demo Familjen Grotesk', ui-sans-serif, system-ui, sans-serif
--radius-alert 0 4px
--radius-avatar 0 9999px
--radius-badge 0 999px
--radius-btn 0 4px
--radius-btn-pill 0 9999px
--radius-card 0 4px
--radius-checkbox 0 2px
--radius-chip 0 999px
--radius-chip-pill 0 9999px
--radius-input 0 4px
--radius-lg 0 6px
--radius-md 0 4px
--radius-modal 0 10px
--radius-popover 0 6px
--radius-progress 0 9999px
--radius-sm 0 2px
--radius-switch 0 9999px
--radius-tooltip 0 4px
--radius-xl 0 10px
--radius-2xl 0 16px
--btn-hover-shadow none rgba(242, 171, 60, 0.35) 0px 0px 0px 1px, rgba(242, 171, 60, 0.55) 0px 10px 32px -8px
--duration-fast 0.2s 0.12s
--duration-normal 0.3s 0.2s
--duration-slow 0.5s 0.42s
--gradient-brand linear-gradient(rgb(154, 52, 18), rgb(154, 52, 18)) linear-gradient(rgb(242, 171, 60), rgb(242, 171, 60))
--hover-lift 0 -2px
--hover-scale 1 1.02
--shadow-2xl rgba(8, 6, 4, 0.65) 0px 32px 64px -20px rgba(11, 16, 32, 0.4) 0px 40px 80px -20px
--shadow-glow rgba(0, 0, 0, 0) 0px 0px 0px 0px rgba(242, 171, 60, 0.35) 0px 0px 0px 1px, rgba(242, 171, 60, 0.55) 0px 10px 32px -8px
--shadow-lg rgba(8, 6, 4, 0.55) 0px 12px 32px -12px rgba(18, 26, 46, 0.18) 0px 16px 36px -10px
--shadow-md none rgba(18, 26, 46, 0.1) 0px 6px 16px -4px
--shadow-sm none rgba(18, 26, 46, 0.06) 0px 1px 2px 0px
--shadow-xl rgba(8, 6, 4, 0.6) 0px 24px 48px -16px rgba(18, 26, 46, 0.26) 0px 28px 60px -16px
--norinit-brand-ink #f97316 #7a4a0e
--norinit-brand-hover #b0400f #f2ab3c
--norinit-brand-faint #9a341226 #7a4a0e26
--norinit-brand-soft #9a341266 #7a4a0e66
--norinit-brand-strong #9a3412a6 #7a4a0ea6
--norinit-surface-low #35312c #e9edf5
--norinit-outline #aa8984 #7f8ba6
--norinit-outline-dim #75564e #d9dfeb
--norinit-credit-color #f973168c #7a4a0e8c
--norinit-logo-shape #6e6e6e #4a5672
--norinit-logo-shape-hover #8a8a8a #2e3850
--norinit-logo-dot #4d4c4c #a0a7b7

What sets the sites apart is theme, menus and content. The components and the back office are the same.

Back office

The platform has one back office for both sites. You switch site in one menu, and everything else stays the same: pages, media, letting, and inquiries.

The block editor on Polarstigen's homepage: the block tree, the gallery block selected on the live preview, and its settings. Demo data.
  • Blocks on a real preview

    Pages are built from blocks such as a video hero, galleries, text with images, and FAQs. You edit them right in the site's own look and publish when they're ready.

  • Weeks or leases

    Weekly booking, with a price or on request, for the cabin. For the apartments: applications, leases, monthly rent, reminders, and deposits.

  • A portal for tenants

    Lease, payments, deposits, and fault reports in one place. The login starts with a personal invitation, and the link is valid for seven days.

  • Swedish and English

    Every page exists in both languages, with a language switch right in the editor.

How we built it

Every client should get a site that looks like their own, without us building a new platform for each one. What sets the sites apart is theme, menus, and content, not code.

  1. One platform, several sites

    Each site has its own domain, colours, and menus, on the same back office and the same code. A new site is set up in the back office, with no new installation.

    The back office with the site switcher open: GnosjöBo Fastigheter and Polarstigen in the same menu, with GnosjöBo's apartments behind. Demo data.
  2. Content as files too

    Every page, menu, and setting can be exported to files and applied back, and every change can be checked before it goes out.

  3. Our design system underneath

    Each site is a theme on the same components we use in our other systems, with keyboard navigation and reduced motion built in.

  • SvelteKit
  • .NET
  • TypeScript
  • PostgreSQL
  • Tailwind CSS
  • Docker
  • Kubernetes

Key metrics

Back office for both sites
1
The same login and the same code. You switch site in one menu.
Kinds of letting
2
Whole weeks in the mountains, Saturday to Saturday, and leases with monthly rent in Gnosjö.
New installations for a new site
0
A new site is set up in the back office, with its own domain, colours, and menus.
Contact

Got a system everyone's waiting on?

Tell us what you want to build and we'll take it from there.

Regarding: The property platform

All fields are required.

Next project

Design system and theming tools

Design systems