mikkelmanniche.dk
Den side du står på. Håndskrevet fra bunden, uden WordPress, tema eller byggeproces, og skrevet på dansk, engelsk og tysk. Videoen viser prissiden, fra fast pris til betaling.
Udgangspunktet
Jeg ville have en side, der gør det, jeg tilbyder andre: hurtig, uden unødvendige tredjeparter og ærlig om, hvad der måles. Derfor var standardløsninger som Google Fonts og færdige cookiebanner-scripts udelukket, fordi de selv sender data videre, før nogen har sagt ja.
Hvad der blev bygget
Sider på tre sprog i håndskrevet HTML, CSS og lidt JavaScript. Skrifterne ligger på mit eget domæne. Statistikken starter først, når du trykker accepter; siger du nej, sker der ingenting.
Prissiden har faste priser, og betalingen sker via Stripe direkte fra siden. Videoen ovenfor viser forløbet fra valg af pakke til betaling.
Faste engangspriser, uden moms, citeret fra priser.html. Kun "Større hjemmeside" er en vejledende startpris.
Bagved
Bag siden ligger et administrationspanel til henvendelser, postkasser og besøgstal, bygget i Vite og React, og et lead-værktøj til at finde nye kunder. Notifikationer er valgfrie og slået fra som standard.
Adminpanelets stackpackage.json
- Vite 6Byg og lokal server
- React 19+ react-router-dom
- Tailwind CSS 4+ HeroUI
- PHP-APInpm run api, lokal router
Lokalt køres API'et af npm run api mod testdata; testdata nulstilles med npm run testdata, ellers virker testlogin ikke.
Teknikken
Almindelig HTML og CSS uden framework, samme tilgang som på terjepedersen.dk. En streng sikkerhedsregel i browseren tillader kun indhold fra mit eget domæne, så intet kan hentes fra andre steder uden at jeg har skrevet det ind.
Sikkerhedsregel i .htaccessContent-Security-Policy
default-src 'self'; script-src 'self' https://www.googletagmanager.com https://datafa.st https://www.googleadservices.com https://googleads.g.doubleclick.net https://www.google.com; connect-src 'self' https://admin.mikkelmanniche.dk https://datafa.st https://*.google-analytics.com …; img-src 'self' data: https://*.google-analytics.com …; style-src 'self' 'unsafe-inline'; font-src 'self'; form-action 'self'; frame-ancestors 'self'; base-uri 'self'
-
/assets/style.cssEget domæne tilladt -
fonts.googleapis.comGoogle Fonts — font-src tillader kun 'self' blokeret -
cdnjs.cloudflare.comFremmed script-CDN, ikke i script-src blokeret -
www.googletagmanager.com/gtag/jsI script-src, men indlæses først når du har sagt ja tilladt af reglen -
www.youtube.com/embed/…Fremmed iframe, ingen frame-src-undtagelse blokeret
Reglen sender kun script, stil, skrift og billeder til de domæner, den selv nævner — resten falder tilbage på default-src 'self' og bliver stoppet af browseren, ikke af serveren.