[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-nl-\u002Fblog\u002Fcustomer-portal-\u002Fblog\u002Fcustomer-portal":3,"blog-post-surround-nl-\u002Fblog\u002Fcustomer-portal-\u002Fblog\u002Fcustomer-portal":238,"related-posts-nl-\u002Fblog\u002Fcustomer-portal-\u002Fblog\u002Fcustomer-portal":245},{"id":4,"title":5,"authors":6,"badge":13,"body":15,"categories":216,"date":219,"description":220,"extension":221,"image":222,"meta":224,"navigation":225,"path":226,"readingTime":227,"seo":228,"stem":229,"tags":230,"__hash__":237},"posts_nl\u002Fblog\u002F1.customer-portal.md","Hoe maak je eenvoudig een portal voor je klanten",[7],{"name":8,"to":9,"avatar":10,"bio":12},"Marcel Posdijk","\u002Fauthors\u002Fmarcel-posdijk",{"src":11},"\u002Fimages\u002Fteam\u002Fmarcel.jpg","Founder en lead developer bij Ludulicious B.V. met meer dan 25 jaar ervaring in webontwikkeling en software architectuur.",{"label":14},"Klantenportal",{"type":16,"value":17,"toc":203},"minimark",[18,23,27,38,42,45,50,69,73,90,94,108,112,137,141,144,195],[19,20,22],"h2",{"id":21},"nog-een-klantenportal","Nog een klantenportal?",[24,25,26],"p",{},"Waarom hebben we nog een klantenportal nodig? Er zijn veel oplossingen op de markt, en ze werken allemaal prima.\nMaar wij denken dat er een betere manier moet zijn die niet alleen toegankelijk is voor grote bedrijven, maar ook voor de kleinere.\nOnze nieuwe klantenportal maakt het gemakkelijk voor u om een nieuwe installatie te maken en alle functionaliteit toe te voegen die u nodig heeft.",[24,28,29],{},[30,31],"img",{"alt":32,"className":33,"height":35,"src":36,"width":37},"computer",[34],"rounded-lg",600,"https:\u002F\u002Fpicsum.photos\u002Fid\u002F3\u002F1000\u002F600",1000,[19,39,41],{"id":40},"de-basisonderdelen","De basisonderdelen",[24,43,44],{},"Wat zijn de basisonderdelen van een klantenportal?",[46,47,49],"h3",{"id":48},"layouts-en-themas","Layouts en thema's",[51,52,53,57,60,63,66],"ul",{},[54,55,56],"li",{},"Een layout voor inloggen en registreren",[54,58,59],{},"Een layout voor het admin gedeelte",[54,61,62],{},"Een layout voor het klantengedeelte",[54,64,65],{},"Kleurenschema's, lettertypen en klantspecifieke stijlen",[54,67,68],{},"Een x-aantal vooraf gedefinieerde thema's",[46,70,72],{"id":71},"beveiliging","Beveiliging",[51,74,75,78,81,84,87],{},[54,76,77],{},"Mogelijkheid om in te loggen of te registreren",[54,79,80],{},"Ondersteuning voor meerdere inlogmethoden (google, facebook, x, github, microsoft, e-mail\u002Fwachtwoord)",[54,82,83],{},"Flow voor e-mail bevestiging (voor e-mail\u002Fwachtwoord login)",[54,85,86],{},"Flow voor wachtwoord vergeten (voor e-mail\u002Fwachtwoord login)",[54,88,89],{},"2 Factor authenticatie met authenticator app",[46,91,93],{"id":92},"admin-sectie","Admin sectie",[51,95,96,99,102,105],{},[54,97,98],{},"Klantbeheer (lijst, aanmaken, bijwerken en verwijderen van klanten)",[54,100,101],{},"Gebruikersbeheer (lijst, aanmaken, bijwerken en verwijderen van gebruikers)",[54,103,104],{},"Rol \u002F toestemmingsbeheer",[54,106,107],{},"Aangepaste velden voor klant en gebruikers",[46,109,111],{"id":110},"klant-sectie","Klant sectie",[51,113,114,117,120,123,134],{},[54,115,116],{},"Dashboard pagina",[54,118,119],{},"Bestellingen lijst",[54,121,122],{},"Facturen lijst",[54,124,125,126,133],{},"Factuur betalen (integreren met verschillende betalingsproviders: Stripe, ",[127,128,132],"a",{"href":129,"rel":130},"https:\u002F\u002Fpolar.sh\u002F",[131],"nofollow","Polar.sh",")",[54,135,136],{},"Verschillende klantspecifieke gegevens, te bepalen en ontwikkelen door of voor de specifieke klant",[19,138,140],{"id":139},"tech-stack","Tech stack",[24,142,143],{},"We houden de tech stack eenvoudig zodat slechts 1 service en 1 database hoeft te worden gedeployed.",[51,145,146,155,164,173,181,184,187],{},[54,147,148,149,154],{},"Voor de frontend en backend gebruiken we ",[127,150,153],{"href":151,"rel":152},"https:\u002F\u002Fnuxt.com\u002F",[131],"Nuxt 4"," in 1 project.",[54,156,157,158,163],{},"Voor de UI gebruiken we ",[127,159,162],{"href":160,"rel":161},"https:\u002F\u002Fui.nuxt.com\u002F",[131],"Nuxt UI"," dat gebaseerd is op Tailwind CSS en Headless UI",[54,165,166,167,172],{},"Voor de database gebruiken we ",[127,168,171],{"href":169,"rel":170},"https:\u002F\u002Fwww.postgresql.org\u002F",[131],"PostgreSQL",".",[54,174,175,176],{},"Voor PostgreSQL hosting gebruiken we ",[127,177,180],{"href":178,"rel":179},"https:\u002F\u002Fneon.com\u002F",[131],"Neon",[54,182,183],{},"Als programmeertaal gebruiken we TypeScript",[54,185,186],{},"Voor de ORM gebruiken we Prisma.",[54,188,189,190],{},"Voor authenticatie gebruiken we ",[127,191,194],{"href":192,"rel":193},"https:\u002F\u002Fwww.better-auth.com\u002F",[131],"better-auth",[24,196,197,198,172],{},"De deployment regelen we via een Docker container op ",[127,199,202],{"href":200,"rel":201},"https:\u002F\u002Fvercel.com\u002F",[131],"Vercel",{"title":204,"searchDepth":205,"depth":205,"links":206},"",2,[207,208,215],{"id":21,"depth":205,"text":22},{"id":40,"depth":205,"text":41,"children":209},[210,212,213,214],{"id":48,"depth":211,"text":49},3,{"id":71,"depth":211,"text":72},{"id":92,"depth":211,"text":93},{"id":110,"depth":211,"text":111},{"id":139,"depth":205,"text":140},[217,218],"Webontwikkeling","Productontwikkeling","2025-10-22","Wij creëren een spannend nieuw product dat klanten in staat stelt snel hun eigen klantenportal te maken. Het zal een startpunt zijn dat kan worden aangepast en uitgebreid.","md",{"src":223},"https:\u002F\u002Fpicsum.photos\u002Fid\u002F3\u002F640\u002F360",{},true,"\u002Fblog\u002Fcustomer-portal",5,{"title":5,"description":220},"blog\u002F1.customer-portal",[14,231,232,233,234,235,236],"Nuxt.js","Authenticatie","SaaS","TypeScript","Performance Optimalisatie","Architectuur Patronen","RueR17oLjbWcLfiJIlw2Dr-qxKqs6yawJiS0X6yyBMo",[239,240],null,{"title":241,"path":242,"stem":243,"description":244,"children":-1},"PostgreSQL Configuratie: De Instellingen Die Ertoe Doen","\u002Fblog\u002Fpostgresql-configuration-optimization","blog\u002F10.postgresql-configuration-optimization","Leer de essentiële PostgreSQL configuratie instellingen die performance beïnvloeden, van geheugen allocatie tot connection pooling. Gebaseerd op echte productie ervaring met het optimaliseren van databases voor high-traffic applicaties.",[]]