Articles

Notes from our day-to-day work — the breakages we ran into, the fixes that held up, and what we learned building software.

19 September 2026

Pinning WeasyPrint is not enough: how one unpinned dependency broke every PDF

Introduction Our internal platform generates PDFs in more than twenty places: outgoing invoices and their specifications, travel orders, annual leave decisions,…

weasyprintpdfpython+1
19 August 2026

The bug that only existed for our biggest customer: rate limits, loops and an empty map

The bug that only existed for our biggest customer Our fleet module has a live map. You open it, and every company vehicle shows up with its current position an…

apirate limitingcaching+2
5 July 2026

Why our Django migrations are not in git — and what that costs us

An unorthodox choice Django's documentation is unambiguous: migrations are source code, you commit them, they travel with the app. Almost every Django project d…

djangomigrationsdeployment+1
20 May 2026

Crawled 16 out of 16: how our prerender succeeded at doing nothing

The problem Our website is a React single-page application. The articles on it — including this one — live in our internal knowledge base and are fetched throug…

reactprerenderingseo+2
5 April 2026

The fake website that kept our mail server certificate alive

A website nobody visited While cleaning up an old server, we found a web virtual host serving a single index.html from 2018. No links pointed to it, no one used…

tlsletsencryptdns+2
13 February 2023

Kako dodati swap na Linux server?

Svaki Linux server dolazi unaprijed s određenom količininom prostora na disku koji se koristi kao swap memorija (mjesto gdje se iz glavne memorije privremeno sn…

swaplinuxdebian
5 December 2022

Django 4.1: Indexing

How to index: In your model, add the following to class Meta: my_model(models.Model): field1 = .. ... class Meta : indexes = [models.Index(fields=[ 'field1' ])]…

djangoindex
27 November 2022

Django 4.1: Controlling Events With Signals

Introduction When we look at web applications, we often see them as well-organized systems, made out of many components that are working together in harmony. Th…

djangosignals
27 November 2022

Django 4.1: Caching With Redis

Introduction Django is one of those frameworks that can do wonders if you invest enough time in them and pay attention to small details. It’s a framework that i…

djangorediscache
27 November 2022

Django 4.1: Improving Database Accessibility

Introduction Today’s commodity in all applications, written by all manner of different programming languages, is speed. For example, how fast we get our render,…

djangodatabaseoptimization
27 November 2022

Django 4.1: Where To Apply Async

Introduction Some exciting changes are coming in the future of Django Framework’s ongoing development. One of the notable changes is updated support for asynchr…

djangoasync