Backend development
We have extensive experience working with a variety of backend technologies to meet diverse project needs: Java Spring Boot; Python, Django and Flask; PHP and Laravel; Node.js with Express, Next.js and NestJS. We apply different paradigms according to the project's specific needs to deliver scalable and maintainable web applications.
Request informationThe service behind the CMS
Drupal is the centre of the platforms we build. Some work does not belong inside a content request: a calculation, a queue, an integration with a system that speaks another protocol, a data store with its own rules. That work is a backend service, with a contract the CMS and the other clients can call.
GeoNovation builds those services in the stack the constraint asks for. Java with Spring Boot. Python with Django or Flask. PHP with Laravel, when the surrounding system is already PHP. Node.js with Express, NestJS, or Next.js when the service sits next to a JavaScript interface. The choice is documented. We do not add a language to the estate for its own sake.
A contract, not a folder of scripts
A backend that only its author can deploy will fail the handover. We design the API, the data model, and the way errors are reported so Drupal, a frontend, or another institution's system can depend on them. Authentication, pagination, and the meaning of a field are part of the work, written down where the next developer will look.
The same squad that builds the service wires it to the platform. There is no gap where "the API team" and "the Drupal team" disagree about a payload. Docker and the pipeline that builds the service travel with the code, so an environment can be recreated.
- Java and Spring Boot for services that must sit in a JVM estate.
- Python with Django or Flask when the domain logic and the data belong together.
- PHP and Laravel beside Drupal, when one language across the platform is the simpler estate.
- Node.js with Express, NestJS, or Next.js for services shaped around a JavaScript client.
When to keep it in Drupal
If the behaviour is editorial, a permission, or a content workflow, it should usually be a Drupal module. We will say that. A separate backend earns its place when the load, the language, or the owning system is genuinely different, and when someone will still be able to operate it after we leave.
This work sits inside Cloud & AI Development. Request information — tell us the organisation, the platform, and the constraint.