Den offentlige siden
Tjenestesider, produktkatalog, fotogalleri, kundehistorier og en kontakt-pipeline. Mobil-først, schema-merket, indeksert fra ende til ende. Norsk tekst, merkevareledet design.
Vi bygde hele siden. Så bygde vi bot-forsvaret eieren ba om etter lansering. Så bygde vi admin-panelet slik at de aldri trenger å ringe oss om en skrivefeil igjen.
Bygget
Fase 1: lever siden. Fase 2: drep botene da de dukket opp. Fase 3: overlever nøklene.
Tjenestesider, produktkatalog, fotogalleri, kundehistorier og en kontakt-pipeline. Mobil-først, schema-merket, indeksert fra ende til ende. Norsk tekst, merkevareledet design.
Etter lansering begynte automatiske innsendinger å flomme inn på kontaktskjemaet. Vi leverte et flerlags forsvar: tidsheuristikk, honeypot-felter, innholdsscoring og rate-limiting. Spam falt til nesten null uten å noen gang vise en CAPTCHA til en ekte kunde.
Legitime innsendinger lander nå to steder — i admin-panelet og som en Resend-e-post til eieren, med bot-scoren, siden de kom fra, og en ett-klikks svarlink.
Bygget etter lansering som svar på "hver skrivefeil koster en telefonsamtale"-problemet. Sider, produkter, priser, blogg, innstillinger — hver seksjon kan redigeres fra ett dashboard.
Bot-problemet
Noen uker etter lansering begynte kontaktskjemaet å fange opp hundrevis av automatiske innsendinger om dagen — "lånetilbud", SEO-pitch-spam, falske tilbudsforespørsler. Teamet kastet bort tid på å sortere søppel og gikk glipp av reelle kundeforespørsler.
Vi ville ikke levere en CAPTCHA — de straffer feil personer. I stedet la vi inn fire usynlige forsvar (timing, honeypot, innholdsscoring, rate-limiting), hver billig alene og brutal i kombinasjon.
Ekte kunder fyller fortsatt ut skjemaet på tolv sekunder. Boter blir stille droppet før e-posten sendes. Eieren leser bare ekte navn.
Admin-panelet
Et beskyttet dashboard på /admin med Supabase Auth og Row Level Security. Fire arbeidsflater, én innlogging.
Åpne panelet, rediger forsidens hero, lagre, live. Samme for bloggen: skriv, legg ved bilder, planlegg, publiser — uten oss i loopen.
Visittkort, bannere, kjøretøydekaler — hver med varianter, priser og lager eieren kontrollerer direkte. Ny SKU? Legg den til på 30 sekunder.
Åpningstider, kontaktinfo, hero-tekst, OG-delingsbilder, ferie-banneret som dukker opp uka før jul. Tingene som endrer seg uten varsel.
Hver legitime skjema-innsending, status-sporet, sorterbar. Marker-som-besvart, arkiver, slett. Bot-deteksjonsskår synlig per innsending så teamet kan revidere det.
Inni bygget
Tjenestesiden kundene ser — og admin-panelet eieren bruker til å redigere den. To flater, én Postgres-database, null plugin-kjede.

Kunderettet · Tjenester
Tolv+ produktkategorier — bannere, visittkort, bildekorering, formatstempler — hver kan redigeres i produksjon av eieren. Bilder, tekst, priser.

Admin-panel · Innlogging
Supabase magic-link auth. Sidebaren dekker dashboard, tjenester, partnere, prosjekter, blogg, anmeldelser, innstillinger. Eieren driver hver seksjon uten en billett.
Stacken
Alt ligger i klientens GitHub, klientens Supabase-prosjekt, klientens Vercel-konto. Hvis de noen gang vil ha et annet byrå, tar overdragelsen en uke.
Samme idé, din bedrift
Fortell oss hva du vil styre selv. Vi viser deg hvordan.