AdiosAnalysis — adios.hr · co-built with a colleague
live · production
Production AI-powered news platform ingesting RSS, analysing with an LLM, and clustering cross-source coverage.
Every article flows through a structured LLM analysis (OpenAI) that returns editorial JSON — summary, normalised title, topic and named-entity tags, plus perceptual scores for clickbait, vagueness, typo, and emotional language. Cross-source clustering blends four 1,536-dim text-embedding vectors per article (weighted 0.45 / 0.25 / 0.15 / 0.10) with text similarity and shared-tag overlap, grouping different outlets' coverage of the same event above an 80% threshold. Five hosted services run the pipeline (RSS crawl → analysis → vectorise → cluster → theme refresh) with bounded channels, per-row locks, and exponential retry. Multi-tenant by deployment: one country = one deployment = one DB, gated by a single config switch; adding a new country is a ~60-line config + a translation bundle, no pipeline code changes. More on the project →
.NET 10 · ASP.NET Core MVC · EF Core · PostgreSQL + pgvector · OpenAI Responses + embeddings · Serilog/Seq · JWT + Google OAuth · ASP.NET Identity · .resx i18n
Photo Portfolio Platform · solo build
2026 · v1 live
Multi-tenant SaaS where each photographer manages a full website by chatting with a Telegram bot.
Bot AS the CMS (not on top of one): every CMS operation — uploads, captions, layout, theme, DNS binding — exists as a tool the model can call. Claude Haiku driving an agentic tool-use loop. FastAPI back-end with raw psycopg3 (no ORM — tenant filtering visible in every query). Caddy with on-demand TLS gated by a registration-check endpoint, so each photographer can point any domain at the same IP and get a cert seconds later. More on the project → (live demo by invitation)
Claude Haiku · FastAPI · psycopg3 · Postgres 16 · Next.js 14 · Cloudflare R2 · Caddy · Docker
Veseljko — veseljko.hr · co-built with a colleague
live · personal project
End-to-end Croatian platform for the full lifecycle of weddings, baptisms, birthdays, and other family events — digital invitations and RSVPs, guest photo/video galleries, printable invitations and QR cards, seating, package/add-on commerce, and a back-office admin app.
Clean-architecture .NET 10 solution split into Domain / Application / Infrastructure / SharedKernel, with custom CQRS abstractions (IQueryHandler, ICommandHandler, auto-registered) and a Result<T> error model; antiforgery + cookie auth across two front-ends (owner/guest Web app and staff Office app). EF Core 10 on PostgreSQL with snake_case naming and code-first migrations across Development / RemoteDevelopment / RemoteProduction.
Templating engine drives 30+ database-seeded invitation themes per event type (Wedding/Bachelor/Bachelorette/Baptism/Birthday/Confirmation/FirstCommunion × Classic/Deco/Editorial/Modern) with CSS-only theming and a placeholder substitution pipeline; owner-editable inline static text co-exists with non-editable lock islands that keep database-derived regions (schedule, RSVP QR codes, organiser contacts) live across edits. Print pipeline does browser-native multi-page printing (blank/front/blank/back, 2-up on 10×7" sheets) and A5 QR cards, verified end-to-end with headless Chromium PDF rendering.
Media subsystem has pluggable storage providers (local filesystem, Cloudflare R2), per-package upload limits, thumbnail generation, password-protected guest galleries, and a live-presentation slug for projecting guest uploads during the event. Office back-office handles a shopping cart for packages and add-ons with per-event feature overrides, plus partners, reviews, inquiries, and a blog. Full Croatian UI with culture-aware date formatting (hr-HR). More on the project →
C# · .NET 10 · ASP.NET Core MVC · Razor · EF Core 10 · PostgreSQL · Clean Architecture + CQRS · Cloudflare R2 · QR generation · headless Chromium PDF · hr-HR i18n
DeHost — dehost.io · co-built with a colleague
live · Base testnet
A Web3 platform for censorship-resistant, serverless website hosting.
Built a full-featured dApp frontend for a serverless, blockchain-based hosting platform on the Base chain. Implemented decentralized file publishing, on-chain domain registration, and wallet-based user management. Integrated multiple wallet flows including modern account-abstraction sign-in, with automatic network handling. Delivered a responsive, component-driven UI with strong UX and SEO foundations. Currently live on Base testnet at dehost.io. More on the project →
Svelte 5 · SvelteKit · TypeScript · TailwindCSS · Vite · Web3 (wallet + smart-contract integration)