Maatwerk in Joomla: doorbouwen op wat er al staat
Een CRM-koppeling, een eigen component of een headless frontend hoeft geen nieuwe website te betekenen. Zo bouwen we door op je bestaande Joomla.
"Dat kan niet in Joomla, daar moeten we een nieuwe site voor bouwen." Wij horen die zin regelmatig van klanten die hem ergens anders hebben gehoord. En soms klopt het — maar veel vaker is het een antwoord van iemand die liever een nieuw project verkoopt dan zich verdiept in wat er al staat.
Joomla is juist gebouwd om uitgebreid te worden. Componenten, modules, plugins en template-overrides zijn geen omweg maar de bedoelde route. Een site die tien jaar meegaat en meegroeit met je organisatie is geen uitzondering; het is wat er gebeurt als je erop doorbouwt in plaats van hem elke vijf jaar te vervangen.
Wat we zoal bouwen
Drie soorten opdrachten komen het vaakst langs. In algemene termen, want het concrete werk van klanten blijft van klanten.
Koppelingen met CRM, ERP en andere systemen
Het meest gevraagde maatwerk, en meestal ook het meest lonend. Denk aan een aanvraagformulier dat rechtstreeks een lead aanmaakt in het CRM, voorraad die uit het ERP komt in plaats van handmatig te worden bijgehouden, of orders die automatisch de boekhouding in lopen. Elke koppeling vervangt handwerk dat iemand nu elke dag doet.
Technisch valt of staat het met de andere kant. Een systeem met een nette REST-API en documentatie is overzichtelijk werk. Een pakket waar alleen een SOAP-service of een nachtelijke CSV-export uit komt, vraagt meer — dan bouwen we een tussenlaag die de rommel opvangt zodat je Joomla-site er geen last van heeft. Wat we in beide gevallen inbouwen: foutafhandeling, logging en een herhaalmechanisme. Een koppeling die stilletjes stopt is erger dan geen koppeling, want dan denk je nog steeds dat het werkt. Meer hierover op de pagina over API-koppelingen.
Een eigen component
Als je organisatie iets beheert wat niet in artikelen past — een projectendatabase, een ledenadministratie, een reserveringssysteem, een productcatalogus met eigen logica — dan kun je dat in bestaande extensies proberen te wringen, of je bouwt er een component voor.
Wij beginnen die afweging altijd bij de vraag of het al bestaat. Is er een goed onderhouden extensie die 90% van je wensen dekt, dan is die extensie plus een stukje maatwerk goedkoper en veiliger dan alles zelf bouwen. Maar als je wensen kenmerkend zijn voor jouw manier van werken, dan kost het in een standaardextensie persen op termijn meer: elke update wordt spannend en elke uitzondering wordt een omweg. Zie component ontwikkeling voor hoe zo'n traject loopt.
Een headless frontend
Joomla heeft sinds versie 4 een volwaardige web services-API. Daarmee kun je de beheeromgeving gebruiken zoals je gewend bent, terwijl de voorkant een los gebouwde applicatie is die de content via de API ophaalt. Dat is interessant als snelheid doorslaggevend is, als je dezelfde content op meerdere kanalen nodig hebt, of als er een app naast de website komt.
Het is geen standaardadvies. Een headless opzet betekent twee dingen onderhouden in plaats van één en je levert een deel van het live-bewerkingsgemak in. Maar voor een organisatie die haar content op drie plekken kwijt moet, is het precies de goede stap. Zie Joomla headless.
Geen van deze drie vereist dat je site opnieuw wordt gebouwd. Alle drie zijn uitbreidingen op wat er al draait, met behoud van je content, je URL's en je opgebouwde posities in Google.
Waarom we niet eerst alles slopen
Een bestaande site opnieuw bouwen is voor een bureau de comfortabele optie. Je begint schoon, je hoeft niemands keuzes te begrijpen, en de factuur is een stuk hoger. Voor de klant is het zelden de beste optie, en wel om vier redenen.
- Je gooit werkende dingen weg. In een site van jaren oud zit opgeloste logica: uitzonderingen, afspraken, kleine aanpassingen die ooit ergens uit voortkwamen. Bij een rebuild komt driekwart daarvan pas boven water als het mis is.
- Je zet je SEO op het spel. Andere URL's, een andere structuur, andere teksten. Met een goed redirectplan blijft het beheersbaar, zonder plan verlies je maanden aan posities die je eerder jaren hebben gekost.
- Je redactie moet opnieuw leren werken. Onderschat niet wat het kost als iedereen die content beheert zijn routine kwijt is.
- Het lost het echte probleem vaak niet op. Is de klacht "we kunnen geen offertes koppelen", dan is dat geen reden voor een nieuwe website — dat is een koppeling.
Er zijn wel degelijk situaties waarin opnieuw beginnen de juiste keuze is: een installatie die zo ver achterloopt dat upgraden niet meer verantwoord is, een template dat is dichtgetimmerd met core-aanpassingen, of een organisatie die inhoudelijk een andere kant op gaat. Dan zeggen we dat ook, en dan gaat het over migratie & rebuild. Maar dat is een conclusie na onderzoek, geen openingsbod.
Hoe we werken
- Verkenning. We kijken naar je installatie, je versies, je extensies en je maatwerk, en we bespreken wat je wilt bereiken — niet welke oplossing je in gedachten had. Vaak blijkt de vraag achter de vraag eenvoudiger op te lossen.
- Technisch ontwerp en begroting. Je krijgt op papier wat er gebouwd wordt, hoe het in je site past, wat het gaat kosten en waar de risico's zitten. Grote opdrachten knippen we op in stukken die los opleverbaar zijn.
- Bouwen op een testomgeving. Een kopie van je site, nooit rechtstreeks op productie. Je kijkt onderweg mee, zodat bijsturen goedkoop blijft.
- Testen en opleveren. Functioneel testen, testen met echte data en een controle of de rest van de site nog doet wat hij deed. Daarna live, op een rustig moment.
- Overdracht. Broncode, documentatie en uitleg aan de mensen die ermee gaan werken.
We bouwen volgens de standaardstructuur van Joomla, zonder aanpassingen in de core en met template-overrides in plaats van gewijzigde originelen. Dat is geen principekwestie maar praktisch: het betekent dat de eerstvolgende Joomla-update jouw maatwerk niet sloopt. Wat je krijgt is van jou, inclusief code en documentatie, en je zit nergens aan vast. Wil je weten wat de uren kosten, kijk dan op de tarievenpagina — die staat er gewoon op.
Beginnen bij wat er al staat
Heb je een wens waarvan je is verteld dat hij niet kan? Leg hem ons voor. Meestal kan het wel, soms kan het anders dan je dacht, en af en toe is het eerlijke antwoord dat het te duur is voor wat het oplevert. Dat laatste hoor je dan ook.
Delen