CleverSocials: SaaS-platform van prototype naar productie

De uitdaging
CleverSocials (cleversocials.nl) is een eigen product van CleverTech AI: een platform waarmee een merk sociale content genereert, inplant en direct publiceert naar LinkedIn, Instagram en Facebook.
De eerste generatie ontstond eind 2025 als een snel prototype in een low-code/prototyping-omgeving. Dat prototype deed waarvoor het bedoeld was — het idee valideren — maar het was geen product, en begin 2026 is het platform daarom volledig herbouwd als productie-architectuur.
Die overgang is precies de vraag waar bedrijven mee komen die een SaaS laten ontwikkelen: wat komt er kijken tussen "het werkt in een demo" en "hier kan een organisatie jarenlang op draaien"?
Vier dingen maakten die herbouw noodzakelijk:
- Een prototype-omgeving is geen fundament. Snelle prototyping-tools ruilen bewust controle in voor snelheid: je krijgt geen eigen datalaag om te versioneren, geen plek voor geautomatiseerde tests en geen grip op hoe zwaar werk wordt afgehandeld. Voor validatie is dat een goede ruil, voor een product dat doorontwikkeld moet worden niet.
- Publiceren naar drie platformen zijn drie verschillende contracten. LinkedIn, Instagram en Facebook hebben elk een eigen API, een eigen OAuth-autorisatiestroom en eigen regels voor formaat, media en preview. Eén generieke "post"-knop bestaat niet; die illusie kost je later precies de tijd die je meende te besparen.
- Merkstem is een datavraagstuk, geen promptregel. Het platform moet per merk meerdere stemprofielen kunnen vasthouden en gegenereerde tekst kunnen scoren op consistentie met het gekozen profiel. Dat vraagt om opslag en vergelijking van embeddings — een component dat je niet achteraf onder een bestaande applicatie schuift.
- Batch-generatie past niet in een HTTP-request. Dertig of meer posts in één ronde laten genereren is langlopend werk. Zonder wachtrij en achtergrondverwerking is dat geen functie maar een time-out.
De opdracht aan onszelf was dus niet "bouw een social-tool", maar "bouw de architectuur waarop dat product jaren kan blijven groeien".
De aanpak en oplossing
De herbouw volgde de volgorde die we ook bij klantprojecten aanhouden bij SaaS-ontwikkeling: eerst de datalaag en de verwerkingslaag, dan de integraties, dan het werkoppervlak.
1. SaaS-architectuur: van prototype naar productie
De backend draait op Python met FastAPI, met PostgreSQL als primaire database en Redis voor caching en wachtrijen. Alles wat te lang duurt voor een request — batch-generatie, publicatie-jobs, analyses — loopt via Celery als achtergrondtaak.
Het datamodel staat in SQLAlchemy, schemawijzigingen gaan uitsluitend via Alembic-migraties, en inkomend en uitgaand verkeer wordt gevalideerd met Pydantic.
Dat lijstje is niet spectaculair, en dat is het punt. Het verschil tussen een prototype en een productie-SaaS zit zelden in de zichtbare functies; het zit in de vraag of je een schemawijziging kunt terugdraaien, of zwaar werk de gebruiker blokkeert, en of iemand anders dan de bouwer de codebase kan overnemen.
Ontwerpdoel van de herbouw: een codebase waarop jaren doorontwikkeld kan worden, met migraties, tests en achtergrondverwerking als fundament in plaats van als bijzaak. Dit is het gestelde doel van de herbouw — geen na oplevering gemeten uitkomst.
2. Brand-voice-learning: merkstem als datamodel
Het onderscheidende onderdeel is brand-voice-learning: een merk legt niet één toon vast, maar meerdere stemprofielen — bijvoorbeeld een zakelijk profiel voor LinkedIn en een losser profiel voor Instagram.
Gegenereerde content krijgt een consistency-score ten opzichte van het gekozen profiel, zodat afwijkingen zichtbaar worden voordat er iets gepubliceerd wordt.
Daarvoor is een aparte opslaglaag nodig: Qdrant, een vector-database voor embeddings, draait naast PostgreSQL. Taalverwerking loopt via spaCy. De generatie zelf is LLM-gestuurd en verwerkt een hele batch in één ronde: 30 of meer posts, als achtergrondtaak, met de stemprofielen als kader.
3. API-integraties met LinkedIn en Meta
Publiceren gebeurt rechtstreeks vanuit het platform naar LinkedIn, Instagram en Facebook, met per platform een eigen preview zodat je ziet wat er daadwerkelijk verschijnt. Elke koppeling heeft een eigen OAuth-autorisatiestroom en een eigen set publicatieregels; die verschillen zijn in de integratielaag geabsorbeerd in plaats van doorgegeven aan de gebruiker.
Deze koppelingen zijn geen demo: er wordt dagelijks mee gepubliceerd. Daarnaast zijn er integraties met Hootsuite, Buffer en Canva voor teams die daar al in werken.
4. De contentkalender als werkoppervlak
De frontend is React met TypeScript (via Vite), met MUI als componentenbibliotheek, TanStack Query voor server-state, Zustand voor client-state en Recharts voor de rapportagegrafieken. Het hart is een contentkalender met maand- en weekweergave, drag-and-drop-planning, bulk-acties, gap-detectie (welke dagen zijn nog leeg) en AI-tijdsuggesties voor het inplannen.
In de repository staat daarnaast een Swift/iOS-client; die is onderdeel van de codebase en wordt niet gepresenteerd als een opgeleverde, publiek uitgebrachte app.
5. Kwaliteitsstack en uitrol
De testlaag loopt langs beide kanten van de stack: pytest voor de Python-backend, Jest met React Testing Library voor de frontend, en Playwright voor end-to-end-tests door de echte interface heen.
Statische kwaliteit wordt afgedwongen met Black, Ruff en mypy aan de Python-kant en ESLint aan de TypeScript-kant; uitrol gebeurt via Docker Compose achter Nginx.
Dogfooding: we draaien er zelf op
CleverTech AI publiceert de eigen sociale kanalen via CleverSocials, met een eigen integratie op de API van het platform. Dat is het strengste testregime dat je een eigen product kunt geven: elke ruwe rand is meteen je eigen probleem, en elke ontbrekende functie merk je op de dag dat je hem nodig hebt — niet uit een supportticket.
Wat het opleverde
Direct publiceren naar drie sociale platformen (LinkedIn, Instagram en Facebook) met werkende OAuth-koppelingen en een eigen preview per platform
- 30+
- Batch-generatie van 30 of meer posts per ronde, als achtergrondtaak via Celery
- voice
- Brand-voice-learning met meerdere stemprofielen per merk en consistency-scoring op gegenereerde content
- Qdrant
- Qdrant als vector-database voor embeddings, naast PostgreSQL en Redis in de backend
- kalender
- Contentkalender met maand- en weekweergave, drag-and-drop, bulk-acties, gap-detectie en AI-tijdsuggesties
- 8tools
- Kwaliteitsstack over beide kanten van de stack: pytest, Jest, React Testing Library, Playwright, Black, Ruff, mypy en ESLint
- 3tools
- Integraties met Hootsuite, Buffer en Canva naast de directe publicatiekoppelingen
- ~3.164
- Circa 3.164 commits op de productie-codebase sinds januari 2026
Vergelijkbare cases
Business Center Altena (HVS Trading, Sleeuwijk)Lokale Vindbaarheid + Moderne Site voor Business Center Altena
21 kernenlokale dekking zonder doorway-pagina’s
Eigen product — CleverTech AICleverKeywords: keyword-research-SaaS op DataForSEO-data
SaaSeigen product, live op cleverkeywords.nl
Klaar voor zulke resultaten?
Gratis AI-scan: binnen 48 uur een rapport met de AI-kansen met de hoogste ROI voor jouw bedrijf — concreet, geen verkooppraatje.

