Skip to content
cirlume.
Menu

Node.js.

JavaScript and TypeScript on the server, for APIs, integrations and background jobs.

Talk to us about Node.js

Key features

What Node.js does well.

  • Non-blocking I/O

    One process can handle many open connections at once, because it doesn’t wait idle on database or network calls.

  • Runs TypeScript directly

    Current releases strip type annotations at load time, so .ts files run without a separate build step. Types are not checked.

  • Built-in test runner

    node:test covers unit tests, mocking and coverage without installing a separate test framework.

  • npm ecosystem

    Most SaaS providers publish an official Node.js SDK, which shortens integration work considerably.

What we build with it

Illustration for Node.js

One language from the screen to the server.

We use Node.js for APIs and integration work when the rest of the product is already written in TypeScript. Sharing a language and types with the front end keeps the contract between them simple, and the package ecosystem covers most third-party services.

  • Product APIs

    REST or GraphQL endpoints that serve web and mobile clients, with validation and permissions.

  • Third-party integrations

    Connections to payment, messaging, accounting and CRM services through their SDKs and webhooks.

  • Background jobs

    Queued work such as sending notifications, generating documents and syncing data between systems.

When it’s the right choice

Node.js is a practical choice when the team already works in TypeScript and the service mostly waits on databases and other APIs.

When we’d pick something else

For CPU-heavy processing or services where a small memory footprint matters, we would look at Go. For data science and model work, Python usually has the better libraries.

Our Node.js services

How we can help.

  • APIs and services

    New Node.js services in TypeScript, with validation, authentication, logging and tests from the first commit.

  • Runtime upgrades

    Moving services off end-of-life Node.js versions and replacing dependencies that block the upgrade.

  • Performance investigation

    Profiling slow endpoints, memory leaks and event-loop blocking, then fixing the causes we find.

  • Security and dependency review

    Auditing packages for known vulnerabilities, abandoned dependencies and secrets handled in code.

How we work

Starting a Node.js project.

  1. Review what exists

    Code, data, hosting and the people who maintain it, before any Node.js decision is made.

  2. Agree the approach

    A written scope: what changes, what stays, the risks and how we will know it worked.

  3. Build in reviewable slices

    Working increments your team can test, rather than one large delivery at the end.

  4. Hand over or stay on

    Documentation and access for your team, or a defined support scope if you want us to keep going.

Where AI fits

AI in back-end work.

  • Model calls from your services

    Node.js, Go and Python all have official SDKs from the major model providers, so AI steps sit inside your existing services.

    AI workflow automation ↗
  • Evaluation pipelines

    Python’s data tooling makes it the usual choice for scoring a model against real examples before and after release.

    AI evaluation & testing ↗

Where it stops: Retries, timeouts and fallbacks matter more for model calls than for most APIs, and every result that changes a record is validated first.

What’s changing

Shifts to plan for.

Dates that affect Node.js projects, checked against the official sources.

  1. April 2026

    Node.js 20 reaches end of life

    The Node.js project stopped security fixes for version 20 on 30 April 2026. Services should move to Node.js 22 or 24.

  2. April 2026

    Lambda deprecates Node.js 20

    Lambda stopped patching nodejs20.x on 30 April 2026. Creating functions on it is blocked from 29 July 2027 and updating them from 31 August 2027.

Common questions

Node.js questions.

Can Node.js services run on serverless platforms?

Yes. Node.js is supported by AWS Lambda, Azure Functions and Google Cloud’s serverless options, as well as containers. We pick the model that suits the workload and your operations.

Which Node.js versions do you use?

We use current long-term support releases and plan upgrades before a version reaches end of life, so the service stays on supported runtimes.