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.
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.
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
- 260tests across 26 files
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.
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
- 58FPS median, M1 Air
- 45FPS median, Pixel 6a
- 3 weeksfrom start to launch
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.
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
- ~80conversations a day, summer season
- 6 + 2 weeksbuild, then deploy and handover
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.
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
- 12,000SKUs in the catalogue
- +38%bulk-order conversion, against Magento
- <1.4 spage load, on a €15/month VPS
- 8 weeksfrom start to launch
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.
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.
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.
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.
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
| Project | What it is | Year |
|---|---|---|
| acki.pro | Portfolio site, pulling history backfill from the AckiScan metrics API | 2025 |
| ackiscan.xyz | Lab and experiments environment | 2025 |
| magan.biz | Corporate site, WordPress | 2023 |
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.