Work

Case studies.

What each project is, what it runs on, and what was actually hard - including the parts that are still waiting on someone else.

Start a project

What is on this page

Eleven projects, each with what it is, what it runs on, and what was actually hard about it. Where a build is finished but not yet live, this page says so rather than implying otherwise.

LiveTool2024

AckiScan

blockchain explorer

ackiscan.com

A block explorer for the Acki Nacki chain: blocks, transactions, validators and network metrics, queried live and charted.

Front end
Next.js, TypeScript
Data
Acki Nacki GraphQL API, plus a collector writing time-series to Postgres
Serving
nginx on a hardened VPS, php-fpm for the legacy tree

The interesting part is that this is a migration, not a greenfield build. The original explorer is a 46-file PHP application still serving live traffic, and the new app has to take over route by route without a flag day. The nginx layer routes new app paths to Node and leaves the legacy tree on php-fpm, so both run side by side while the migration completes.

LiveBrand site2025

AckionPrime

brand site with a live data canvas

ackiscan.com/AckionPrime

A 3D metropolis that breathes with every block - a marketing surface and a live data canvas in one page.

Rendering
Three.js, WebGL
Data
Acki Nacki GraphQL API, polled every 60 seconds
Build
Vite, vanilla JS for the data layer - no framework in the render loop

Every new block triggers a city pulse: building lights ripple, vehicles move, particles spawn near validator nodes. Synchronising that with a live 3D scene without dropping frames meant batching DOM updates and pre-allocating vehicle pools rather than allocating per frame.

Used as the public face of the mainnet launch.

LiveMicrosite2024

Keti

AI assistant for Međimurje tourism

keti.acki.pro

A cultural AI assistant named for Katarina Zrinski, answering visitor questions about Međimurje county in Croatian, English and German.

Backend
Node.js, Express, streaming responses
Model
OpenAI
Retrieval
Custom RAG over roughly 2,000 county tourism documents
Hosting
PM2 and nginx on a hardened VPS

The knowledge base is tourism office leaflets, county pages, restaurant menus and festival programmes, refreshed weekly by a cron job pulling RSS plus manual uploads. The retrieval layer was written rather than bought, so the answers stay inside the county's own material instead of drifting into the model's general knowledge.

The tourism office uses it as a first-line FAQ.

LiveWooCommerce2024

Vijak.eu

B2B WooCommerce at catalogue scale

vijak.eu

An industrial distributor platform: a multi-variant catalogue with bulk ordering, enterprise login and ERP sync.

Platform
WordPress, WooCommerce
Theme
Custom, no page builder
Database
SQL-tuned for fast variant lookup
Security
Fail2ban, Cloudflare WAF, daily snapshots

A stock WooCommerce theme collapses at this catalogue size. Variant rendering was rebuilt with batched AJAX, a pre-warmed product cache and a chunked search index.

The client's admins now run the whole catalogue from the WordPress dashboard, without a developer in the loop.

LivePublic sector2024v2 redesign in progress

Međimurska županija

county homepage redesign

medjimurska-zupanija.hr

The county's public website - the studio's build, currently live and serving the county. A v2 homepage revision is in progress: service tiles, a transparency section, an events calendar, a partner logo wall and a projects section, with a sticky header carrying the county identity sitewide.

Output
Static HTML and CSS, no framework
Calendar
Hand-built date chips, including cross-month ranges
Hero
Sequential-dissolve slideshow, equal-height cards, headline clamped to two lines

Public-sector work has a particular constraint: a county homepage is read by people using screen readers, older browsers and cheap phones on rural connections, and none of them are optional. Calendar cells that fall outside the month render as blank, disabled, non-focusable cells rather than as decorative noise a keyboard user has to walk through.

The v2 homepage is built and reviewed and is going through client sign-off. It carries placeholder dates in the calendar which must be confirmed before they reach production - recorded in the handoff rather than left to be discovered.

WooCommerce2025

Birobox

Web3 WooCommerce

birobox.com/luna

An e-commerce build combining a conventional WooCommerce catalogue with on-chain payment.

Platform
WordPress, WooCommerce, PHP 8.3
Theme
Block theme, full site editing
Payments
Web3 wallet checkout alongside conventional card checkout

The hard part of a Web3 shop is not the wallet - it is making a wallet checkout sit beside an ordinary card checkout without the ordinary customer noticing anything unusual, and without the crypto path becoming a second, unmaintained storefront.

LiveWordPress2025

ASSITEJ Croatia

theatre association

assitej.hr

The Croatian centre of ASSITEJ, the international association of theatre for children and young people. A news-led site for premieres, festivals, awards and education programmes.

Platform
WordPress 6.4+, PHP 8.1+
Theme
Custom classic theme, built 1:1 from the design handoff
Fonts
Self-hosted - no Google Fonts, so no third-party request and nothing to disclose under GDPR
Editorial
Category colour mapping, filter chips, a 3×3 card grid and pagination

The page template builds its own sticky table of contents from the H2 headings in the body, so an editor writing a long page gets working in-page navigation without touching a plugin or a shortcode.

Every Customizer field ships with the design's exact Croatian default text, which means the site is complete and correct on the day it is handed over rather than a set of empty boxes for the client to fill.

In buildWooCommerce2026

Komad

fashion e-commerce

komad.com

A custom WordPress and WooCommerce theme for an apparel retailer, built from a finished design rather than adapted from a purchased template.

Platform
WordPress, WooCommerce, PHP 8.x, MariaDB
Theme
Custom, built from the design spec
Languages
Croatian, English, German

Fashion retail is where stock themes usually show: a look book, a size guide and a variant picker each want a layout the theme did not anticipate, and the usual answer is a page builder that adds weight to every page on the site. This one is built from the design instead.

Also built

ProjectWhat it isYear
acki.proPortfolio site, pulling history backfill from the AckiScan metrics API2025
ackiscan.xyzLab and experiments environment2025
magan.bizCorporate site, WordPress2023

How this studio works

Every project on this page runs on a VPS the studio configures, not on a managed platform. That is deliberate: it means the security headers, the caching, the backup schedule and the failure modes are all things that can be explained and changed, rather than things a platform decides.

The same applies to this website. It is baked to static HTML, sets no cookies, loads nothing from a third-party server, and its own build fails if any page references an outside origin. Open the source and check.