Skip to content
Logo Theodo

Our recent articles


Load Previous Posts

AWS Quick Tip: Optimizing Cloud Costs with Conditional Infrastructure

Peter Speak3 min read

Illustration of cloud development stacks recycling costly infrastructure

As developers, having a development environment that is as close as possible to the production environment is key for faster iteration. It gives us assurance that if something “works on my machine”, it will also work in production as well…

Continue reading →

Harnessing the Power of Business Intelligence in the Modern Era

Freddie Woods8 min read

business intelligence dashboard

As we navigate our way through the fourth industrial revolution, the abundance of powerful technologies and data is re-defining the way we work. Managers and decision-makers now need to make quick, impactful decisions to remain competitive. As a result companies…

Continue reading →

Step-by-Step Guide to building an Anomaly Detector using a LLM

Chloé Caron13 min read

Robot finding anomaly in shapes

You’ve probably heard about the importance of data quality being shouted from every rooftop. Bad data is a recipe for disaster. Certain companies have specialised in finding anomalies in your data and flagging it, much like Sifflet and Elementary. But…

Continue reading →

Flutter vs React Native - A guide from every experience level

Justin Kek11 min read

Flutter vs React Native

Introduction If you’re reading this article you’ve probably decided to use a cross-platform framework over native development. Cross-platform frameworks allow you to deploy to multiple platforms from a single codebase, which has two main benefits:Cost and time savings Consistency in UX/UIThe two…

Continue reading →

Visualising your bundle size in Expo Router apps

Mo Khazali5 min read

An Expo Router logo with a magnifiying glass.

TLDRRun npx expo export -p web --dump-sourcemap in your project. This will create a dist directory with your exported project along with the sourcemaps. Run npx source-map-explorer dist/**/*.js to get the graphic representation of your sourcemaps.Before the days of Hermes, a…

Continue reading →

How to add search to CloudCannon CMS with OpenSearch

Peter Speak12 min read

Integration of cloudcannon and opensearch

1. Intro Setting up effective search functionality for applications that rely on content management systems (CMS) is a crucial yet challenging task. In today's digital landscape, the ability to seamlessly integrate robust search capabilities into applications is essential for enhancing user…

Continue reading →

Bad data quality or lack of data utilisation: how to avoid a 12% revenue hit

Chloé Caron7 min read

Laptop showing a dashboard for a fictional company

Data comes from an endless list of sources, whether it be active and searching (e.g. use of sensors, collection of user data) or passive and an ‘added bonus’ (e.g. product sales, customer service emails). Data tells us a lot about…

Continue reading →

Mastering File Upload Security: Understanding File Types

Marek Elmayan10 min read

Laptop with a malicious file uploading on a server represented by a cloud with a lock

In today's digital landscape, file exchange has become an integral part of our online activities, from sharing work documents to uploading pictures on social media. However, this convenience comes with inherent risks. File upload functions, seemingly innocuous, can serve as…

Continue reading →

Calculating software emissions: learnings and limitations

Guillaume Barra5 min read

React Native

Context Earlier this year, we developed the sustainability calculator versions 1 and 2 at Theodo UK (version 2 can be downloaded here). The aim of the first version was to have a proof of concept that would allow us to calculate…

Continue reading →

Nightly End-to-End & Performance Tests with Flashlight

Mo Khazali7 min read

A Flashlight logo with a backdrop of the night.

Several years ago, I was working on a web project that had quite a number of critical web flows that needed to be regularly tested to make sure that there weren't any regressions from functionality or performance across the app.

Continue reading →
Load Next Posts