GET/en/blog/why-a-studio-writes-software/200← Journal
Why a production studio writes its own software
486,540 files, 44.8 TB, 718 shoot days. Why we built our own archive inventory, QC gate and local AI tools, and how that engineering serves clients.

In September 2026 we crawled our entire network storage archive. The result: 486,540 files across 93 client folders, 44.8 TB in total, covering 718 shoot days and 745 reels. Over the past year we averaged 35 shoot days a month. At that scale, “where is the raw footage for that video?” can no longer be answered from memory.
This is why a video studio in Trabzon writes its own software, and how the same engineering ends up serving our clients.
An archive should be a database, not a pile of folders
Every client folder follows the same numbered template: delivered files, camera originals, project files, music, brand assets, designs. But a template only helps if something checks it. So we wrote our own inventory tool. The path, size, codec and duration of every file sit in a database, and instead of re-scanning 44.8 TB to answer a question, we query it.
A few things we learned on the way:
- A file name is not an identity. Camera-generated names such as “C0511.MP4” repeat dozens of times across the archive. A file is identified by its path, size and hash together.
- Turkish characters are a trap. Names containing letters like “ğ”, “ü” or “ş” can be stored in two different Unicode forms, and some of them won’t open from a Mac over the network. We normalise names before comparing them and always write new files in one form.
- Tools report; people decide. Our checkers list problems, and a person decides whether anything is moved. Every tool that writes to the archive runs as a dry run first, keeps an undo log, and never deletes: it moves files to a quarantine folder instead.
An automatic QC gate
Every delivered reel has to meet the same technical standard: 1080×1920, H.264, yuv420p, +faststart, an audio track and loudness around −14 LUFS. Checking that by eye on every file is slow and error-prone.
Our QC gate measures these values from the file itself. It also checks that every reel has a cover image and a project file with the same name, that folder names follow the template, and that file names are written correctly. If something is wrong, we see it before delivery, not after the client notices.
Local AI: the footage stays in the building
Client footage often shows recognisable people, and under KVKK, Turkey’s data-protection law, that is personal data. So by default, AI tasks such as transcription and searching the archive by what is in the picture run on our own machines.
The vectors we compute for visual search are not biometric templates. Face detection is used only to flag “this clip shows someone recognisable”; we do not build face recognition or systems that group people by identity. Footage showing identifiable people never goes to a cloud service without a consent record and explicit approval for that specific task.
The panel: one place from shoot to report
We are building our own internal panel for the shoot calendar, client approvals, monthly reports and archive search. The goal is simple: a job’s brief, shoot day, delivered files and approval live in one place, and the month-end report comes out of it.
Under the hood: Go and modern infrastructure
Every server-side service we write is in Go: each one compiles to a single binary, with no runtime to manage, which keeps it easy to deploy and maintain. Depending on the job, we run applications on our own hardware, on Kubernetes, on AWS or on Google Cloud. For observability we use eBPF-based tooling, which shows where a service slows down without touching its code.
In a studio that works from a 44.8 TB archive, good software is part of production.
The same engineering, for clients
The discipline behind our in-house tools carries straight into the work we do for clients:
- Booking and ticketing: table, room and event reservations, ticket sales, an admin panel.
- Membership: membership sales, renewals, check-in, class calendars.
- Payment flows: card details are entered on the payment provider’s 3-D Secure page and never stored by us.
- Automation: WhatsApp reminders, proposal and customer follow-up, matching invoices against bank transactions.
- Reporting: monthly performance reports in the same format every month, so they can be compared.
All of it can run in Turkish, English, Arabic and Russian, and handles personal data in line with KVKK. We take on software projects independently of our content work, and every project is quoted on its own.
If you have a software idea for your business, let’s talk.

