Eigen product — CleverTech
Eigen product van CleverTech (cleversocials.nl), geen klantopdracht. De genoemde resultaten zijn geverifieerde product- en techniekfeiten uit de codebase, geen gemeten business-resultaten: er worden bewust geen klant-, gebruikers- of omzetcijfers geclaimd. De genoemde iOS-client staat in de codebase en wordt niet gepresenteerd als publiek uitgebrachte app.

CleverSocials (cleversocials.nl) is een eigen product van CleverTech: 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. 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:
De opdracht aan onszelf was dus niet "bouw een social-tool", maar "bouw de architectuur waarop dat product jaren kan blijven groeien".
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.
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.
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.
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.
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.
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.
CleverTech 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.
Direct publiceren naar drie sociale platformen (LinkedIn, Instagram en Facebook) met werkende OAuth-koppelingen en een eigen preview per platform
We bouwen voor jouw bedrijf wat we voor deze klant bouwden — met heldere afspraken vooraf. 30 min vrijblijvende scoping.