Skip to content
Logo Theodo

Our recent articles


Load Previous Posts

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 →

How to Simply Generate a PDF From HTML in Symfony With WeasyPrint

Damien Clauzon8 min read

WeasyPrint HTML to PDF

A thousand PDF generation solutions, but which one to choose? Recently, I was faced with a problem that many developers fear and avoid: generating a PDF document. There are lots of libraries handling this, the problem is knowing which one best fits…

Continue reading →

How to migrate from Api Platform v2 to v3?

Grégoire AbachinSébastien Touzé9 min read

upgrade your api platform version to version 3

We updated several projects from Api Platform v2 to v3 and felt that some aspects of the migration were not fully covered in the documentation. This article shares our feedback on the migration process and helps you to migrate your application to the latest version of Api Platform.

Continue reading →
Load Next Posts