Članci

Bilješke iz našeg svakodnevnog rada — kvarovi na koje smo naletjeli, rješenja koja su se pokazala dobrima i stvari koje smo naučili gradeći softver.

26. rujna 2026.

Sva gradilišta na jednom ekranu

Kad tvrtka ima nekoliko gradilišta u isto vrijeme, dobar dio dana voditelja odlazi na pitanja: koliko je ljudi gdje, kasni li neko gradilište, je li stigao mate…

constructisgradilištepregled+1+2
26. rujna 2026.

Koliko vas zaista košta gradilište?

Na većini gradilišta podaci o trošku postoje, ali su raspoređeni po cijeloj tvrtki. Računi su u knjigovodstvu, radni sati kod poslovođe, stanje materijala u skl…

constructisgradilištetroškovi+1+2
26. rujna 2026.

Radni sati na gradilištu bez papirnatih lista

Na mnogim gradilištima radni sati i dalje putuju ovako: poslovođa ih upisuje u bilježnicu ili na list papira, na kraju tjedna šalje fotografiju u ured, a netko…

constructisgradilišteradni sati+1+2
26. rujna 2026.

Svatko na svom jeziku: prevođenje zapisa, dokumenata i chata

Na današnjem gradilištu rijetko svi govore isti jezik. Voditelj gradilišta je Hrvat ili Nijemac, a u ekipi su radnici iz Turske, Uzbekistana ili Kine. Isto vrij…

constructisuredski pomoćnikprevođenje+1+2
26. rujna 2026.

Moving websites off the mail server without anyone noticing

For years one of our machines did everything: it was the mail server, the authoritative DNS server for our domains and our customers' domains, and the web serve…

nginxapachedns+2+3+4
19. rujna 2026.

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

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

weasyprintpdfpython+1+2+3
19. kolovoza 2026.

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

Our fleet module has a live map. You open it, and every company vehicle shows up with its current position and, next to it, the name of the driver behind the wh…

apirate limitingcaching+2+3+4
5. srpnja 2026.

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

Django's documentation is unambiguous: migrations are source code, you commit them, they travel with the app. Almost every Django project does exactly that, and…

djangomigrationsdeployment+1+2+3
20. svibnja 2026.

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

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

reactprerenderingseo+2+3+4
5. travnja 2026.

The fake website that kept our mail server certificate alive

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 it, and it had its own T…

tlsletsencryptdns+2+3+4
13. veljače 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+1+2
5. prosinca 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+1
27. studenoga 2022.

Django 4.1: Controlling Events With Signals

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. There are many…

djangosignals+1
27. studenoga 2022.

Django 4.1: Caching With Redis

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 is rich in fea…

djangorediscache+1+2
27. studenoga 2022.

Django 4.1: Improving Database Accessibility

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

djangodatabaseoptimization+1+2
27. studenoga 2022.

Django 4.1: Where To Apply Async

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

djangoasync+1