Ga naar inhoud

Platform

Server-side logica.
Geen aparte deploy.

Schrijf JavaScript, push het met één commando, en het draait binnen Nimbu, naast je content, klanten en custom data. Functions, custom HTTP-routes, geplande jobs en callbacks. Geen serverless account. Geen tweede authlaag.

cloud-code/pricing.js
// gate B2B pricing on the logged-in customer
$ Nimbu.Cloud.define('recalcPricing', async (req, res) => {
$ const customer = req.customer;
$ if (!customer) return res.error(401, 'auth required');
$ const price = applyGroupRules(customer, req.params);
res.success({ price }); // no separate backend

Één runtime. Vier vormen.

Cloud Code dekt wat templates niet kunnen. Functions bevatten benoemde server-side logica die je kan aanroepen vanuit een theme, een client of een agent. Custom HTTP-routes zijn je eigen GET/POST/PUT-endpoints, gemount op de site. Geplande jobs draaien achtergrondwerk volgens een cron-schema. Callbacks vuren voor of na events op content, producten, klanten en orders. De Nimbu SDK wordt in de runtime geïnjecteerd. Er is geen API-client om te configureren en geen credentials om door te geven.

  • Functions Benoemde server-side logica, aanroepbaar vanuit een theme, API-client of agent.
  • Custom routes Je eigen GET/POST/PUT/PATCH/DELETE-endpoints, gemount op de site.
  • Geplande jobs Achtergrondwerk volgens een cron-achtig schema, of on demand in de wachtrij gezet.
  • Callbacks Before/after hooks op content-, product-, klant- en orderevents.
cloud-code/archive.js
// illustrative, verify surface at docs.nimbu.io
$ Nimbu.Cloud.define('archiveArticle', async (req, res) => {
$ if (!req.customer) return res.error(401, 'auth required');
$ const a = await new Nimbu.Query('articles').get(req.params.id);
$ a.set('archived', true); await a.save();
res.success({ id: a.id, archived: true });

De tools die backendwerk echt nodig heeft.

Cloud Code komt met een gecureerde modulebibliotheek, zodat je http, crypto, jwt, csv, pdf en mail kan gebruiken zonder ze zelf aan te sluiten. De eerlijke scope: dit is een gesandboxte V8-runtime, geen volledige Node.js met npm. De catalogus staat vast, handlers draaien onder timeouts op de uitvoering, en je kan geen willekeurige packages toevoegen. Dat is de afweging. Je krijgt een smal oppervlak dat je kan doorgronden en in enkele seconden deployt, in plaats van een dependency tree die voor altijd de jouwe is.

cloud-code/sync.js
// illustrative, module names per docs.nimbu.io/docs/cloud-code/modules
$ const HTTP = require('http');
$ const jwt = require('jwt');
$ const token = jwt.sign({ sub: customer.id }, signingKey, { expiresIn: '15m' });
$ const res = await HTTP.post('https://api.partner.example/sync', {
$ headers: { authorization: `Bearer ${token}` }, body: payload,
});

Use cases

Wat er mee gebouwd wordt.

Het werk waarvoor je vroeger een aparte backendservice moest opzetten, of nog een laag plakwerk aan het portaal moest toevoegen.

  • Price recalculation and B2B rules

    Pas prijzen per klant of per groep server-side toe met de context van request.customer, en geef daarna betrouwbare resultaten terug aan het theme of de API.

  • Data enrichment and validation

    Valideer en normaliseer entries terwijl ze bewaard worden, via before-callbacks op channels of klanten.

  • Custom auth flows and gated routes

    Onderteken en verifieer JWT's, integreer een externe IdP, scherm functions en routes af op request.customer.

  • Stateful workflows and webhooks

    Reageer op klant-, order- en contentevents. Stel routes bloot, zet jobs in de wachtrij, sync naar ERP's en CRM's.

  • Transactional email and exports

    Stuur mail op events, genereer CSV- of PDF-exports on demand, zonder externe function host.

  • Scheduled background jobs

    Nachtelijke sync, cache warm-up, rapporten genereren. Draait op een cron-schema zonder externe scheduler.

Assert het gedrag voordat het productie raakt.

Cloud Code is apart te testen. @nimbu/testing draait je handlers tegen in-memory fixtures, zodat je gedrag kan asserten voordat er iets op een live site komt. Het klikt in Jest, mockt de API en de request context, en geeft je de geregistreerde handler om direct aan te roepen. Vang de regressie op je eigen machine, niet op de launchavond van de klant.

__tests__/archiveArticle.test.js
// illustrative, verify API at @nimbu/testing README
$ const { getCloudFunctionHandler, mockRequest } = require('@nimbu/testing');
$ test('archiveArticle marks the article archived', async () => {
$ const handler = getCloudFunctionHandler('archiveArticle');
$ const result = await handler(mockRequest({ params: { id: 'abc' }, customer }));
expect(result.archived).toBe(true);

Deploy het, draai het daarna, vanaf de CLI of met een agent.

Cloud Code draait niet alleen wanneer een mens klikt. Een function kan aangeroepen worden vanuit een theme, aangesproken worden via de REST API, afgevuurd worden door een content- of orderevent, op een schema draaien, of door een agent via de CLI opgeroepen worden. Omdat dezelfde logica met de hand, via de API en vanaf de commandline bereikbaar is, kan een agent een function deployen en ze daarna op een echte site draaien. De backend is even programmeerbaar als de rest van het platform.

agent ~ nimbu deploy
# illustrative, verify against the CLI repo
$ nimbu apps push
code/ deployed. 3 functions registered.
$ nimbu functions run recalculatePricing --site demo-shop
running recalculatePricing...
done. agent operated the live site.

In de praktijk

Controle over de backend zonder de overhead.

We hebben drie klantintegraties van een aparte Lambda-setup naar Cloud Code verhuisd. Eén deploy pipeline viel volledig weg, en de logica zit nu naast de data die ze aanraakt.

Senior developer, Zenjoy

Schrijf de logica. Push ze één keer. Ze draait in het platform.

Geen serverless account. Geen aparte deploy. Europese infrastructuur, naast je data. Boek een intro van 30 minuten of lees de docs om te starten.