Changelog
Hver gang vi udruller noget nyt på Smaqly — nye features, forbedringer eller fejlrettelser — kommer det her. Nyeste øverst.
- Ny feature
Månedlig AI- og SMS-kredit i din plan
Din plan inkluderer nu en fast månedlig kredit til både AI og SMS — så du kan sende bekræftelser, påmindelser og statusbeskeder til dine gæster og bruge AI-værktøjerne uden at tænke på opsætning.
- Inkluderet hver måned: Starter 25 kr · Pro 50 kr · Business 75 kr — til både AI og SMS
- SMS sendes nu gennem Smaqly — ingen ekstern konto at oprette
- Bruger du mere, kan du toppe op eller få overforbruget på næste regning
- Følg dit forbrug live under Indstillinger → SMS
- Ny feature
Bordbestilling — gæsten vælger selv bord
Bordbestillingen er løftet til et komplet, selvstændigt produkt. Gæsten booker på få sekunder, kan vælge sit eget bord på jeres gulvplan, og får bekræftelse og påmindelse automatisk.
- Gæste-bordvalg: slå det til, og gæsten vælger selv et ledigt bord — optagede borde vises røde og kan ikke vælges
- Bekræftelse på e-mail + SMS med det samme bordet er booket
- Påmindelse på dagen med ét-klik-aflysning, så I får færre no-shows
- Bookings via det ledige-tider-flow bekræftes automatisk — ingen manuel godkendelse
- Ingen dobbelt-booking: systemet garanterer at to gæster aldrig kan tage samme bord
- Forbedring
Tydeligere dashboard-menu
Menuen i dashboardet er blevet pænere og nemmere at overskue. Hvert punkt står nu som et tydeligt kort, og sektionerne har klare overskrifter, så du hurtigere finder det du leder efter.
- Alle menupunkter vises som tydelige kort
- Fremhævede sektions-overskrifter
- Funktioner du kan opgradere til vises stadig — så du ved hvad der findes
- Ny feature
Importér hele din menu fra et link — med billeder
Skift til Smaqly på minutter i stedet for timer. Indsæt et link til din nuværende menu, så læser vores AI den og opretter kategorier, retter, priser, beskrivelser — og henter endda produktbillederne med.
- Virker med din egen hjemmeside, Wolt, JustEat og de fleste menu-sider
- Læser også sider der bygges med JavaScript (Wix, WordPress, Squarespace m.fl.) — ikke kun simple sider
- Billeder følger med: vi henter rettens foto og gemmer det sikkert hos os
- Du gennemgår og bekræfter resultatet før det lægges i menuen
- Kan også indsættes som ren tekst eller uploades som PDF
- Forbedring
Mere robuste bookings og kiosk
En grundig gennemgang af booking, bordreservation, selvbetjenings-kiosk og besked-systemet har gjort hele oplevelsen mere pålidelig.
- Ingen dobbelt-booking: databasen forhindrer nu fysisk at to reservationer kan tage samme bord
- Kiosk: dobbelt-tryk laver ikke længere to ordrer, og påkrævede valg (fx størrelse) sikres altid
- SMS-bekræftelser afregnes nu korrekt — også beskeder med emoji
- Strammere håndtering af reservationers status, så ingen bookinger ender forkert
- Forbedring
Tryksager nu med fra Starter
Print-on-demand af brochurer, flyere, visitkort og menukort er nu tilgængeligt fra Starter-planen. Alle kunder kan bestille professionelt tryk direkte i Smaqly.
- Færdige skabeloner I udfylder selv
- Bestilles direkte fra dashboardet
- Tidligere kun på Pro — nu med på alle planer
- Ny feature
Vælg jeres egen betalingsudbyder
I bestemmer nu selv, hvem der håndterer jeres online-betalinger. Vælg den udbyder der passer til jeres aftale og gebyrer — Smaqly tilpasser kassen automatisk.
- Understøtter Nets/Nexi, Pensopay, Flatpay og Stripe
- Skift udbyder under Indstillinger → Betaling uden at røre koden
- Hver betaling verificeres mod beløbet, og køkken-print + kvittering udløses først når betalingen er bekræftet
- Hærdet hele vejen fra ordre → betaling → køkken → kvittering
- Ny feature
Visuel gulvplan med live salsoverblik
Borde-modulet er blevet til et professionelt gulvplan-værktøj. Tegn jeres sal præcis som den er, og se under service hvilke borde der er ledige, optagede eller reserverede — med ét blik.
- 2.5D drag-and-drop: træk bordene på plads, vælg form (rund/firkant/aflang) og rotér dem
- Ægte 3D-visning: drej og zoom i salen i et rigtigt 3D-rum
- Sal (live): bordene farves efter status — grøn = ledigt, rød = optaget, gul = reserveret
- Klik et bord og se den åbne ordre eller reservation direkte
- Opdaterer automatisk under hele vagten
- Ny feature
Live support direkte i dashboardet
Få hjælp med det samme. Vi har bygget live support ind i Smaqly, så du kan stille spørgsmål og få svar uden at forlade dashboardet — både fra vores AI-hjælper og fra et rigtigt menneske.
- Live chat med Smaqlys support i realtid
- AI-hjælper der kender alle moduler og svarer med det samme på de hyppige spørgsmål
- Se hvornår support er online, og bliv eskaleret til en person når du har brug for det
- Hurtigere svar, så I aldrig står fast midt i en travl service
- Ny feature
AI-markedsføring — skriv kampagner på sekunder
Smaqly hjælper jer nu med selve markedsføringen. Et nyt sæt AI-værktøjer skriver kampagner, foreslår tilbud og laver billeder — så I kan ramme jeres gæster oftere uden at bruge timer på det.
- AI-tekstforfatter til email-kampagner
- AI-genererede billeder til opslag på sociale medier
- Automatiske menubeskrivelser i bulk
- AI-anbefaler af kampagner og rabatter baseret på jeres data
- Win-back-tekster i automatiske flows der henter inaktive gæster tilbage
- Marketing-autopilot der binder det hele sammen
- Ny feature
POS-hardware kan nu bestilles direkte
Vi har åbnet en hardware-side hvor I kan se og bestille det udstyr der passer til Smaqly — fra kasse til selvbetjenings-kiosk og pengeskuffe.
- Komplet produkt-sortiment: T3 dobbeltskærms-kasse, K2 selvbetjenings-kiosk, CPad tablet-POS, FLEX 3 selvbetjeningsskærm, køkken-printer og pengeskuffe
- Downloadbart datablad (PDF) på hvert produkt
- Starter Kit (tablet + printer + pengeskuffe) fra 5.999,- + moms — eller 12 mdr. à 699,-
- Bestil eller spørg via en hurtig pop-op-formular — henvendelser går direkte til salg
- "Hardware" tilføjet i menuen, så det er nemt at finde
- Ny feature
Det store POS-løft — kasse, køkken og betaling
Smaqly-kassen er blevet markant kraftigere. En lang række forbedringer gør den klar til travle service-aftener — fra hurtig ordre-redigering til fuld kontant- og gavekort-håndtering og fiskal rapportering.
- Rediger varer og linjer direkte i ordren + mørkt POS-tema
- Split-betaling pr. vare — del regningen som gæsterne vil
- Kontant ind/ud (pay-in / pay-out) og delvise refunderinger
- Sælg gavekort direkte i kassen + indløs loyalty-point ved betaling
- Email- og SMS-kvitteringer til gæsten
- Bord-gulvplan med åbne regninger (tabs) pr. bord
- Course firing + dedikeret expo-skærm til at styre udsendelse af retter
- Styrket fiskal korrekthed (SAF-T/journal), pris-integritet og sikre refunderinger
- Sikkerhed
Stor sikkerheds- og stabilitets-gennemgang
Vi har gennemført en omfattende gennemgang af hele platformen for at beskytte jeres data og holde systemet stabilt under pres. Som en del af forårets store opdateringsrunde (60+ forbedringer i alt) er der lukket sårbarheder, styrket dataadskillelse og fanget kritiske fejl med ny automatisk test.
- Komplet sikkerheds-, SEO- og adgangs-audit — sårbarheder lukket på tværs af butik, dashboard og super-admin
- Styrket adskillelse mellem restauranters data (database-niveau RLS-fundament + automatisk drift-kontrol i CI)
- Step-up-bekræftelse på følsomme super-admin-handlinger + fuldt revisionsspor
- Ny automatisk test-suite (E2E) der fangede flere kritiske fejl før de nåede jer — bl.a. i kasse og køkken
- Hærdede betalings-, gavekort- og refunderings-flows mod misbrug og dobbelt-kørsel
- Opdaterede afhængigheder + CodeQL-fund rettet
- Ny feature
Ny AI-hjælpeassistent i dashboardet
Der er nu en indbygget hjælpeassistent i Smaqly-dashboardet. Den kender alle modulerne og svarer med det samme på "hvordan gør jeg …"-spørgsmål — og er der altid brug for et menneske, er hjælp kun ét klik væk.
- Flydende "Hjælp"-knap på alle dashboard-sider
- Svarer på tekniske og how-to-spørgsmål om hele systemet
- Altid synlig knap til personlig hjælp — ring eller skriv direkte til support
- Svarer på dansk, kort og konkret, med trin-for-trin
- Ny feature
Tryksager udvidet med færdige studier
Tryksager-modulet har fået færdige design-studier, så I hurtigt laver professionelt materiale uden en grafiker.
- Preset-studier til åbningstider-folie, gavekort og klistermærke-designs
- PDF-skabelon med auto-udfyldning af åbningstider
- Upload jeres eget design og send det direkte til tryk
- Ny feature
Vagtplan & løn opgraderet
Vagtplanen er blevet til et komplet løn- og bemandings-værktøj. Nu kan I planlægge, godkende faktiske timer og holde øje med lønprocenten live — med danske arbejdstidsregler indbygget.
- Timesedler: planlagt vs. faktisk tid med godkendelses-flow
- Løn-eksport baseret på godkendte faktiske timer + live lønprocent af omsætningen
- Ubetalt pause pr. vagt → præcise timer og korrekt løn
- Danske arbejdstids-advarsler (11 timers hvile + 48 timer/uge)
- Kontrakt-timer, vagt-skabeloner og automatisk udkast fra efterspørgsels-prognose
- Bemandings-prognose så I planlægger efter forventet travlhed
- Ny feature
Ny interaktiv forside
Smaqly.dk har fået en helt ny forside med en levende, scroll-drevet hero der viser systemet i aktion — kasse, kundeskærm, takeaway og levering — scene for scene.
- Scroll-drevet billed-hero med animerede call-outs der peger på hvert modul
- Klikbar slide-navigation så man hurtigt hopper mellem scenerne
- Fuldt mobil-tilpasset med ren call-out-liste på små skærme
- Optimeret animation (kører nu uden at belaste ældre telefoner) + hurtigere indlæsning
- Forbedring
Velkommen til Ali Cetin som medstifter + flytter HQ-info til Randers
Smaqly har nu to medstiftere. Adrian Sinclair fortsætter som CEO med ansvar for teknik og produkt. Ali Cetin tiltræder som medstifter og COO med branche-erfaring som ejer af Nagomi og flere andre restauranter — hver feature-beslutning testes nu i hans egne restauranter inden den ryger ud til andre kunder.
- /stiftere opdateret med begge stiftere og fortælling om hvordan
vi mødtes om at fjerne 30% provisionen fra dansk takeaway
- /presse har nu både Adrian og Ali i ledelse-sektionen
- Privatlivspolitik + handelsbetingelser opdateret med korrekt
HQ-adresse: Hospitalsgade 10, 8900 Randers
- Schema.org Organization har nu fysisk adresse til Google Knowledge
Graph — bedre forretningsvisning i søgning
- Værneting flyttet fra Retten i København til Retten i Randers
(afspejler vores faktiske hjemkommune)
Ingen funktionelle ændringer i dashboard, POS eller storefront — kun opdaterede stamdata, sider og signaturer.
- Forbedring
/tal — fjernet udfaset CO₂-stat + drift-fix på prissider
Oprydning på offentlige tal- og pris-sider.
- /tal viser ikke længere CO₂-aftryk-feltet — det var en udfaset
beregning vi ikke længere vedligeholder. Live tal er nu: aktive restauranter, bestillinger, byer dækket, drikkepenge til personalet, og 0% provision
- /priser læser nu alle priser dynamisk fra én canonical pricing-tabel
i stedet for hardcoded gentagelser. Prisændringer reflekteres automatisk i meta-description, schema og besparelses-kort
- Schema.org BreadcrumbList tilføjet på 8 sider (menu, dit-eget,
alle 6 alternativ-til-* sider) for bedre Google rich-results
- Booking-form har nu korrekte aria-labels + autoComplete-hints
så password-managers + screen-readers fungerer ordentligt
Driftgevinst: én pris-kilde, færre steder at glemme at opdatere.
- Ny feature
Frisbii-billing 100% integreret — klar til go-live onsdag
Hele billing-flowet kører nu på Frisbii — fra signup til Customer Portal til opsigelse. Ventede tidligere på at konfiguration skulle landes; nu er kun nogle dashboard-handles + env-variabler tilbage.
- Signup → Frisbii checkout med alle 3 betalingsmetoder
(MobilePay-subscription, kort, B2B-faktura) tilgængelige på samme plan
- Customer Portal-redirect fra billing-siden så ejeren kan opdatere
betalingsmetode, se fakturaer eller opsige uden support-ticket
- Plan-skift uden ny checkout — Frisbii's change_plan API med
automatisk proration. Opgradering trækker forskellen straks
- Opsigelse ved næste fornyelse som standard (kunden beholder
adgangen perioden ud); immediate-cancel mulig hvis behov
- Webhook handler synker alle 13 event-typer til DB med
idempotency via frisby_webhook_events. 3-strikes-dunning suspenderer efter 3 fejlede betalinger, "betaling gennemført"-mail når kunden retter op
- Self-service plan-handles: starter, pro, business, booking × monthly/yearly
= 8 plans total. Booking koster 299 kr/md (239 effektivt årligt)
- Operationel handoff-doc ligger i docs/frisbii-go-live-checklist.md
med 6 trin den der konfigurerer Frisbii skal følge på onsdag
- Ny feature
Nr-felt på ret-redigering + smartere fallback i kundens menu
Owners kan nu tildele et nummer/SKU pr ret direkte fra menu-admin'en — ikke kun via SQL eller AI-import. Vigtigt for klassiske pizzeriaer hvor telefon-ordrer kommer som "jeg vil have nummer 23".
- Nr-felt i ret-redigeringen (col-span-1 desktop, col-span-3 mobil)
før Navn-feltet. Max 8 tegn, accepterer både tal og alfanumerisk (fx "M1", "PIZZA-12")
- Vises foran navnet i kundens menu når SKU er sat, fx
"1. Margherita". Hvis SKU er null (kategorier der ikke har nummersystem), vises der INTET nummer — ikke et fallback-index
- Vises i POS-tile så kassen kan slå et item op via nummeret
- Tom sku = null (intet nummer foran) så restauranter med blandet
nummersystem (fx kun pizza-numre) kan tilladge det uden alle burgere får 1./2./3.
- Ny feature
Registrér rigtig betalingsmetode på counter — kontant vs MobilePay
Pinocchio-piloten afslørede et hul: kitchen-app og POS kunne ikke skelne mellem kontant og MobilePay-scan ved afhentning. Resultatet var forkerte kasseopgørelser og TastSelv-rapporter der mixede de to.
- Kitchen-app viser nu 2 knapper i en grid på ordrer der venter på
betaling: 💶 Kontant og 📱 MobilePay. Personalet vælger den knap der matcher hvad kunden faktisk gjorde på counter
- POS-terminal har 3 betalings-knapper i grid'et: 💶 Kontant ·
📱 MobilePay · 💳 Kort (oven over "Betal senere"-knappen for telefon- ordrer). Den manuelle MobilePay-scan tracker korrekt i kasse + TastSelv
- Toggle pr restaurant under Indstillinger → Betalinger:
"MobilePay-scan på counter". Restauranter der ikke bruger manuel MobilePay-scan ser slet ikke MobilePay-knapperne — de får samme oplevelse som før
- `orders.payment_collected_method` registrerer faktisk modtaget
metode (cash, mobilepay_manual, mobilepay_box, card_terminal, osv.). Adskilt fra
payment_method(kundens valg ved checkout) så reports kan splittes ærligt- Daglig kasseopgørelse kan nu vise "38 ordrer: 18 kontant
(4.500 kr) + 20 MobilePay (5.200 kr)" — TastSelv-revisor kan rekonstruere splittet uden gætværk
- Ny feature
Smaqly Booking — dedikeret produkt med eget dashboard og onboarding
Stor opgradering: Smaqly Booking er nu et separat produkt — ikke en filtreret variant af takeaway-systemet.
- Dedikeret dashboard-sidebar med booking-specifik struktur i
stedet for en skrumpet takeaway-version. Sektioner: I dag, Bordbestilling, Gæster & anmeldelser, Hjemmeside, Marketing, Tryksager, Personale, Konto. "SMAQLY BOOKING"-pill øverst gør produkt-tilhørsforholdet tydeligt
- Skræddersyet 5-trins onboarding-wizard der erstatter
branding/menu/payments/delivery/sharing med: 1. Brand & logo 2. Bordplan (kapacitet pr. bord) 3. Åbningstider + lead-time 4. Betalingsudbyder (abonnement) 5. Embed på jeres hjemmeside
- Self-service signup via /signup?plan=booking — plan-valg-trinnet
springes over, og restauranten lander direkte på kunde-info-formularen med en "SMAQLY BOOKING"-banner. Kun Enterprise (kæder) skal stadig igennem opkalds-aftale via /book-demo
- Embed-widget-side /booking-settings/widget med tre kopierings-klare
snippets: fuld iframe, kompakt box, eller blot et knap-link til at åbne booking i et nyt vindue
- Auto-defaults ved signup: booking_only=true, pickup/delivery
disabled, reservations_enabled=true, så customer-facing /r/{slug} bruger booking-flow fra første sekund
- Tryksager-modulet er tilføjet til booking-sidebaren også —
bord-kort, menukort, sæsonbrochurer og gavekort er lige relevante for booking-restauranter
- Ny feature
Tryksager-modulet komplet ombygget — grafisk service, faktura-betaling, design-godkendelse
En dag hvor tryksag-modulet gik fra "minimum viable" til seriøs B2B-printshop. Hele bestillings-flow'et fra wizard til levering blev gennemgået, og to nye moduler blev tilføjet: grafisk design-service med godkendelsesforløb, og faktura-betaling for kunder med godkendt kredit-aftale.
### Klistermærke-modul (nyt)
- DB-katalog `sticker_products`: 15 SKUs (ø30/40/50/60/80 × PVC mat / PVC blank / PVC udendørs) med volume-trappe i JSONB. Super admin kan ændre priser direkte uden deploy
- Kunde-flow `/qr/stickers` med rundt design-preview, hover-swap mellem stående/udfoldet mockup, og direkte CTA fra QR-kode-siden
- Server-side pris-validering så browseren ikke kan diktere prisen
- Snapshot ved bestilling: brand-farve + logo + QR-URL fryses ind så reprints ser ens ud selv hvis kunden ændrer brand
### Brochure-priser baket ind
- `BROCHURE_PRICING_OERE`: 6 varianter × 4 papirer × 5 qtys all-in priser, baket ind som code-default fra Adrian's manuelt indtastede supplier-priser
- 115 redundante overrides slettet fra DB — koden er nu source-of-truth
- Pris-strategi: supplier-list inkl. moms gemt som ekskl. moms i Smaqly → +25% margin per ordre gennem moms-mekanismen
- Variant-specifik papir-validering: Z-fold A3 8-panel sprækker ved 300g, ekskluderes automatisk fra både wizard og pricing-matrix
- "Inkl./-100 kr/+199 kr" labels erstattet med faktisk pris-diff per papir: "Tillæg +1.800 kr" / "Spar 450 kr" / "Standard pris"
### Wizard: grafisk-assistance step (nyt)
- Step 5: "Brug for grafisk hjælp?" med to muligheder — selv-design eller Smaqly designer for mig
- Pricing: 1.699 kr for første unikke design + 1.199 kr per ekstra
- Antal designs vælges (1-5) med live pris-opdatering
- "Sådan virker det" 5-trins box med leveringstider: 4-6 dages produktion + 4-5 dages levering efter godkendt design
- Revisionsrunder = antal designs (ikke fast "1 runde")
- Når valgt: skipper editor og router direkte til OrderForm med pre-filled customDesign-felter
- CTA-knap skifter: "Start design →" vs "Bestil med design-service →"
### Design-godkendelses modul (nyt)
- `design_proofs` DB-tabel + private storage-bucket (50 MB max, PDF/PNG/JPEG/WebP)
- Super-admin `/super/design-proofs`: upload PDF/billede, version-historik per ordre, kunde-respons synlig per version
- Kunde-review på order-status-siden: download proof via signed URL (1-time TTL), tre svar-knapper (Godkend/Anmod om ændringer/Afvis) med påkrævet note ved changes/rejected
- Email-notifikationer: kunde får mail med direkte review-link når nyt udkast uploadet; super-admin får alert når kunde svarer
- Pending-proofs banner på
/brochures-hub når der venter designs til godkendelse - Sidebar-link i super-admin under Tryksager-gruppen
### Faktura-betaling (nyt)
- `restaurants.invoice_credit_approved` flag — godkendes manuelt af Adrian per restaurant efter kredit-vurdering
- Super-admin toggle på
/super/restaurants/[slug](MitID-gated) der aktiverer faktura-kredit + sætter betalingsbetingelser (default 14 dage netto) - OrderForm betalingsmetode-radio: Faktura (default hvis kredit aktiv) eller Kort. Server-side validering mod kredit-status så browseren ikke kan bypasse
- placeOrder skipper card-auth når payment_method=invoice — Adrian sender Dinero-faktura manuelt
- `markInvoicePaid`-action på
/super/brochuresmed "✓ Markér betalt"-knap når Adrian modtager betaling - Faktura-tag synligt på alle invoice-ordrer i super-admin
### Kunde orders-panel (nyt)
- `/dashboard/[slug]/brochures/orders` — dedikeret oversigt over alle tryksag-ordrer
- Status-tracking per ordre: afventer godkendelse → klar til tryk → i produktion → afsendt → leveret
- Tracking-link inline når afsendt
- Design-service + faktura-indikator på hver ordre
### Tak-side ved bestilling
- placeOrder redirecter til
/orders/[id]/status?placed=1i stedet for tilbage til canvas-editor - "Tak for din bestilling!"-banner på status-siden så kunden ikke tror ordren fejlede
### Super-admin overblik widget
- "Tryksager & grafisk design" sektion på
/supermed 4 KPI-cards:
- Venter på audit - Nye ordrer 24t - Grafisk design venter (orders med wants_design_service) - Kunde-feedback (proofs med changes_requested/rejected)
- Direkte links til audit-queue og design-proofs
### Mockup-billeder
- 16 AI-genererede mockup-billeder via fal.ai Flux Pro 1.1 Ultra ($0.96 total)
- 8 produkt-typer × 2 vinkler (stående + udfoldet/flat)
- Sage/cream generic restaurant-look så det passer alle kunder
- Optimeret: 11.2 MB → 820 KB (-93%) via resize 1024×1024 + WebP
### Variant-rækkefølge + populær-badge
- Z-fold A3 8-panel rykket op (mere visibility); bi-fold A4 ned
- "Populær"-badge på tri-fold A4 (M65), tri-fold A5, og z-fold-a4-8panel variant-kort
- 170g markeret som "Populær" i papir-valget overalt
### Bug-fixes
- Audit-queue pris 100x for lav (81,91 kr → 8.191 kr) — formatDKK fik allerede øre, men siden dividerede med 100 først
- Dødelink `/brochures/new` (failed-state CTA) — ruten findes kun som
[type]/. Peger nu til katalog - Stale wizard cache — Step 5 + pris-fix synlig efter hard-refresh
### Begrænsninger (kræver eksternt setup)
- Frisbii kort-charge: pt. opretter pending_capture row uden faktisk charge — aktiveres når Frisbii API-keys er sat op (forventet onsdag)
- Dinero faktura-auto-generation: ikke integreret i Smaqly — Adrian sender faktura manuelt indtil videre
- PostNord/GLS tracking auto-fetch: tracking_url er manuelt felt indtil supplier-integration
- Fejlretning
CO₂-estimat fjernet og hero-defaults blødgjort
Mindre oprydninger så vi ikke laver claims vi ikke kan stå inde for.
- CO₂-aftryk fjernet fra ordre-status. Estimatet var keyword-baseret
per ret med faste g-værdier — ikke en rigtig LCA og potentielt problematisk under EU's Green Claims Directive der strammer 2026-27. Hvis en restaurant senere vil bruge det, gør vi det opt-in
- Hero-template defaults blødgjort — pizza-classic-skabelonen havde
"ÆGTE NAPOLITANSK PIZZA" + "smag fra Napoli" som default tekst. Det er kun sandt for nogle få restauranter. Defaults nu: "STENOVN OG FRISKE RÅVARER", "pizza som det skal være", "Velbekomme"
- TZ-bug fixet — åbningstider blev sammenlignet mod UTC i stedet
for CPH lokal tid, så en restaurant der åbnede 14:30 viste "lukket" indtil 16:30 dansk tid. Vi bruger nu Europe/Copenhagen konsekvent
- Stale-klik fejlbanner fjernet — når en preorder auto-accepteres
og personalet klikker en ETA-knap i et andet vindue, fik de tidligere et rødt "Ordre kan ikke længere accepteres"-banner. Nu silent redirect uden falsk fejl
- Ny feature
Smartere menu-tilkøb og menu-pakker
Menu-builderen kan nu håndtere både pakke-menuer (burger + pommes + sodavand) og per-kategori-tilkøb så kunderne kun ser relevante valg.
- Per-kategori tilkøb — addon-ingredienser kan scopes til specifikke
kategorier. En burger-kunde ser ikke længere pizza-toppings, en pizza-kunde ser ikke "ekstra bøf"
- Pakke-menu pattern — opret en modifier-gruppe "Gør til menu"
med 5 valg (Nej tak + 4 sodavand-varianter med tillæg). Kunden får ét rent valg per ret i stedet for parallelle modifier-grupper
- Billeder på modifier-valg — sodavand-options kan have et lille
thumbnail ved siden af radio-knappen, så kunden ser hvad de vælger
- Ret-numre vises på frontend — hvis du har sat et SKU på en ret
(fx "38" på Pinocchio Mexicansk Pizza nr. 38), vises det som række- nummer i listevisningen i stedet for at restarte fra 1 per kategori
- Sidebar fremhæver aktiv kategori i sort + bold så scroll-spy
er tydeligere
- Forbedring
Mobil-redesign på storefront og dashboard
Større pas på mobile-UX for både kunde-siden og admin-dashboardet.
- Hamburger-menu i restaurant-headeren (under md-bredde): logo +
konto + menu-ikon grupperet i højre side med 44×44 touch-targets
- Dashboard-hamburger på admin: sticky topbar + drawer fra venstre
med hele sidebaren, auto-lukker når et nav-link klikkes
- Mobil-kurv som bottom-sheet — klik "Se kurv"-knappen for at åbne
en sheet med alle linjer, qty-justering og Tjek ud-knap
- Login-CTA flyttet fra svag link i bunden af kurven til tydelig
rød pille over kurv-panelet (skjult for indloggede kunder)
- Item-modal portal-fix — modaller havde fixed-position-bug på
klikbare rækker pga transform-containing-block. Renderes nu via React Portal direkte under body
- Tilføj-knap mobil-padding justeret så tekst og pris ikke
klistrer til kanten på smalle skærme
- Søge-felt på menu-siden sticker nu under header i stedet for at
ryge bag den ved scroll
- Desktop-kurv: qty-stepper + Fjern-knap på hver linje i stedet
for kun at vise dem
- Fejlretning
Bestil"-knap i nav + hydration-fix
Den primære handling skal være ét tryk væk — ikke gemt under en menu-fane.
- "Bestil"-knap i kundens nav-bjælke for takeaway-restauranter, i
brand-farven, på både desktop og mobil. Peger direkte på menukortet hvor kunden lægger i kurv. Booking-only-restauranter beholder "Reservér bord" som primær — de to konkurrerer ikke
- Hydration mismatch fixet — nav rendrede tidligere conditional
pile-knapper baseret på flere props, hvilket gav ustabil DOM-struktur som Turbopack af og til kunne ikke matche. Nu én ternary der altid rendere præcis ét primært CTA — stabil struktur, ingen "Recoverable Error"-popup i dev
- Service worker v3 — gammel cache med stale HTML bliver nu aktivt
ryddet. Forsiden hentes altid frisk; offline-fallback er en dedikeret stabil side i stedet for muligvis forældet pre-cachet HTML
- Pænere install-prompt med download-pil i Installer-knap,
transparent X-luk på hover, og squircle app-ikon med subtil indre light-edge der ligner rigtig iOS/Android
- Ny feature
POS modtager nu telefonordrer med kunde-opslag
Kasse-systemet er udvidet med et komplet telefonordre-flow så personalet hurtigt kan tage imod ordrer over telefon uden at forlade POS-skærmen.
- Ordretype-toggle øverst i kurv-panelet: Spis her / Afhentning / Udbringning
- Live telefon-søgning efter 4+ cifre: kendte kunder dukker op i en
dropdown med navn + sidste leverings-adresse, ét klik pre-fylder alt
- Nye kunder oprettes automatisk når ordren afsendes
- Adresse-felter dukker op for udbringning, gemmes på ordren så
køkken og chauffør ser dem
- Ingredienser i POS — "Tilpas" (uden løg) og "Ekstra" (+bacon) er
nu tilgængelige direkte i POS-modalet, ikke kun på kunde-siden
- Pos-tiles vises kompakt når en kategori ikke har billeder (5-6
kolonner i stedet for 2-3 store tomme firkanter)
- Numre fra menukortet vises foran retten (1. Margherita, 2. Hawaii)
så personalet kan ringe ordrer ind på samme måde som kunderne
- Ny feature
Forudbestilling, auto-accept og stille-vindue
Restauranter kan nu modtage bestillinger udenfor åbningstid på en kontrolleret måde. Brugt af pizzeriaer der vil samle morgendagens ordrer ind natten over uden at vågne til en kø.
- Forudbestilling når lukket (toggle i Bestillingstyper) — kunden
får en grøn banner og en obligatorisk tids-vælger pre-udfyldt med næste åbnings-tidspunkt
- Auto-accept — preorders der ligger mere end 2 timer ude i
fremtiden accepteres automatisk så de ikke sidder fast i "Venter på dig"-status indtil personalet møder ind
- Stille-vindue — fra/til-tid hvor selv preorder er blokeret
(fx 21:00–06:00 så folk ikke bestiller kl. 03 til morgen-pickup)
- Køkken-app badge for forudbestilte ordrer (🌙 TIDLIG ORDRE — fre
11:00) så personalet ser hvilke ordrer der ikke skal laves nu
- Prep-tid som range pr. ordretype — pickup viser "ca. 15-20 min",
delivery viser "ca. 30-45 min" så forventningen matcher virkeligheden
- Min-ordre kun for levering — afhentning og dine-in har intet
minimum, så en enkelt pizza kan afhentes
- Ny feature
Dedikeret kvittering + MobilePay myShop QR-visning
To opgraderinger til ordre-flowet for restauranter uden online-betaling.
- MobilePay myShop QR — restauranter på "manuel"-payment kan
aktivere et stort blåt MobilePay-kort i checkout med QR-kode der pre-fylder beløbet. Sættes op i Settings → Betalingsudbyder med myShop-nummer + toggle "Vis på checkout"
- Bon-style kvittering — kunden klikker "Print kvittering / gem
som PDF" på ordre-status og åbner en dedikeret 80mm bon-side i ny fane. Monospace, dashed dividers, restaurant-header med CVR, fuld linje-liste med modifiers, totaler med moms-linje, betalingsmetode, receipt-footer. Print-knap skjules ved tryk så kun selve bon'en bliver til papir
- Aktiv kategori i sidebar fremhævet sort + bold så scroll-spy
er tydeligere på lange menuer
- Tid vises kun ét sted på checkout-siden — den løsrevne
"ca. 20 min tilberedningstid"-undertitel er fjernet til fordel for TimePickerens live-opdaterede range pr. ordretype
- Ny feature
Skabelon-galleriet får forhåndsvisning før anvendelse
Site-builderen har et nyt to-stage flow så restauratører kan se hele skabelonen renderet mod deres egen restaurant før de erstatter forsiden.
- Editorial galleri-redesign — asymmetrisk Bento-layout, hver
skabelon-card har magnetic spotlight-hover, brand-farver vist som swatches udenfor card, sticky kategori-navigation i sidebar
- Preview-route (/site/templates/[id]) renderer skabelonens blocks
server-side med restaurantens kontakt-info og åbningstider injiceret. Browser-chrome-mock omkring previewet så det er tydeligt at det er en simulering af forsiden
- Inline confirmation — sticky bottom-bar med "Anvend dette design"
morpher til en bekræftelses-strip ved klik ("Erstatter X blokke. Brand-farver opdateres. Tekst kan redigeres bagefter.") i stedet for en modal
- Tom forside viser nu udvalgte skabeloner direkte i empty-state
med ét-klik anvendelse, ikke kun en pegende note mod en separat tab
- Ny feature
Storefront-templates renderer nu rigtig forside med real data
Stor opgradering af hjemmesidebyggeren — preview = virkelighed.
- /r/{slug} loader nu fuld template-Demo når restauranten har valgt en
storefront-template (pizza-classic, burger-diner mv). Tidligere brugte vi kun template'ens Hero og lagde standard-flow nedenfor. Nu får kunden præcis det look ejeren så i preview — bare med ÅRSAT menu, anmeldelser, åbningstider og kontakt
- Kategori-tabs på menu-sektionen så kunden kan skifte mellem Pizza,
Burger, Pasta osv. uden side-genindlæsning. Aktiv tab i brand-farve, horisontalt scroll på mobil
- Standard-ingredienser pr. ret vises som "Ingredienser: tomat,
mozzarella, basilikum" under beskrivelsen
- Story-felter på restaurant_settings: ny admin-side
/dashboard/{slug}/site/storytil at redigere about-headline, paragraffer og pillars (op til 4 USP-kort). Tomme felter giver neutralt fallback i stedet for fake "Marco Bellini siden 1987"-historie- 2 nye templates:
as-japanese-tapas(Nagomi-stil sushi/tapas) +
pb-flamegrill(Burgerboss-stil flammegrill-burger med lokale råvarer)- Concept_type auto-filter på galleriet: takeaway-restauranter ser
nu 23 relevante templates som default (i stedet for 46 inkl. fine-dining/steakhouse de ikke bruger). Toggle "Vis alle" hvis owner vil udforske bredere
- Takeaway-native copy på alle 11 takeaway-templates — "Reservér
bord" erstattet med "Bestil online", risk-claims som "ægte napolitansk" fjernet, prep-tid bagt ind i hero-subs
- applyTemplate auto-fylder menu_highlights med rettens første 6
visible items så blokken faktisk viser noget straks efter apply
- Fejlretning
TastSelv-compliance — audit-spor på enhver ordre-sletning
Mindre teknisk men vigtigt: vi lukker et hul i ordre-audit-sporet.
- `admin_delete_orders` RPC er nu eneste tilladte vej til at slette
ordrer i DB'en. Funktionen kræver (1) at kalderen er super-admin, (2) et meningsfuldt reason, og (3) skriver til
audit_logFØR sletning — så selv hvis sletningen senere fejler, har vi sporet- Guard-trigger der allerede forhindrede direct DELETE er nu
kommenteret med compliance-noten: bypass må kun ske via RPC'en
- Ordrer voides stadig (ikke slettes) i normal drift — denne RPC er
kun til opsætning-cleanup og super-admin-fejlhåndtering
- Fejlretning
Konsistens-fixes på tværs af site
Diverse oprydninger så marketing-siderne taler med én stemme.
- CVR-nummer harmoniseret til 46479912 alle steder (5 forskellige forkerte numre var spredt rundt)
- Kontakt-email standardiseret til hello@smaqly.dk på alle marketing-sider (tidligere mix af 3 forskellige adresser)
- Pricing-tal ensartet: WoltCalculator + sammenligningstabel viser nu Professional-prisen (699 kr/md) konsistent
- Top-nav + footer udvidet så
/tryksagerog alle 6 konkurrent-alternativ-sider er reachable - Tryksager-mockups bruger nu Smaqly som demo-restaurant i stedet for Café Crave
- Fejlretning
Mobile performance + tilgængelighed
PageSpeed Insights afdækkede mobile Largest Contentful Paint på 10 sekunder. Rettet en række render-blokerende issues så forsiden nu paint'er hurtigt på mobile 4G.
- Hero-tekst server-rendres synlig fra start i stedet for at vente på JavaScript-hydration
- Sentry session-replay slået fra (sparer ~60-80KB JS på hver page-load)
- Sticky-morph overskrifter rendres kun én gang — ikke dobbelt for mobile/desktop
- Karrusel-JSON-LD på
/templatesrettet til valid SoftwareApplication-format - Heading-tekst med animeret word-split har nu korrekt aria-label så SEO + screen readers læser "Bygget af danskere" i stedet for "Byggetafdanskere"
- Forbedring
SEO-fundament + programmatic landings styrket
Stort SEO-løft inden Google Search Console-onboarding. Schema.org-markup, BreadcrumbList og Product/SoftwareApplication-data udrullet på alle marketing-sider — Google Rich Results validerer nu uden fejl.
- Sitemap udvidet med 91+ URLs (templates, tryksager, funktioner, byer)
- Karrusel-rich-results aktiveret for
/templates(10 templates som SoftwareApplication-items) - 6 konkurrent-alternativ-sider (Wolt, JustEat, Foodora, Hungry, OrderYoyo, MyShop) udvidet med templates-sections, AI-værktøjer og FAQ
- Lokal-SEO på 20 danske byer — by-specifik content, sammenligningstabeller og interne links
- robots.txt udvider explicit allow til alle nye marketing-routes
- Forbedring
Super-admin kan nu installeres som app
Smaqly Ops (super-admin) er nu fuldt installerbar som standalone app — direkte adgang til platform-overblik uden browser-chrome. Manifest, service worker og install-prompt var allerede bygget; en bug i layout-meta-tags forhindrede browsere i at opdage manifestet.
- Chrome/Edge desktop: install-icon dukker op i URL-bar
- iOS Safari: Share → "Føj til hjemmeskærm" giver standalone Smaqly Ops-app
- Android Chrome: hamburger-menu → "Install app"
- App-shortcuts (long-press app-icon) til Overblik, Restauranter, MRR, Live feed og Stock-katalog
- Forbedring
Ny /funktioner-side + forside-redesign
Komplet feature-showcase på
/funktionerder viser hele platformen i én oversigt — 10 templates, 11 AI-værktøjer, POS-modul, realtime køkken-app, PWA-apps, multi-restaurant portal og marketing-værktøjer.- Forsiden har fået et stort templates-showcase, en AI-pakke-teaser og fornyet sammenligning vs. Wolt/JustEat
- Stiftere, presse og changelog-links er kommet ind i top-nav + footer
- Cookie-banner ærligere — nye fakta-baserede stats (10 templates, 11 AI, 47+ funktioner) erstatter falske kundetal indtil rigtige reviews er der
- Ny feature
10 storefront-templates med fulde demo-forsider
Restaurant-ejere kan nu vælge mellem 10 brancheskræddersyede storefront-templates — pizza, burger, sushi, café, grill, sandwich, pasta, kiosk, mexican og fine dining. Hver template har sin egen typografi, layout og demo-data, så man kan se præcis hvordan ens egen restaurant ville se ud.
- Browse-side på
/templatesmed live-preview af alle 10 - Per-template fuld demo-forside med hero, menu, om, anmeldelser, kontakt
- Vælg + skift template direkte fra
/dashboard/[slug]/settings/template— live på sekundet - Brand-farver, logo og hero-billede flyder ind fra restaurantens egne settings
- Browse-side på
- Ny feature
Tryksager-modul med AI-design og 5-dages levering
Lav menukort, flyers, brochurer, visitkort, plakater, stickers og bord-QR-koder direkte fra din Smaqly-menu. AI henter retter, logo og farver fra din storefront, foreslår 3 design-varianter — du godkender, vi printer og leverer på 5 hverdage.
- 8 produkt-typer i print-on-demand katalog
- Premium papir: 300g matte, 350g uncoated, hot foil-stamping, spot UV-lak
- Brand-konsistent med din storefront, bord-QR-koder og digitale menu
- Tilgængelig på Professional-planer fra 199 kr/md eller pay-per-job fra 449 kr
- Egen landing-side på
/tryksagermed fuld katalog + use cases
- Ny feature
Tilføj retter med AI-foto
Snap et billede af en ret — AI foreslår navn, beskrivelse, kategori, allergener og diet-tags. Du udfylder pris og størrelser, retter ved behov og gemmer.
- Virker på mobil med kamera-capture direkte fra dashboard
- Auto-mapper foreslået kategori til dine eksisterende, eller opretter ny
- Inkluderet i Pro og Business — koster ~4 øre per kald af dit AI-budget
- Ny feature
GDPR cookie-banner med multi-tenant isolation
Alle restaurant-storefronts har nu deres eget cookie-banner med restaurantens navn og kontakt-info. Slutkundens samtykke gemmes per restaurant — ingen samtykke smitter mellem sider hvis kunden bestiller fra flere restauranter.
- Tre valg: Acceptér alle, Kun nødvendige, eller Vælg selv (fingranuleret analyse + marketing)
- Auto-genereret privatlivspolitik per restaurant med CVR + kontakt
- Smaqly er databehandler — restauranten er dataansvarlig over for sine slutkunder
- Ny feature
International ekspansion — Sverige, Norge, Tyskland
Smaqly understøtter nu drift på tværs af DK, SE, NO og DE. Restauranter på smaqly.se / smaqly.de auto-detekteres via domænet og får relevant lokalisering, valuta og betalings-providers.
- Land-specifik feature-matrix (fx Swish er kun aktiv i Sverige)
- SAF-T compliance-eksport routes automatisk efter restaurantens land
- Hver tenant kan tilføje oversættelser til menu-items per sprog
- Ny feature
Point-system til loyale kunder
Business-tier får nu et komplet point-system, separat fra det eksisterende stempelkort. Kunder optjener point ved hver ordre og kan veksle dem til rabat ved næste køb.
- Kalibrér selv: optjenings-rate, indløsnings-rate, min/max indløsning, velkomst-bonus, udløb
- Top-10 kunder efter balance + manuel justering for korrektion eller bonus
- Auto-award når ordre markeres betalt — idempotent og audit-logget