Skip to main content

Min Skuta — a digital lots for Swedish recreational boat owners | LUSTECH

Min Skuta #

A digital lots for Swedish recreational boat owners — solo or in co-owner groups of 2–4. Built by LUSTECH, in closed beta as of May 2026, public launch ahead of the 2026 season.

minskuta.se →

The problem #

Boat ownership in Sweden has a few stubborn realities that the existing tooling ignores:

  • Maintenance is seasonal, but the calendar isn’t the right unit. A 40-hour engine year on a small displacement diesel needs different attention than a 200-hour year, and neither maps to a generic “spring checklist”.
  • Co-ownership is common (a 2–4 person syndicate splitting a boat is cheaper and more used) but the tools assume a single owner. Someone ends up as the de-facto admin and the others fly blind.
  • Service logs live in paper books that vanish the moment the boat changes hands. The next owner inherits a hull and a question mark.
  • The few apps that exist demand everyone install something and create an account before anything useful happens.

We wanted a tool we would actually use ourselves through a season.

The approach #

Three constraints shaped everything else:

  1. Web-first, no app install. Means a page that opens in a browser, works on a phone in a marina, and doesn’t need an app store update before the launch weekend.
  2. The service log follows the vessel, not the owner. Means a data model where the boat is the durable thing, ownership is a relationship, and selling a boat hands the new owner the entire history — not a screenshot.
  3. Built for co-ownership from day one. Means roles, shared accounting that settles at season end, and no assumed admin. Everyone sees the same picture; anyone can log a service.

The first one rules out the native-app route. The second rules out the “your account owns the data” pattern most SaaS defaults to. The third rules out bolting on multi-user later.

Stack #

  • Next.js 16 (App Router) on React 19, TypeScript strict
  • PostgreSQL + Prisma for the data model; Auth.js v5 for passwordless email auth
  • Tailwind v4 + shadcn/ui; an editorial Nordic design system (Fraunces + Inter, paper/sea/brass tokens) built for the marine context rather than generic SaaS
  • Hexabyte S3 for object storage — EU-hosted, no cross-border data transfer for photos and documents
  • Resend + React Email for transactional mail; MDX for the public knowledge base
  • Self-hosted on Coolify, single VM, nightly pg_dump + weekly offsite mirror, forward-only migrations gated as a pre-start container hook
  • Self-hosted Umami for analytics with custom server- and client-side events — no third-party trackers, no cookie banner

Outcome #

  • Live at minskuta.se in closed beta as of May 2026, public launch ahead of the 2026 season.
  • Public landing page + MDX knowledge base + onboarding wizard + service log + seasonal phase planner (winter, launch, season, preparation).
  • SEO foundation in place: canonical/OG metadata, Article JSON-LD, dynamic OG images via next/og, sitemap with article dates pulled from git log.
  • Privacy-first by construction: data lives in EU infrastructure, no third-party trackers, the only cookies are session.

Why this lives on the LUSTECH site #

Min Skuta is the second project in the LUSTECH Lab. Where MachStruct sharpened our muscles on native macOS and parser performance, Min Skuta sharpened a different set: bleeding-edge web stack (Next.js 16, React 19, Tailwind v4), an honest multi-tenant data model with shared ownership baked in, self-hosted infrastructure with the operational discipline a paying user deserves, and product judgment about what not to ship in the MVP. The same engineering bar shows up when we deliver to clients.