H
Helene Åsheim Grønberg
Egenutviklet pilot · Demo i drift

LuxusLengths – custom Next.js-nettbutikk som mulig erstatter for Luxushair

En full custom-bygget nettbutikk for hair extensions, bygget som pilot for eventuell erstatning av Luxushair-plattformen (som driftes på WordPress/WooCommerce siden 2009). Egen produktkatalog, eget admin-panel, pris-historikk med EUR-kost-tracking, og full Bring/Klarna/Vipps-flyt – alt i Next.js 14 med Prisma og Neon Postgres.

LuxusLengths forside – «Drømmehår, levert.» med produkthero og fargematch-CTA

Forsiden: produkthero, ekte remy-hår-kommunikasjon og direkte CTA-er til Handle og Finn din farge.

Hvorfor bygge en pilot mot eksisterende butikk?

Luxushair har driftet på WooCommerce siden 2009, og den fungerer. Men en plattform du har vokst med i 15+ år, samler opp friksjon: gamle plugins som ingen tør å fjerne, betalingsmoduler som krasjer ved hver WordPress-oppdatering, og rapporter som krever manuell Excel-eksport for å bli brukbare.

LuxusLengths ble bygget for å teste én konkret hypotese: «Kan jeg lage noe som er raskere, ryddigere, og som har de smarte business-funksjonene (pris-historikk, varekost-tracking, valuta-justering) bygget inn fra start – uten at det blir så komplekst at det ikke er verdt det?»

Svaret er foreløpig ja. Demoen kjører på luxuslengths.vercel.app, og dersom den når kriteriene mine (under 2 sekunders LCP, full Bring/Klarna/Vipps-flyt, admin-panel der jeg kan håndtere alt fra nettleser uten å åpne phpMyAdmin), blir den vurdert som erstatter når Luxushair-relansering uansett skal opp.

Funksjoner

Produktkatalog

Tape, Keratin, Clip-on, Ponytail, Halo og hårpleie. Egne sider per produkt med varianter.

Varianter

Skygge (Midnatt, Karamell, etc.), lengde og SKU per variant. Egen lagerstand og varekost.

Fargematch

Kunde laster opp bilde, får fargematch-anbefaling tilbake. Klar feature for retur-reduksjon.

Handlekurv og kasse

Klarna, Vipps og kort. Fri frakt over 1 499 kr. 14 dagers returrett.

Brukerkonto

NextAuth med bcrypt-hashing, e-postverifisering via SendGrid, ordreoversikt.

Admin-panel

Ordrer, produkter, lager, kunder, rapporter og innstillinger. Bygget for daglig drift.

Pris-historikk

Sporer varekost per variant over tid – med EUR-pris, EUR/NOK-kurs og kilde-merking. Lar meg se hvordan leverandørprisene har endret seg.

Bring-integrasjon

«Send med Bring» direkte fra ordresiden. Lager pakkesporing og oppdaterer ordrestatus automatisk.

LuxusLengths kategorimeny med produktgrid for Tape, Keratin, Clip-on og Ponytail – med lengde- og fargevariant-velger

Mega-meny med kategori-filtrering og varianter: skygge (Midnatt, Karamell, etc.) og lengde (40, 50, 60 cm).

Admin-panelet i drift

Det er ikke butikkfronten som avgjør om en nettbutikk faktisk er bra å eie. Det er driftssiden. Etter 15 år med WooCommerce-admin vet jeg presis hva som irriterer meg daglig: rapporter som krever Excel-eksport, lager-status spredt på fem ulike steder, og pris-håndtering som kun finnes som plugins-tillegg du må betale separat for.

LuxusLengths sitt admin-panel er bygget for å løse akkurat det. Dashbordet samler KPI-ene jeg faktisk sjekker hver morgen, og menystrukturen til venstre er ordnet etter hvor ofte ting brukes: Ordre og Kunder daglig, Lager og Prishistorikk ukentlig, Innstillinger sjelden.

LuxusLengths admin-dashboard – KPI-er for omsetning, ordrer i dag, lagerstatus og siste ordre-tabell

Dashbord med ordre-i-dag, omsetning 7/30 dager, antall som skal pakkes, og siste ordre med leveringsstatus.

Bygget med rolle-basert tilgang (admin, ops, viewer) så jeg kan gi en pakkeansatt tilgang til Ordre og Lager uten å eksponere økonomi-data. Innlogging skjer mot egen AdminUser-tabell med bcrypt-hashing, og demo-konto er åpent dokumentert for å la potensielle kunder teste flow-en.

LuxusLengths admin-innlogging med demo-credentials

Innlogging med åpne demo-credentials: helene@luxuslengths.no / Sommer2026! – du kan teste hele admin-flow-en direkte.

Teknisk stack

FrontendNext.js 14 (App Router), React 18, TypeScript
DatabaseNeon Postgres + Prisma 6
AuthNextAuth 5 + Prisma adapter, bcrypt
E-postSendGrid – transaksjoner og varsler
FraktBring API – etiketter og pakkesporing
BetalingKlarna, Vipps, kort (testmiljø)
HostingVercel – luxuslengths.vercel.app
SEOApp-router robots.ts og sitemap.ts, OpenGraph-image

Datamodell

Det smarteste i prosjektet er pris-historikk-modellen. For en hair extensions-butikk er varekost ikke en konstant – den følger leverandør-priser og EUR/NOK-kurs. Vanlig WooCommerce har én pris per produkt. Min schema sporer hver endring som egen rad:

model PriceHistory { id String variantId String // hvilken variant costNok Int // varekost per stk i NOK costEur Float? // varekost per stk i EUR eurNokRate Float? // EUR/NOK-kurs på tidspunktet source String? // "lumhair-proforma-2026-02", "manual-edit" note String? // valgfri notat (kampanje, valutaendring) recordedAt DateTime // når endringa skjedde }

Det betyr at jeg kan svare på «hva var marginen i februar 2026 versus mai?», og at jeg kan justere kalkulerte priser når EUR/NOK svinger uten å miste historikken. Det er den typen business-logikk som ikke kommer ut av boksen i Shopify eller WooCommerce, men som gir reell innsikt for en lagerførende nettbutikk.

Hva jeg har lært av prosjektet

Luxushair (WooCommerce) versus LuxusLengths (Next.js)

Siden jeg eier begge plattformene og driver Luxushair daglig, har jeg uvanlig tilgang til å sammenligne dem på ekte data. Tabellen er ærlig: WooCommerce er ikke dårlig. Den vinner på flere felter. Men det er konkrete områder der custom-bygget faktisk betaler tilbake innsatsen.

Område Luxushair (WooCommerce) LuxusLengths (Next.js)
Stack WordPress + WooCommerce + ~30 plugins Next.js 14 + Prisma + Neon Postgres, ingen plugins
Tid å bygge fra null 2-3 uker med fastpris-pakke 6-8 uker for custom utvikling WC vinner
Tid å vedlikeholde månedlig 2-4 timer (plugin-oppdateringer, sikkerhetspatcher, plugin-konflikter) 15-30 min (dependency-oppdateringer, deploy via Vercel) LL vinner
PageSpeed mobil 62 etter optimalisering (uten optimalisering: 31) 94 ut av boksen, uten manuell tuning LL vinner
Førstegangslast (LCP) 3.8 sekunder mobil 1.4 sekunder mobil LL vinner
Bestseller-rapport WooCommerce Analytics, kjapt Egen rapport i admin-panel, kjapt Uavgjort
Varekost-tracking Ikke innebygd (krever WooCommerce Cost of Goods Pro: 79 USD/år) Innebygd PriceHistory-modell med EUR/NOK-tracking LL vinner
Pris-historikk per variant Ikke mulig uten egen plugin Innebygd, hver endring lagres med kilde og notat LL vinner
Tilpasning av kasseflyt Begrenset til plugin-hooks, kan brytes ved oppdatering Full kontroll, men du skriver den selv LL vinner
Vipps-integrasjon Offisiell plugin, fungerer godt Egen integrasjon mot Vipps API, mer arbeid WC vinner
Klarna-integrasjon Krokedil-plugin, offisiell støtte Egen integrasjon, fungerer men krever vedlikehold WC vinner
Bring-integrasjon Bring Fraktguiden-plugin, ferdig oppsett Egen Bring API-klient, full kontroll over flyt Uavgjort
Selv-publisering av blogg/innhold Drømmeverktøy for innholdsmarkedsføring Krever egen CMS-løsning eller hardkodet innhold WC vinner
Sikkerhet i drift Kontinuerlig oppdatering nødvendig, plugin-bakdører historisk problem Mindre angrepsflate, ingen plugins som kan kompromitteres LL vinner
Hosting-kost 150-400 kr/mnd for anstendig WP-hosting 0 kr/mnd Vercel hobby + 0-19 USD/mnd Neon (skalerer med trafikk) Uavgjort til 5k+ besøk/dag
Plugin-kostnad årlig 3 500-8 000 kr/år (Klarna, Vipps Pro, backup, sikkerhet, ytelse, Cost of Goods) 0 kr (alle integrasjoner er egne, ingen tredjeparts-lisenser) LL vinner
Endring av forretningslogikk Krever plugin-utvikling eller hooks, fragmentert Endre TypeScript-kode direkte, samlet i én kodebase LL vinner
Bytte plattform senere WordPress data-export er etablert, mange vei ut Du eier Postgres-databasen direkte, eksport trivielt Uavgjort
Konklusjon (foreløpig): LuxusLengths vinner på ytelse, månedlig vedlikehold, sikkerhet, total kostnad over tid, og forretnings-spesifikk logikk. WooCommerce vinner på byggetid, innholds-publisering og ferdige norske betalingsintegrasjoner. For en nettbutikk som har vokst forbi standard-funksjoner og hvor varekost-marginer er kritiske, peker analysen tydelig mot custom. For en ny nettbutikk uten spesifikke behov peker den fortsatt tydelig mot WooCommerce.

Når bør du faktisk velge custom?

Basert på sammenligningen, anbefaler jeg custom Next.js fremfor WooCommerce kun hvis minst to av disse stemmer:

Hvis ingen av disse stemmer: behold WooCommerce. Det er fortsatt det beste valget for 85 % av norske småbedrifter.

Spørsmål og svar om custom nettbutikk

Hva er forskjellen på WooCommerce og custom Next.js-nettbutikk?

WooCommerce er en plugin til WordPress med ferdige integrasjoner, lav byggetid (2-3 uker) og stort plugin-økosystem. Custom Next.js-nettbutikk er bygget fra null med full kontroll over forretningslogikk, raskere ytelse (PageSpeed 94 vs 62 i sammenligningen min), lavere driftskost, men krever 6-8 ukers byggetid og mer utviklerkompetanse å vedlikeholde.

Når bør jeg velge custom nettbutikk fremfor WooCommerce eller Shopify?

Anbefales kun hvis minst to av disse stemmer: du har egen forretningslogikk plugins ikke dekker (varekost-tracking, abonnement, kompleks variant-håndtering), du har volum nok til at månedlig WP-vedlikehold koster mer enn engangsutvikling, du har dårlig erfaring med plugin-konflikter eller hack, du integrerer mot ERP eller egen leverandørportal, eller du har løpende utviklerressurs. For 85 % av norske småbedrifter er WooCommerce fortsatt riktig valg.

Hva er pris-historikk-tracking i en nettbutikk?

Pris-historikk-tracking er en datamodell som lagrer hver endring i varekost over tid, med kilde, dato og valgfri valutaomregning. I LuxusLengths sporer modellen costNok, costEur, eurNokRate, source og note for hver variant. Det lar deg svare på spørsmål som «hva var marginen i februar versus mai?» og justere kalkulerte priser når valuta endres, uten å miste historikken. WooCommerce har ikke dette innebygd – det krever betalt plugin.

Hvor lang tid tar det å bygge en custom Next.js-nettbutikk?

Realistisk 6-8 uker for en custom Next.js-nettbutikk med produktkatalog, varianter, brukerkonto, kasse, betalingsintegrasjoner (Klarna, Vipps), fraktintegrasjoner (Bring) og eget admin-panel. WooCommerce-nettbutikk med tilsvarende funksjonalitet tar 2-3 uker med fastpris-pakke.

Hva koster det å bygge en custom Next.js-nettbutikk?

Engangsutvikling typisk 80-200 000 kr avhengig av kompleksitet og integrasjoner. Til sammenligning ligger en WooCommerce-nettbutikk fra 19 900 kr som fastpris. Driftskostnad for Next.js er lavere over tid: 0-19 USD/mnd hosting (Vercel + Neon) versus 150-400 kr/mnd WP-hosting pluss 3 500-8 000 kr/år i plugin-lisenser.

Kan jeg migrere fra WooCommerce til Next.js senere?

Ja. WooCommerce har etablert eksport-format for produkter, kunder og ordrer. Migrering til Next.js + Prisma + Postgres innebærer skriving av import-script som leser eksport-CSV og fyller Prisma-modellen. Realistisk 1-2 ukers arbeid å migrere en mellomstor nettbutikk.

Hvilken stack bruker LuxusLengths?

Next.js 14 med App Router, React 18, TypeScript, Prisma 6 mot Neon Postgres, NextAuth 5 for autentisering med bcrypt-passordhashing, SendGrid for transaksjons-e-post, Bring API for fraktetiketter og pakkesporing, Klarna og Vipps for betaling. Hosting på Vercel.

Status

Demo i drift på luxuslengths.vercel.app. Footer merker tydelig at det er demo og ikke kjøpbar nettbutikk. Beslutning om eventuell Luxushair-relansering tas etter videre testing av admin-flow på reelle ordre-volum.

Hva dette betyr for kunder

LuxusLengths er det jeg bygger når en kunde har vokst forbi WooCommerce og trenger custom forretningslogikk (varekost-tracking, prisautomatisering, integrasjoner mot leverandører eller egen logistikk). Det er ikke første-valget for en nystartet nettbutikk – det er andre-generasjons valg når du vet nøyaktig hva du trenger og hvorfor plattform-løsninger ikke gjør jobben.

Trenger du custom nettbutikk?

Hvis du har vokst forbi Shopify eller WooCommerce og trenger en plattform bygget på dine premisser, send en e-post med hva du faktisk trenger.

Send en e-post Åpne demo