Independent digital studio

Digital products that refuse to follow a straight line.

Crooked Signal is an independent digital studio building useful websites, web applications, Android tools, and custom business software.

A signal line that changes direction and continues on a new path.

Selected work

Real projects, described as they are. Three of them currently hold first place on Google in their own cities, and the search term is named on each — so you can check rather than take my word for it. Internal systems have no public link, because they are not on the public internet — and should not be.

The Plumber.hr home page: a dark hero with a cutaway pipe and the headline "Trenchless pipe rehabilitation in Split".

WebLive2026

Plumber.hr

Trenchless pipe rehabilitation and 0–24 emergency plumbing in Split. A dark, industrial site with nine services — and a tenth that has no business being there.

More detail

Every site in this trade looks the same: the same blue template, the same stock photo of a pipe, the same paragraph about years of experience. This one is dark and industrial, and the services are written the way people actually describe the problem — by symptom, not by the technical term. Each of the nine services has its own page and its own route in from search, the phone number is always within reach, and the whole thing opens fast on a phone.

Alongside them sits Service 00: The Clairvoyant Plumber. Tarot, bean casting and a crystal ball, all working in the browser, a price list where every method costs €0.00, and a note that the fourth card is drawn only with the client’s written consent. It is a joke with a job: it walks the reader to the point that guessing is not a method — not when it is called tarot and not when it is called "let’s try it and see" — and that no building manager accepts what the ball says, while every one of them accepts a camera inspection report. Nobody else in the trade has a page like it. That is why people remember it and pass it on.

  • Nine service pages, each written for the way that service is searched for
  • Service 00 — The Clairvoyant Plumber: a joke that leads to real diagnostics
  • Tarot, bean casting and a crystal ball, interactive in the browser
  • 0–24 call button always within reach, laid out for the phone first
  • Structured data, sitemap and a machine-readable site description
  • Service area: Split, the surrounding towns and Dalmatia
  • First result on Google for "sanacija cijevi Split", checked 1 September 2026

Built withHTML · CSS · JavaScript · PHP · Structured data

The NoDig European website home page, showing trenchless pipe-cleaning machines.

WebLive2026

NoDig — European Website Network

Seven country websites for a Croatian manufacturer of trenchless pipe-cleaning and pipe-rehabilitation equipment. Eight languages across seven domains, and not one CMS password for anyone to lose.

More detail

One manufacturer, seven markets, eight languages. NoDig sells through authorised regional partners, and each of them is a separate company with its own warehouse and its own prices — so every market gets its own domain rather than a language folder on somebody else’s. Within each domain the language versions declare each other with hreflang, reciprocally, which is the part that actually counts. Built as static pages — no CMS to maintain, no database to keep online, and nothing between a visitor and the page.

  • Seven domains covering Croatia, the EU, Germany, Spain and Italy, France, Serbia and Slovenia
  • Language versions per market, each domain a closed hreflang cluster
  • Product and category pages driven by a shared component structure
  • Inquiry forms, sitemaps, robots and machine-readable site descriptions

Built withHTML · CSS · JavaScript · PHP · hreflang · Structured data

The partner ordering portal catalogue view with an order in progress.

Web applicationIn use, internal2026

Partner Ordering Portal

A B2B ordering system where each reseller signs in and sees the catalogue at their own price tier, then orders directly from it. The spreadsheets it replaced were not given a send-off.

More detail

Partner orders used to arrive as email threads and attached spreadsheets, each one priced by hand. This replaces that: partners sign in, see the catalogue at the price tier and discount attached to their account, build an order and submit it. Administrators manage accounts, upload a new catalogue, and track order status from one panel, so there is still only one place where orders live.

  • Per-partner price tiers and discounts applied across the whole catalogue
  • Role-based access for partners, staff and administrators
  • Catalogue import from spreadsheet or JSON, with upload history
  • Order submission with email and messaging notifications
  • Walk-in mode for orders placed on a partner’s behalf

Built withNode.js · Express · SQLite · JWT · SheetJS

FishCast showing a bite score of 42 out of 100 with the forecast controls above it.

AndroidLive2026

FishCast — Fishing Forecast

An app that scores fishing conditions per species, location and day, and shows which hours are worth going out. Because "the pressure feels good today" is not an algorithm.

More detail

Weather apps report the weather. Anglers want the next step: is tomorrow worth it, and at what hour. FishCast scores conditions from 0 to 100 for a chosen species and place, weighted mainly by barometric pressure and its trend, then by solunar periods, moon phase, wind, cloud, rain, estimated water temperature and — for rivers — the flow trend. It runs installed on the phone, keeps the last forecast for places with no signal, and asks for no account.

  • Bite score per species, location and day, with the best four hours highlighted
  • Pressure trend, solunar periods and moon phase calculated on the device
  • River flow trend for freshwater, sea conditions for saltwater
  • Location by GPS, city search or a point on the map
  • Works offline from the last saved forecast
  • Croatian and English, no ads, no account

Built withPWA · Service Worker · JavaScript · Open-Meteo API · Cloudflare Pages

The catalogue application showing product categories, with a search box for finding an item by code or name.

Web applicationIn use, internal2025–2026

Offline Catalogue & Quotation App

A desktop app that carries the full product catalogue and produces a branded PDF quotation with no connection at all. The internet is optional. The sale is not.

More detail

Built for people who sell where there is no signal — a customer site, a trade fair hall, a van. The whole catalogue sits on the laptop, along with the customer list and the quotation history. Search a product, add it, pick a currency, and the app generates a numbered PDF quotation carrying the user’s own logo and company details. Nothing is fetched, nothing is synced, nothing fails because the connection dropped.

  • Complete catalogue search with no connection required
  • Branded PDF quotations with sequential numbering
  • Customer records with quick-fill
  • Multi-currency pricing with adjustable rates
  • Catalogue export and import as JSON to move data between machines
  • English, Croatian and German interface

Built withElectron · JavaScript · PDF generation · JSON storage

An abstract signal path breaking and reconnecting on a new trajectory.

AndroidIn progress2026

Legacy Bluetooth Controller Modernization

An existing Bluetooth LE controller app, left behind by Android’s platform changes, brought back onto current Android. The hardware was fine. Android had other plans.

More detail

A third-party Android app that controls a Bluetooth LE lighting device stopped behaving on current phones. Nothing was wrong with the hardware — Android had moved: Bluetooth permissions had replaced the old location-based model, broadcast receivers now had to declare their export status, and edge-to-edge display pushed content under the status bar. This is modernization of somebody else’s application, not a rewrite: raise the target SDK, restore the permission flow, fix the receiver registration and the layout, and repackage it under a separate identifier so it can be installed next to the original and compared directly. A browser-based controller was started alongside it as a second, independent route to the device — it reaches the device and connects, but it was never finished.

  • Target SDK raised to current Android; installs and runs, tested on Android 16
  • Runtime Bluetooth scan and connect permissions replacing the legacy location model
  • Receiver registration corrected for Android 13 and later
  • Edge-to-edge layout fixed so content no longer sits under the system bars
  • Repackaged under a separate identifier for side-by-side comparison with the original
  • A browser-based controller was started as a second route to the device. It connects. It was never finished.

Built withAndroid · Bluetooth LE / GATT · APK tooling · Web Bluetooth

The Hidros home page: a dark hero with a coverage map of Osijek and the surrounding towns.

WebLive2026

Odštopavanje Osijek — Hidros

A 0–24 emergency drain-unblocking service in Osijek, built to be found the moment someone needs it and called in one tap. Nobody browses this site for pleasure. People find it, call the number, and close it. That was the brief.

More detail

Someone searching for this has water on the floor. That sets every decision: the coverage area is visible immediately, the call action follows you down the page, and the site loads fast on a phone on mobile data. Service pages are written around how the problem is actually searched for — the symptom, not the industry term — with camera inspection and the surrounding towns each given their own ground to rank on.

  • Mobile-first layout with the emergency call action always in reach
  • Coverage map of Osijek and the surrounding Slavonia towns
  • Separate pages for drain unblocking and camera inspection
  • Local search structure, structured data and machine-readable site description
  • Contact form, privacy policy and a designed 404 page
  • First result on Google for "odštopavanje Osijek" and "hitno odštopavanje Osijek", checked 1 September 2026

Built withHTML · CSS · JavaScript · Structured data

The catalogue production tool in edit mode, with a product page laid out on a six-item grid and export controls above it.

Product developmentIn use, internal2026

Print Catalogue Production System

A browser-based system for laying out a product catalogue and exporting it press-ready, image preparation included. Next year’s edition starts from last year’s file rather than an empty page. That is the whole feature.

More detail

A printed catalogue is the same layout problem every year, solved from scratch every year. This keeps the layout, the product data and the image preparation in one place: pages and covers are composed in the browser, hero images are built in the same tool, source photography is extracted and compressed in the same workflow, and the output is a press-ready PDF. Next year’s edition starts from last year’s file rather than an empty page.

  • Page and spread composition in the browser
  • Cover and hero-image designers built into the same tool
  • Image extraction and compression as part of the workflow
  • Press-ready PDF export
  • Catalogue data kept as JSON, shared with the offline catalogue app

Built withJavaScript · HTML · CSS · Python · PDF export

Capabilities

Four things, done properly, rather than a list of everything.

  • Web

    Websites for businesses that need to be found and called, and for manufacturers selling across several countries. Multilingual platforms, landing pages, responsive interfaces, and the search and structured-data work that decides whether any of it gets seen.

    What this involvesWeb
  • Web applications

    Ordering portals, internal tools, catalogue systems and structured data workflows. Authentication, user roles, tiered pricing, imports and exports, and connections to the systems a business already runs on.

    What this involvesWeb applications
  • Android

    Practical Android applications, plus the unglamorous half: compatibility work, permission and API migrations, and bringing an application that current Android versions have left behind back into working order.

    What this involvesAndroid
  • Product development

    From the first description of a problem to a working product — including the parts that decide whether it gets used: what it does offline, how data moves in and out, and who has to maintain it afterwards.

    What this involvesProduct development

Alongside this: document automation, stock and reporting tools, campaign work and product visuals for the projects that need them.

Trade business or small firm? Websites for trade businesses

Approach

Every project starts with a real problem. The goal is not to add more software, but to build the smallest useful system that solves it well.

  • Useful before impressive

    A tool that gets opened every morning beats one that gets shown once in a meeting.

  • Clear before complicated

    Fewer moving parts means fewer things to explain, fewer things to break, and less to maintain a year from now.

  • Different only when it improves the result

    The crooked path is a choice, not a habit. Where the straight one works, it gets used.

An honest comparison

Agencies do good work, and a larger one has people I do not have. This is what I would tell you over a coffee, including the rows where I am not the right choice.

What mattersCrooked SignalAn agencyA freelance marketplace
Who you actually talk toThe person writing the code.An account manager, then a project manager, then possibly a developer.Whoever bid lowest this week.
What happens when it breaks in AugustYou get me. Possibly from a beach, but you get me.A ticket, and a place in the queue.The account no longer exists.
If I am ill, or already bookedYou wait. There is no second person.Someone else picks it up. That is a real advantage.Someone else picks it up, for better or worse.
Range of work under one roofWeb, Android, internal tools. No branding, no video, no ad buying.All of it, in one place. Also a real advantage.All of it, from different people, in different styles.
A CMS to keep patchedUsually none. Static pages, with nothing to log into.Usually WordPress.Usually WordPress, plus a plugin folder nobody has opened since.
Hosting cost after launchOften nothing. The sites are built to be cheap to host.Whatever the maintenance contract says.Yours to work out.
PriceBetween the two. Quoted once the problem is understood, not before.Higher. Part of it pays for the office.Lower, until the second round of changes.
People required in a meetingTwo.Four, and one of them is taking notes.There is no meeting.
Will you also work for my competitorNot in your trade and your area. If it is taken, you hear that immediately.Probably. It rarely comes up.Has no idea who your competitor is.
Will they tell you the idea is badYes. Saying so is cheaper than building it.Depends on the quarter.No.

If two of those rows describe your project, hire an agency. That is arithmetic, not modesty.

About

Crooked Signal is an independent development studio, building digital products across web and Android that have to keep working long after launch.

The work runs from public multilingual websites to internal systems nobody outside a company will ever see — ordering portals, catalogue tools, an app that has to keep working when the connection does not.

There is no agency here — just me. That sets the shape of the work: projects sized so I can build them properly and maintain them afterwards, and a direct conversation with whoever actually has the problem.

One rule that applies before anything is agreed: I do not build for two businesses competing for the same customer in the same area. If your trade and your area are already taken, you hear that in the first reply rather than after a quote.

Based in Osijek, Croatia, though the work is not tied to the city. Clients are across Croatia and beyond, and collaboration is remote by default — from the first conversation through to maintenance.

The name is the idea. A signal that does not follow the expected straight path. Not broken — just routed differently, on purpose.

Questions

The things people ask before the first conversation.

  • What does Crooked Signal actually build?

    Websites, web applications, Android applications and internal business tools. In practice that has meant multilingual manufacturer sites, local service websites, a B2B ordering portal, an offline catalogue and quotation app, a print production system, and a forecasting app for Android.

  • Do you work with small businesses as well as companies?

    Both. A one-person trade business needing to be found and called, and a manufacturer needing an ordering portal for its partners, are different problems with the same starting point: what actually has to work. Small projects are not treated as practice runs.

  • Is this an agency?

    No. Crooked Signal is an independent studio, and you deal directly with me — the person actually building your project. There is no account manager between you and the work, and I take on projects at a size where they can be built and maintained properly.

  • How does a project start?

    With a description of the problem, not a specification. Send what is going wrong, what you have now, and what you wish happened instead. What it should be built as comes out of that conversation, along with scope, timing and cost.

  • Can you take over a website or app somebody else built?

    Yes. That is a large part of the work — modernizing, fixing and extending things that already exist, including an Android application originally written by someone else and brought back onto current Android versions.

  • Which languages do you work in?

    Croatian and English. Sites have also been built and structured for German, Spanish, Italian, French, Serbian and Slovenian markets, with the language versions and cross-domain linking that requires.

  • Where are you based, and do you work remotely?

    Croatia. The work is remote by default and has covered clients and markets across Croatia, the region and the wider EU.

  • Do you handle hosting and maintenance after launch?

    Yes, where it makes sense. Sites are built to be cheap and simple to host — usually static, with no CMS or database to keep patched — and several of the projects listed here have been maintained over time rather than handed over and forgotten.

Have a useful problem? Send a signal.

A description of the problem is a better start than a specification. Email works, or use the form.

Elsewhere

  • GitHubComing soon
  • Google PlayComing soon
  • LinkedInComing soon

Send a message