All work

Product & engineering case study

Building Bodrum Flow

A local discovery product, with the systems needed to collect, interpret, review and distribute its content.

Founder & developeriOS / Android / WebVisit Bodrum Flow
Bodrum Flow's English web interface with event discovery and programme filters
Bodrum Flow's iOS event page with details, calendar, directions and contact actions
The web and iOS product, September 2026. Screens show the product at that time.
iOS + Android downloads
3,200+
Registered accounts
2,200+
Published event records
15,000+

Product snapshot / Event records include past and upcoming events. Downloads and accounts measure different things.

01 / Bodrum Flow

The product and the work around it

People use Bodrum Flow to explore events, venue programmes and experiences. Building it means working across the mobile app and website as well as the less visible tools that keep event information usable.

As founder and developer, my work spans product interfaces, structured data, AI-assisted processing and operational tooling. The examples below come from the implemented systems behind the product.

One product, several surfaces

The React Native and Expo app supports saved plans, venue following and direct event actions. The Next.js web product provides an immediate way to discover and share programmes. Content is presented in Turkish, English, German and Russian.

English venue programme page with upcoming events and direct contact options
English iOS experience page with the schedule, provider information and booking enquiry action
Real product screens captured on 5 September 2026. Dates and availability belong to that capture.

02 / Behind the interface

From source material to useful information

Social posts, Stories and submitted media contain information in different forms. The content workflow keeps source context alongside structured event records.

  1. 01

    Capture

    Source posts, Stories and submitted posters or videos.

  2. 02

    Interpret

    OCR and multimodal extraction, with the source context.

  3. 03

    Validate & review

    Date and identity checks, guarded updates and review paths.

  4. 04

    Use in the product

    Structured records for discovery and editorial distribution.

Review and correction remain part of the workflow. Automated processing does not imply that every result is ready to publish.

03 / Engineering

Decisions inside the system

Extraction & data quality

Reading a poster is only the first step

The BF_InstaScrab ingestion pipeline combines OCR, image context and multimodal extraction. Deterministic rules then normalise dates, programme layouts and event identity, retaining the evidence behind the structured result.

For Stories, publication time and capture time are separate. A reference such as ‘tonight’ must be grounded in source identity and timing evidence. Unresolved dates can be flagged for review.

Event identity

Guarding against the wrong merge

Matching venue, day and time is not enough to move media between events. Performer conflicts or uncertain identity can block a transfer, and a duplicate-review label alone does not authorise it.

Allowed merges use guarded database operations with update preconditions and lineage. Locked records stay protected. The aim is to avoid silently attaching another event's poster or video.

Reliability

Separating capture from processing

A durable local spool stores captured work before processing. Atomic writes and job claims preserve ownership, while recovery logic can requeue abandoned work when the available timing evidence is reliable.

Retries have increasing delays and limits. These mechanisms let ingestion resume after interruptions without treating every failure as a reason to start again.

AI & editorial controls

Model output inside a controlled workflow

The moderation system combines image and text evidence with structured model output. Code then checks venue, date and conflict rules. A proposed publication can be held for review when those checks fail.

Review fingerprints and a durable ledger keep unchanged evidence from triggering the same work repeatedly. New evidence or an operator can reopen a case, while record and cost budgets constrain each run.

Intake & distribution

Making room for how people work

FlowBot, the WhatsApp intake service, pairs posters, videos and captions that arrive in different orders, then stores their context in a processing queue. It also preserves captions received while a video is being processed.

A separate editorial interface supports day and night event selections. Editors choose the records; server and database checks reject unpublished, flagged or incorrectly dated entries before saving the selection.

Technology in context

Mobile experienceReact Native / Expo
An iOS and Android app for discovery, saved plans and event actions.
Web experienceNext.js / TypeScript
Public discovery, shareable venue programmes and multilingual pages.
Content workflowsPython / Node.js / multimodal models
Capture, extraction, validation, messaging intake and operational jobs.
Records & controlPostgreSQL / Supabase
Structured content, guarded updates, queue records and editorial checks.

Continuing the product

The next questions are wider coverage across Bodrum, more relevant discovery and easier updates for local businesses. These are directions to explore, informed by the product and its day-to-day operation.

Back to selected work

Contact

A question, an idea, or an interesting opportunity?

Feel free to get in touch. I’m happy to talk about the work and where it could lead.

Connect on LinkedIn