Backend
Een website bestaat grofweg uit twee delen: de frontend (wat je in je browser ziet als je de site bezoekt), en de backend (code die op een server draait en uiteindelijk genereert wat de browser moet weergeven). Er is altijd wat overlap, maar gelukkig specialiseren wij in beide :)
PHP
Voor "klassieke" websites (die een compleet gegenereerde pagina naar de browser sturen) hebben we bizar veel ervaring met de veelgebruikte programmeertaal PHP. De meeste open source pakketten zijn in PHP geschreven, dus in principe kunnen we vrijwel overal wel mee overweg. Het liefst gebruiken we ons zelf ontwikkelde framework en CMS, domweg omdat we eigenwijs zijn en vinden dat we het beter kunnen dan anderen. Overigens zijn deze componenten ook gewoon open source en gratis. Bovendien bouwen ze voort op bestaande projecten als Twig en Bootstrap. Maar ook frameworks als Laravel, Symfony, Zend, Wordpress, CodeIgniter, CakePHP en nog zo wat bekende zijn ons absoluut niet vreemd. De vuistregel is dat een bestaand framework iets minder flexibiliteit zal bieden c.q. extra overhead zal veroorzaken, met als pluspunt dat andere programmeurs (die er al in specialiseren) de werkzaamheden sneller kunnen overnemen - bijvoorbeeld het in-house team dat je toch al hebt.
De vuistregel is een beetje dat hoe ingewikkelder je project is, hoe logischer het wordt om eigen code te schrijven i.p.v. iets bestaands te proberen te plooien. We denken hier graag over mee.
Databases
Elke site bevat data, en die moet je ergens opslaan. We hebben ervaring met alle veelgebruikte relationele databases (MySQL, SQLite, PostgreSQL, Oracle, MSSQL) maar ook met zogenaamde NoSQL databases als CouchDB, MongoDB en noem maar op. En in geval van nood (er zijn hosting providers die pakketten zonder database aanbieden) schrijven we zelf wel wat.
Als er een bestaande database is (bijvoorbeeld op een mainframe) die een API biedt kunnen we daar ook mee praten. Zo bijft alle data op een centrale plek.
Vanzelfsprekend adviseren we ook met liefde over de keuze voor een bepaald databaseplatform, want ze hebben allemaal hun voor- en nadelen.
NodeJS en WebSockets
Niet door elke provider ondersteund, maar wel ontzettend mooi om te gebruiken. Met deze technieken kunnen we, heel grof gezegd, een realtime communicatie tussen je site en de bezoeker tot stand brengen. Het standaardvoorbeeld is dan "een chat via de browser", maar er zijn natuurlijk nog een miljoen andere mooie toepassingen die we samen hiervoor kunnen bedenken. Bijvoorbeeld een dashboard voor de salesafdeling waarop de medewerkers in realtime de verkopen van je webshop kunnen zien, of een site waarbij bezoekers ergens op kunnen stemmen en andere bezoekers direct de resultaten zien wijzigen. The sky is the limit!
We merken zelf dat deze technieken in steeds meer projecten ingezet worden, dus dit is zeker iets waarover we graag met je van gedachten wisselen. Sensi Media biedt custom NodeJS oplossingen die we ook kunnen hosten voor je, of we kunnen je adviseren bij het kiezen van een hostingpartij.
Zoeken met SphinxSearch
Als je een wat grotere site hebt wil je al snel zoekfunctionaliteit. Helaas is zoeken in tekst nou net iets waar databases notoir slecht in zijn; het is traag en dingen als werkwoordvervoegingen herkennen hoef je al helemaal niet om te komen. Gelukkig is daar een mooie oplossing voor: SphinxSearch. Een open source pakket dat aansluit op jouw database en een soort custom Google ervan maakt. Weinig hosters ondersteunen dit, maar bij Sensi Media bieden we dat natuurlijk voor onze klanten.
...of nog iets anders...
Soms kom je van die pareltjes tegen: een stuk legacy software geschreven in een taal of platform die je nooit zou verachten - of waar je zelfs nog nooit van gehoord hebt (dat laatste gebeurt ons niet heel vaak, maar het komt voor ;)). Omdat leren leuk is gaan we elke uitdaging graag aan; code is tenslotte code. We hebben ervaring met allerlei andere talen, waaronder C++, Python, Java en zelfs Erlang. Eigenlijk het enige waar we echt niet naar willen kijken is iets dat b.v. Microsoft-only is (we zijn niet zo van de gesloten platforms), Drupal en Joomla. Daarvoor kun je beter een specialist op dat gebied zoeken, daar wordt iedereen gelukkiger van. Maar als we het verder op onze Linux machines draaiend kunnen krijgen duiken we er met liefde in.
Build tools
Tenzij jouw project per se anders moet (bijvoorbeeld omdat je zelf een server hebt waarop ontwikkeld moet worden) gebruiken we graag diverse build tools om onze projecten te stroomlijnen:
- SASS/Compass om meer met CSS te kunnen;
- Gulp om allerlei dingen te automatiseren. Een populair alternatief is Grunt; daar zijn we zelf niet zo'n fan van maar kan eventueel ook;
- Git maar we hebben ook ruime ervaring met b.v. Mercurial en Subversion voor versiebeheer;
- ...en een verzameling eigen scripts om diverse andere taken automatisch te regelen.