Work
What we have built.
Client platforms and our own products. Each page leads with the one thing worth knowing about the project, and every number on it has a source.

GZS Inovacije
Slovenia's national innovation awards, from the regional round in thirteen chambers to the national ceremony, on one platform we built and still run.
Every one of the 235 entries got a branded 35-second video for the ceremonies, made from the text of its own entry with a Slovenian voiceover. Nobody edited any of them. Technical terms are checked against Slovenia's official lexical database, and the narration is fitted to each video's length without a change anyone can hear.
Planet Positive Sport
The platform FIVB uses to measure, review and certify the environmental footprint of volleyball events, with reports rendered by the server and AI run on our own GPU.
One click freezes an event's numbers, and three things are built from that snapshot: the public web page, a PDF and a single HTML file with every photo inside. The server draws all nine charts, so the PDF, which runs no script, always prints complete. Photos per page view fell from 140.5 MB to about 19 MB.

Olimpijski Kviz
A quiz played on ten thousand phones at once, in step with a live Winter Olympics broadcast, every night for sixteen nights.
Every phone asks the server what it should show, about once a second, over ordinary HTTP. There are no WebSockets anywhere. A single clock drives the quiz through lobby, question, sponsor break and standings, and the answers come from a cache prepared for the phase about to start.

fluent-html
Our TypeScript library that writes HTML as function calls, and the rendering layer under every web app we ship.
When two files disagree about the name of an element, the page stops compiling. An HTMX swap aimed at an id the response does not contain used to break the page silently in the browser. Now the compiler names both ids before the code ever runs.
JT Cut
A video tool in the browser that turns a set of photos into a finished, narrated video in minutes.
Pick one of five looks and JT Cut sets the transition, the camera move and the length of every slide. A camera move is a slow zoom or pan across the photo. No two neighbouring slides get the same transition or the same move, so a video built in one click looks edited by hand.
StorySell
StorySell turns the documents and links an Amazon seller already has into a listing strategy, with every field written twice for A/B testing and scanned for Amazon's banned claims.
Each doubt that stops a shopper from buying goes to exactly one image in the listing's gallery, or one section of the A+ page below it. That slot's copy has to settle it. The rule came from a reviewed run where one strong claim appeared 81 times across six of the seven gallery images.
SPORTO Awards
The entry and jury portal for the SPORTO Awards, where companies enter sports sponsorship campaigns, judges score them and the organiser runs the competition.
A judge scores each entry beside the entrant's own write-up. Planning, Budget, Execution and Evaluation appear in the same order on both sides, worth 30, 10, 30 and 30 points. The entry form and the score sheet read one list of criteria in the code, so the two can never drift apart.
Everyframe
The live site for our own video engine, showing real runs on real footage and documenting how developers call the engine from TypeScript and Rust.
The developer reference lists 222 operations, the video, audio and AI steps the engine can run, and nobody typed any of them. A script asks the engine for its own list and writes the page from it. A check command rebuilds the page and fails if a single byte differs from the copy in the repo.
Huluma
A phone web app that covers every face in a family photo with one tap and removes hidden location data before the photo is shared.
Huluma destroys a face before it covers it. The face area is shredded into coarse blocks and enlarged, so the original pixels cannot come back. The soft warm glow a parent sees is only the look on top, and the strength slider changes that look and nothing else. Confirming a photo deletes the original.
na cent
Our self-serve money ledger for small Slovenian companies, showing how much of the bank balance is really theirs once VAT and unpaid invoices are set aside.
Every amount is kept in whole cents, with net and VAT stored as typed. Balances are recalculated from the entries on every screen. A test reads the whole codebase and stops the build if anyone works out net by dividing a VAT rate out of the gross. Our own internal tool once had exactly that bug.
Competify
Our own software for running an awards programme, from the entry form to the judges' scores and the final ranking, sold in Slovenia as Tekmovalni portal.
A judge drags a slider and the total and the medal change during the drag. The browser runs the same scoring function the server uses when it saves, so the number on screen always matches the number on the leaderboard. In the public demo nothing is saved, and the sliders still move the total.
Everyframe Composer
Our pre-launch web app that turns one approved video ad into every cut of it, across opening hooks, languages and formats, timed from the voiceover.
The timing comes from the narrator. The app finds the pauses in each recorded voiceover and puts the default cuts in the longest ones. When the Croatian read runs 0.9 seconds longer, the cut moves by 0.9 seconds and the captions wrap again for Croatian. Every length on screen says whether it was measured or estimated.
Excel Gym
A membership system for Excel Gym in Ljubljana, with an admin panel for staff, a members' app and a barcode scanner at the front desk.
A barcode scanner at reception reads the member's own QR code and answers with its own light and sound. Green and a short beep means welcome. Red and two long low tones means the membership has run out or is frozen. The code that talks to the scanner over USB is ours, written without Zebra's software kit.
Your project could be the next one here.
Tell us what you need and we build a working prototype first, so you see it before you pay for it.