← Terug naar portfolio
Case study

Atom-platform

Eigen platform op een eigen server, vijf modules achter één login.

De aanleiding

Het begon in juni 2026 als één dashboard: portefeuillewaarde, koersen, een jaaroverzicht voor box 3. Ik had geen developer nodig om te zien wat er nodig was, en geen zin om op iemand anders te wachten. Vanaf 23 juli groeide het dashboard uit tot iets groters: een lijstjesmaker, AI-functies en een cursussenmodule kwamen erbij, module voor module. Op 27 juli werd het een apart project, los van de beleggingsinhoud die het toont.

Wat ik bouwde

Vijf modules achter dezelfde login. Het beleggingsdashboard toont koersen, een waarde-inleg-grafiek, benchmarks en het jaaroverzicht voor box 3. De lijstjesmaker werkt met categorieën per item en meerdere gebruikers, met drie AI-functies erbovenop: een lijst maken uit een zin, een bestaande lijst laten checken en items toevoegen in gewone taal. De cursussenmodule volgt voortgang per gebruiker; de eerste cursus is mijn eigen Scrum Guide-training, acht modules, drieënvijftig vragen. De loopbaanmodule is een vergelijkingstabel voor vacatures met scores per dimensie, die ik zelf wekelijks gebruik tijdens mijn eigen zoektocht. Een startpagina met kengetallen per module houdt alles bij elkaar, en sinds augustus heeft het platform een eigen sessie-login met gebruikersbeheer en rechten per module.

Het platform draait achter die eigen login: de loopbaanmodule bevat oordelen over sollicitatiebedrijven en het dashboard echte portefeuillecijfers, dat blijft privé. Een demo-account met vaste voorbeelddata is er wel; vraag ernaar als je het platform wilt zien.

Hoe

Python uit de standaardbibliotheek, bewust zonder frameworks: elke module is een kleine eigen service op localhost met een eigen SQLite-database, beheerd door systemd, met nginx ervoor. De login is zelf gebouwd (sessies, rate-limiting, rechten per module) en faalt gesloten: valt de login-service uit, dan weigert elke module alle toegang. De AI-functies lopen via n8n-workflows op Groq, waarbij de site elk AI-antwoord zelf streng valideert voordat er iets wordt weggeschreven; de AI heeft geen toegang tot de database.

Python (stdlib) · SQLite · nginx · systemd · n8n · Groq · git-deploy

Wat het opleverde

Een platform van ruim zevenduizend regels eigen code dat ik zelf in productie houd, van eerste idee tot vijfde module. De loopbaanmodule liet zich meteen bewijzen: bij de migratie kwamen dezelfde zestien vacatures, zesennegentig scores en zes acties terug als in mijn eigen kladbestand, en ik gebruik het scherm sindsdien elke week om vacatures naast elkaar te leggen.

Wat dit bewijst

Ik weet wat ik van een developer vraag omdat ik het zelf heb gedaan: de database-inrichting, de deploy, en de keuzes over wat je wel en niet aan AI overlaat. De AI mag hier voorstellen doen, de server valideert en schrijft. De demo-gebruiker kan niets stukmaken, want de server weigert zijn schrijfacties, ook als iemand de interface omzeilt. Dat soort afwegingen is dezelfde vertaalslag die ik in mijn werk maak tussen klantvraag en techniek, alleen zit ik hier aan beide kanten van de tafel.

Contact

Vragen of een gesprek?

Ik denk graag mee over productrollen bij softwarebedrijven in groeifase, in en rond Utrecht. Een bericht is zo gestuurd.