Skip to content
Ranjith Rajshekar

04 · Civic-tech concept · 2025

Nadif Malti

A civic reporting app for St Paul's Bay, built so a bag colour and a broken drain need no reading to report.

Role
Product design: concept, system, prototype
Timeline
2025–2026
Scope
26 screens across 5 audience segments, design system, coded prototype
Platform
Mobile: 390 × 844 prototype
01 / 08Context

A civic reporting app and collection schedule for St Paul's Bay, designed so a bag colour or a broken drain needs no reading to act on.

Nadif Malti is a concept. There's no council contract behind it, and it isn't a live product for St Paul's Bay. It's a self-directed exercise in a real constraint: Malta's colour-coded bag system and its street-level problems (illegal dumping, blocked drains, rats) are exactly the kind of civic task that breaks down when the interface assumes everyone reads the same language fluently.

One app, two things residents actually need

The product does two jobs: tell a resident which bag goes out and when, and give them a fast, structured way to report a street problem instead of a phone call or a Facebook post that goes nowhere.

The prototype is coded, React, 390 × 844, and every screen on this page is a capture of it: onboarding, home, the five-step report flow, the weekly schedule, report history and settings.

A council-facing operations view was designed alongside it (in the source material) but was never built as working software. It's noted here as a designed surface, not demonstrated as one. This case study only shows what actually runs.

Type
Self-directed concept: no council client
Platform
Mobile (390 × 844 prototype)
Screens
26 across 5 audience segments
Languages
English + Malti onboarding choice

Four tabs, one report button always in reach

Home, Schedule, My Reports and Settings sit in the tab bar. The Report FAB floats above it on every tab screen: reporting a problem is never more than one tap away, and it's the only action styled in the terracotta accent colour.

  • Home
    • Address chip · next-collection card
    • Six-category quick-report grid
    • Recent reports
  • Schedule
    • Seven-day strip, colour per bag
    • Day detail → what to include / exclude
  • My Reports
    • All · Open · In progress · Resolved
    • Report detail → status timeline + council note
  • Settings
    • Language · Notifications · Appearance
    • My address · Council zone
    • Anonymous reporting
  • Report (FAB)
    • Category → Photo → Location → Details → Review → Confirmed

Five steps, no account

A report in under a minute

  1. 01 / 06

    Tap a category, the flow advances itself

    Six categories, each with an icon before its label. Tapping one both selects it and moves to the next step: there's no separate "continue" tap for step one.

    Nadif Malti report flow step 1: What type of problem, Rubbish pile selected
    Category: the tap is the advance.
  2. 02 / 06

    Camera first

    The shutter sits at natural thumb reach, full-screen, before any form field appears. A photo is the primary evidence a council report needs.

    Nadif Malti report flow step 2: camera viewfinder with shutter button
    Photo: nothing to type yet.
  3. 03 / 06

    Location pre-fills, dragging corrects it

    The pin starts on the device's location, and the address line updates as it's dragged. "Confirm location" is the only action needed if the pin is already right.

    Nadif Malti report flow step 3: Confirm location with a draggable pin on Triq San Pawl
    Location: GPS first, a drag if it's wrong.
  4. 04 / 06

    Anonymous by default, everything else optional

    The description and the email field are both marked optional. Anonymous reporting is switched on before the resident ever sees the toggle: they'd have to turn it off, not on.

    Nadif Malti report flow step 4: description field, anonymous toggle on, optional email
    Details: opting in to be identified, not out.
  5. 05 / 06

    Review before it's sent

    Every field from the previous four steps, each with its own "Edit" back to that step, so fixing the location doesn't mean redoing the photo.

    Nadif Malti report flow step 5: review screen with photo, category, location, note and privacy
    Review: edit any field without restarting.
  6. 06 / 06

    A reference, not just a thank-you

    The confirmation gives a reference number and a direct route to tracking, so "I reported it" has something to point to later.

    Nadif Malti report flow confirmation: Your report has been received, reference SPB-2026-0048
    Confirmed: a reference number, not a dead end.
Nadif Malti report flow step 1: What type of problem, Rubbish pile selected
Category: the tap is the advance.

The other half: knowing before you have to ask

Schedule and My Reports are the app's quiet screens: no flow to complete, just an answer on arrival. The day strip colour-codes the week. A report's detail closes the loop with a status timeline and, where the council has one, a note.

  1. 01
    Nadif Malti Schedule: seven-day strip with a coloured dot per collection day
    Schedule: colour first, text second.
  2. 02
    Nadif Malti day detail: Grey bag, mixed recycling, what's accepted and what isn't
    Day detail: accepted and not-accepted, not one merged list.
  3. 03
    Nadif Malti My Reports: Rubbish pile in progress, Blocked drain resolved, Dirty pavement received
    My Reports: status is the first thing you read, not the last.
  4. 04
    Nadif Malti report detail: submitted, acknowledged, being reviewed timeline with a council update note
    Report detail: the timeline residents never had before.

Where the constraints actually bit

  1. Decision 01
    Constraint
    St Paul's Bay has a meaningful non-Maltese-speaking population, and a UI that leans on reading, in either language, excludes exactly the residents most likely to get the bag schedule wrong.
    Decision
    Lead every category, status and schedule day with an icon before its label, and offer an English/Malti choice at onboarding rather than assuming one.
    Result
    The quick-report grid, the bag-colour dots and the status badges all read at a glance before the text does.
    Nadif Malti Home: icon-led quick-report grid and a colour-coded next-collection card
    Home: colour and icon carry the meaning first.
  2. Decision 02
    Constraint
    An account wall on a civic-reporting flow suppresses exactly the reports a council needs most, from residents who won't sign up to report a rat.
    Decision
    Make anonymous reporting the default, not an option to find. Tracking still works without an account, tied to the report's own reference number.
    Result
    The details step shows the toggle already on, and the confirmation hands back a reference ("SPB-2026-0048") the resident can track without ever registering.
    Nadif Malti Settings: anonymous reporting toggle on, labelled Your name is not shared with the council
    Settings: the default is stated, not hidden.
  3. Decision 03
    Constraint
    "We'll look into it" with no further word is why residents stop reporting problems at all.
    Decision
    Give every report a four-stage timeline (submitted, acknowledged, being reviewed, resolved) with room for a council note attached to a specific update.
    Result
    A resolved report shows exactly when each stage happened and what the council said, not just a final "done".
    Nadif Malti report detail: status timeline with a council update note about a scheduled cleaning crew
    The loop residents could never see before now closes on-screen.

A civic palette, and type that can spell the street names

Sea blue for the brand and navigation, terracotta reserved for the one action that matters (Report), warm limestone neutrals instead of pure white or black. Hanken Grotesk was picked specifically because it covers the Latin-Extended glyphs Maltese needs (ċ, ġ, ħ, ż) alongside Schibsted Grotesk for headings and Spline Sans Mono for reference numbers.

  • Sea 500: brand#2376AB
  • Sea 700#164D73
  • Terracotta 500: accent, Report FAB#D2603A
  • Stone 50: app background#FBF9F4
  • Stone 900: text#211D16
  • Amber: in progress#D98A12
  • Green: resolved#2F8F5B
  • Headings: Schibsted Grotesk700 · 24–38px
  • Body & UI: Hanken Grotesk400–600 · 13–16px
  • Reference numbers: Spline Sans Mono500 · 13px

Try it

The real prototype on sample data, served as supplied rather than rebuilt. Report a problem, check the schedule, browse My Reports. There's no account and nothing is sent anywhere. Every report and address is sample content.

Nadif Malti Home screen

Loads on request. Nothing is embedded until you start it.

What it is, and what it isn't

Nadif Malti is a portfolio concept: a working citizen app of 26 screens with a real report flow and schedule, and no council, no users, no launch behind it. There are no results to report, only the product to check for yourself.

  • A working five-step report flow with a real category grid, camera step, location pin and review-before-send
  • A seven-day, colour-coded collection schedule with per-day accepted/not-accepted lists
  • A council operations view was designed alongside this but was never built as interactive software: it's a designed surface, not a demonstrated one

Reflection

The screen that actually needed the most thought wasn't the report flow, it was Settings: making "your name is not shared with the council" sit next to the toggle, already on, rather than hoping a privacy policy somewhere covered it.

The bigger lesson was about honesty in a concept project: it's easy to draw a council dashboard with plausible KPI numbers on it, much harder to resist including it as if it were real software. It isn't here, on purpose.

Next project · 05Wellness conceptSahajaRead the case study