Home Case Studies Signalo App

Signalo — An AI-Powered Civic App Built Solo in 2 Weeks

AI-powered civic reporting app for abandoned vehicles with expired inspections in Varna, Bulgaria.

Mobile App AI Recognition Civic Tech signalo.city Google Play
Published: Updated:
Martin Dimitrov
Founder, Product Builder, Problem Solver
2 weeks
Idea to working app
AI
Plate recognition + verification
Solo
Built with AI-assisted coding
Zero
Manual steps for the user
TL;DR

I built Signalo, an AI-powered civic reporting app for abandoned vehicles in Varna, Bulgaria, in 2 weeks using AI-assisted coding. The app automates license plate recognition, government database verification, and municipal report generation — reducing a 15–20 minute manual reporting process to a single photo.

What problem does Signalo solve?

There are abandoned cars everywhere in Varna — vehicles with expired technical inspections sitting on public streets for months, sometimes years. Most people don't even know they can report them, or what the rules are.

Those who do know face a confusing process: figure out if the inspection is actually expired, write a formal report, find the right email address, attach photos, include location details. It's enough friction that most people just walk past.

I built Signalo to make civic reporting as easy as taking a photo. The app handles everything else — identifying the vehicle, verifying its inspection status against the government database, generating a properly formatted report, and sending it directly to the responsible municipal department.

Why don't citizens report abandoned vehicles?

Reporting an abandoned vehicle in Bulgaria requires knowing several things most citizens don't:

  • That vehicles with inspections expired over 3 months are classified as end-of-life vehicles under Bulgarian law (Наредба № 1)
  • How to check if a vehicle's inspection is actually expired — through a government website that requires entering the plate number and solving a captcha
  • Who to contact — the Repatriation Department (Отдел Репатриране) at the Varna municipality
  • What information to include — plate number, vehicle details, GPS coordinates, photos, legal basis

Even for someone who knows all this, the process takes 15–20 minutes per vehicle. For a street with multiple abandoned cars, it's impractical.

The result: abandoned vehicles accumulate, neighborhoods deteriorate, and a solvable problem persists because the reporting friction is too high.

How does Signalo automate civic reporting?

Signalo reduces the entire reporting process to a few taps:

  • Take a photo — the app uses AI vision (Gemini Flash, with Groq Llama-4 as fallback) to automatically read the license plate, and identify the vehicle's brand, model, and color
  • Automatic verification — the backend uses browser automation (Playwright) to query the Bulgarian Road Transport Agency website, solve the captcha via Google Vision API, and check if the vehicle's technical inspection has expired
  • Smart filtering — only vehicles expired over 3 months are included in the report (per the legal threshold). Vehicles expired under 3 months are added to a watchlist — the app sends a push notification when they cross the 3-month mark
  • One-tap reporting — the app generates a properly formatted email with all required information (plates, vehicle details, expiry dates, GPS coordinates, Google Maps link, legal citation) and opens it in the user's email client, ready to send to the municipality

The user's only job is to take a photo and confirm. Everything else — plate reading, inspection verification, report formatting, location tagging — is automated.

How did the reporting process change?

Metric Before (Manual) After (Signalo)
Time per report 15–20 minutes Under 30 seconds
Required knowledge Legal framework, government website, municipal contacts None — app handles everything
Plate verification Manual — government website + captcha Automated — AI + browser automation
Report formatting Manual — write email, attach photos, include coordinates Auto-generated — plates, GPS, legal citation, photos
Multi-vehicle reports 15–20 min per vehicle — impractical for streets with many Scan all vehicles, one combined report
Borderline cases Forgotten — no tracking for almost-expired vehicles Watchlist with push notification at 3-month threshold

What technology powers Signalo?

I built the entire app solo in 2 weeks using AI-assisted coding. I had never touched React Native before — I used AI tools to learn the framework, design the architecture, and write the code as I went.

React Native + Expo TypeScript Node.js + Express Playwright Gemini Flash (Vision AI) Groq Llama-4 (Fallback) Google Vision API Redis Docker

Key architectural decisions:

  • Multi-provider AI cascade — Gemini Flash for plate recognition, with automatic fallback to Groq if rate-limited. Google Vision API as a third fallback for basic OCR. The system stays available even when individual providers have issues
  • Browser automation for verification — the government website has no API, so the backend automates a real browser to query inspection status, solve captchas, and parse results. Up to 8 concurrent Playwright instances handle parallel requests
  • Smart caching — Redis caches valid inspection results until their expiry date, but never caches expired plates (since a vehicle could get re-inspected at any time)
  • No personal data stored — the backend is stateless. Reports go directly from the user's email to the municipality. No user accounts, no signal database, no tracking. Privacy by design
  • Offline resilience — failed requests are queued locally and retried when connectivity returns

Where does Signalo stand today?

Signalo is currently in closed testing on Google Play. The app is fully functional — plate recognition, inspection verification, report generation, and watchlist notifications all work end-to-end.

Reports are sent to Отдел Репатриране Варна (Varna Repatriation Department), the municipal body responsible for handling abandoned vehicles.

The goal is to launch publicly and expand to other Bulgarian cities. The underlying system works for any municipality — only the recipient email address changes.

What are the key takeaways from building Signalo?

This project proved something I already believed: you don't need to be a mobile developer to ship a mobile app. I had never touched React Native before. Two weeks later, I had a working product with AI vision, browser automation, push notifications, and offline support — built entirely with AI-assisted coding.

The hardest part wasn't the technology. It was understanding the legal framework, the government verification process, and the municipal reporting structure well enough to automate it.

The AI wrote the code. I designed the system.

Frequently Asked Questions

How does the AI license plate recognition work?

Signalo uses a multi-provider AI cascade. The primary provider is Google Gemini Flash for vision-based plate reading. If rate-limited, it falls back to Groq Llama-4. Google Vision API serves as a third fallback for basic OCR. The system identifies the plate number, vehicle brand, model, and color from a single photo.

How does Signalo verify if a vehicle's inspection is expired?

The backend uses Playwright browser automation to query the Bulgarian Road Transport Agency website. It enters the plate number, solves the captcha using Google Vision API, and parses the inspection status. Up to 8 concurrent Playwright instances handle parallel verification requests. Valid inspection results are cached in Redis until their expiry date.

Does Signalo store personal data?

No. Signalo is designed with privacy by default. The backend is stateless — no user accounts, no signal database, no tracking. Reports go directly from the user's email client to the municipality. The app stores nothing on any server.

What is the 3-month watchlist feature?

Under Bulgarian law (Наредба № 1), vehicles with inspections expired over 3 months are classified as end-of-life vehicles. Vehicles expired under 3 months don't qualify for reporting. Signalo adds these borderline cases to a watchlist and sends a push notification when they cross the 3-month threshold, so the user can report them at the right time.

Is Signalo available for download?

Signalo is currently in closed testing on Google Play. The app is fully functional end-to-end. The goal is to launch publicly and expand to other Bulgarian cities — the underlying system works for any municipality, requiring only a change in the recipient email address.

← Back to Home