Technologies
The right technology for each problem
We choose technology for the job, the team that will maintain it and the cost of running it, not out of habit. These are the mainstream platforms and tools we work with.
Frontend
The interfaces people see and use in the browser. We choose frontend technology for performance, accessibility and long-term maintainability, matching the rendering approach to the kind of site or application being built.
- HTML & CSSThe foundation of every web page, used for semantic structure, layout and styling.
- JavaScriptThe programming language of the browser, used to add interactivity to web pages and applications.
- TypeScriptA typed superset of JavaScript that catches errors earlier and makes large codebases easier to maintain.
- ReactA component-based library for building interactive user interfaces.
- Next.jsA React framework that adds routing, server-side rendering and static generation for production web applications.
- AngularA full-featured framework for building large, structured web applications.
- Vue.jsA progressive framework for building user interfaces that can be adopted incrementally.
- SvelteA component framework that compiles to lean JavaScript, keeping bundles small and pages fast.
- AstroA framework for content-focused websites that ships minimal JavaScript by default.
- Tailwind CSSA utility-first CSS framework for building consistent, responsive designs quickly.
- ViteA fast build tool and development server for modern frontend projects.
Backend
The server-side logic, APIs and integrations behind every product. We select languages and frameworks to suit the workload, the team that will maintain the system and the ecosystem it must connect to.
- Node.jsA JavaScript runtime for building fast, scalable network services and APIs.
- ExpressA minimal Node.js web framework for building APIs and web servers.
- NestJSA structured Node.js framework for building maintainable server-side applications in TypeScript.
- PythonA versatile language widely used for web backends, automation, data processing and machine learning.
- DjangoA Python web framework with built-in admin, authentication and database tooling.
- FastAPIA Python framework for building high-performance APIs with automatic documentation.
- JavaA mature, strongly typed language widely used for enterprise systems.
- Spring BootA Java framework for building production-ready services and APIs with minimal configuration.
- .NET (C#)Microsoft's development platform for building web applications, APIs and services in C#.
- GoA compiled language designed for simple, efficient and highly concurrent network services.
- PHP & LaravelA widely deployed server-side language and its popular framework for building web applications.
- GraphQLA query language for APIs that lets clients request exactly the data they need.
Mobile
Apps for iOS and Android, built natively or from a shared cross-platform codebase. The choice depends on the device features required, performance needs, budget and how the app will be maintained.
- SwiftApple's programming language for building native iOS, iPadOS and other Apple platform apps.
- SwiftUIApple's declarative framework for building user interfaces across its platforms.
- KotlinThe preferred language for modern native Android development.
- Jetpack ComposeAndroid's modern toolkit for building native user interfaces declaratively.
- React NativeA framework for building iOS and Android apps from a shared JavaScript or TypeScript codebase.
- FlutterA UI toolkit for building natively compiled apps for mobile and other platforms from one Dart codebase.
- ExpoA platform and toolset that simplifies building, testing and releasing React Native apps.
- Firebase Cloud MessagingA service for sending push notifications to Android, iOS and web apps.
- XcodeApple's development environment for building, testing and submitting iOS apps.
- Android StudioThe official development environment for building and testing Android apps.
Databases
Where an application's data lives. We match the database to the shape of the data and how it is queried, whether relational records, flexible documents, fast caches, search indexes or time-series readings.
- PostgreSQLAn advanced open-source relational database known for reliability and rich features.
- MySQLA widely used open-source relational database for web applications.
- Microsoft SQL ServerA relational database commonly used in enterprise and Microsoft-centred environments.
- MongoDBA document database that stores flexible, JSON-like records.
- RedisAn in-memory data store used for caching, queues, sessions and real-time features.
- SQLiteA lightweight embedded database often used inside mobile apps, devices and small services.
- ElasticsearchA search and analytics engine for full-text search and log analysis.
- Amazon DynamoDBA fully managed key-value and document database on AWS designed for consistent performance at scale.
- Cloud FirestoreA managed document database from Google with real-time sync for web and mobile apps.
- InfluxDBA time-series database for storing and querying sensor readings, metrics and events.
- TimescaleDBA PostgreSQL extension that adds efficient time-series storage and queries.
Cloud platforms
The infrastructure that hosts applications and data. We design for the platform that best fits the workload, existing commitments, data location requirements and running cost.
- Amazon Web Services (AWS)A broad public cloud platform offering compute, storage, databases, networking and managed services.
- Microsoft AzureMicrosoft's public cloud platform, often chosen by organisations already using Microsoft products.
- Google CloudGoogle's public cloud platform, with strengths in data analytics, containers and AI services.
- DigitalOceanA developer-friendly cloud provider with straightforward virtual servers and managed services.
- VercelA hosting platform for frontend frameworks with built-in global delivery and preview deployments.
- NetlifyA platform for building, deploying and hosting modern websites and web applications.
- CloudflareA global network providing CDN, DNS, security and edge computing services.
- FirebaseGoogle's app development platform providing authentication, databases, hosting and messaging.
- SupabaseAn open-source backend platform built on PostgreSQL, with authentication, storage and APIs.
DevOps & infrastructure
The tooling that builds, tests, deploys and monitors software automatically. Repeatable infrastructure and pipelines make releases routine and keep environments consistent.
- GitA distributed version control system for tracking every change to code.
- GitHubA platform for hosting Git repositories, reviewing code and running automated workflows.
- GitLabA platform combining Git hosting, code review and built-in CI/CD pipelines.
- GitHub ActionsAn automation service for building, testing and deploying code directly from a GitHub repository.
- JenkinsAn open-source automation server for building custom CI/CD pipelines.
- DockerA tool for packaging applications and their dependencies into portable containers.
- KubernetesAn open-source platform for deploying, scaling and managing containerised applications.
- TerraformAn infrastructure-as-code tool for defining and provisioning cloud resources in configuration files.
- AnsibleAn automation tool for configuring servers and deploying software repeatably.
- NginxA web server and reverse proxy used for serving content, load balancing and TLS termination.
- PrometheusAn open-source monitoring system that collects and queries time-series metrics.
- GrafanaA dashboard and visualisation tool for metrics, logs and alerts.
- SentryAn error-tracking and performance-monitoring service for web, mobile and backend applications.
IoT & embedded
The hardware platforms, firmware tools, protocols and cloud services that connect physical devices. We choose components for power budget, connectivity, environment and the volume at which a product will be made.
- ESP32A low-cost microcontroller family with built-in Wi-Fi and Bluetooth, popular for connected devices.
- STM32A broad family of ARM-based microcontrollers used in industrial and consumer devices.
- Raspberry PiA small single-board computer used for gateways, prototypes and edge processing.
- ArduinoAn open-source electronics platform and toolchain widely used for prototyping devices.
- FreeRTOSA small real-time operating system for microcontrollers that need predictable timing.
- Zephyr RTOSAn open-source real-time operating system for connected, resource-constrained devices.
- Embedded C/C++The standard languages for writing efficient firmware that runs directly on device hardware.
- MQTTA lightweight publish-subscribe messaging protocol for connecting devices to the cloud.
- Bluetooth Low EnergyA short-range, low-power wireless technology for connecting devices to phones and gateways.
- LoRaWANA long-range, low-power networking protocol for sensors that send small amounts of data.
- ModbusA long-established communication protocol for connecting industrial equipment and controllers.
- AWS IoT CoreA managed AWS service for securely connecting devices and routing their messages to cloud applications.
- Node-REDA flow-based tool for wiring together devices, APIs and services with minimal code.
AI & data
Models, frameworks and data tooling for building AI features and analytics. We favour approaches that can be evaluated, monitored and explained, and we choose between hosted and self-run models based on data sensitivity and cost.
- OpenAI APIA hosted API providing access to large language models for text, vision and embeddings.
- Anthropic Claude APIA hosted API providing access to large language models for text generation, analysis and tool use.
- Google Gemini APIA hosted API providing access to Google's multimodal language models.
- Hugging FaceA platform and library ecosystem for finding, sharing and running open machine learning models.
- PyTorchAn open-source deep learning framework used for building and training neural networks.
- TensorFlowAn open-source machine learning framework for training and deploying models, including on mobile and edge devices.
- scikit-learnA Python library for classical machine learning tasks such as classification, regression and clustering.
- LangChainA framework for building applications that combine language models with data sources and tools.
- pgvectorA PostgreSQL extension for storing embeddings and running similarity search.
- OpenCVAn open-source library for computer vision and image processing.
- pandasA Python library for cleaning, transforming and analysing tabular data.
- Apache SparkA distributed engine for large-scale data processing and analytics.
- Apache KafkaA distributed event-streaming platform for moving high volumes of data between systems in real time.
- Power BIMicrosoft's business intelligence tool for building reports and interactive dashboards.
Testing & quality
Automated and manual testing that keeps software working as it changes. Tests run in the delivery pipeline on every change, alongside static analysis, accessibility checks and performance audits.
- JestA JavaScript testing framework for unit and integration tests.
- VitestA fast unit-testing framework designed to work with Vite-based projects.
- pytestA Python testing framework for writing simple and scalable tests.
- JUnitThe standard unit-testing framework for Java applications.
- PlaywrightA browser automation framework for end-to-end testing across major browsers.
- CypressAn end-to-end testing tool for web applications that runs in the browser.
- SeleniumA long-established browser automation framework used for cross-browser testing.
- AppiumAn open-source framework for automating tests of native and hybrid mobile apps.
- PostmanA tool for designing, exploring and testing APIs.
- k6An open-source load-testing tool for checking how systems perform under traffic.
- LighthouseAn automated auditing tool for web performance, accessibility, SEO and best practices.
- ESLintA static analysis tool that finds problems and enforces conventions in JavaScript and TypeScript code.
- SonarQubeA code quality platform that detects bugs, vulnerabilities and maintainability issues.
Design & collaboration
The tools we use to design products, plan work and keep clients informed. Shared boards, documents and prototypes keep decisions visible and recorded throughout a project.
- FigmaA collaborative interface design tool for wireframes, prototypes and design systems.
- FigJamAn online whiteboard for workshops, user journeys and brainstorming.
- Adobe PhotoshopAn image editing tool used for preparing photos and graphics.
- Adobe IllustratorA vector graphics tool for logos, icons and illustrations.
- MiroA visual collaboration board for workshops, mapping and planning.
- JiraA work-tracking tool for managing backlogs, sprints and issues.
- ConfluenceA team wiki for documentation, specifications and decision records.
- NotionA flexible workspace for notes, documentation and lightweight project tracking.
- SlackA messaging platform for team and client communication organised by channels.
- Microsoft TeamsA collaboration platform combining chat, video meetings and file sharing.
- Google WorkspaceA suite of shared documents, spreadsheets, email and video meetings.
- ZoomA video meeting platform for calls, workshops and demos.
Already committed to a stack?
We work within your existing technology choices, or help you evaluate alternatives with a clear comparison of trade-offs.