Back to work
// PERSONAL PROJECT / FULL-STACK DEVELOPMENT WEB LIVE

SiteBahi.

A working day. A connected system.

A bilingual, mobile-first platform that brings construction teams, building owners, and suppliers into one connected workflow.

Open live site
MY CONTRIBUTION

Product interfaces, APIs, cloud data, and offline synchronization

STACK

React · TypeScript · Tailwind CSS · Cloudflare Workers · D1 · R2

PLATFORM

Web live · Android closed beta

Try the offline demo
EXPLORE THE PRODUCT
A DIFFERENT VIEW. ONE SYSTEM.
sitebahi.inWEB
WEB + MOBILE

Capture the day. Keep work moving.

Attendance, daily work, materials, and site evidence connect to a daily report and the next day's plan.

PUBLIC PRODUCT PREVIEW / DEMONSTRATION DATA

01 / THE PROBLEM

One day.
Many moving parts.

Product interfaces & workflowsRole-aware APIsOffline records & synchronizationBilingual web experienceCloud data & mediaWeb & Android contracts

A construction day creates many small records: who worked, what changed, what arrived, and what needs a decision. SiteBahi brings those records into a shared daily workflow, with a different view for each person involved.

The product connects site attendance, daily work, material requests, photo and voice evidence, owner review, and supplier operations. The web experience supports English and Hindi, with local records and queues for interrupted connectivity.

02 / PLAY THE WORKFLOW

Lose the signal.
Keep the work.

Write a sample report offline.
Watch it reach the shared record.

SITEBAHI / SYNTHETIC DEMONSTRATIONOffline
  1. 01 Save on the device
  2. 02 Reconnect & synchronize
  3. 03 Review any conflict

Start offline. Write a sample report and follow its journey.

Device copy

01
SAMPLE SITE / DAILY REPORT

Site prepared for the next stage.

LAST SHARED VERSIONv1

Outbox

02
0pending changes

Your next change starts here.

READY

Shared record

03
SAMPLE SITE / DAILY REPORT

Site prepared for the next stage.

SHARED VERSIONv1
Try a harder scenario

Save offline, change the shared sample, then reconnect to see a conflict. Use the checkbox to see a failed sync retain its queue.

A small in-memory simulation of the workflow. Sample changes clear on reload; no SiteBahi service or customer records are used.

Read the real implementation
SAMPLE SITE / DAILY REPORT

Record a little progress.

Use the prepared example or write a short fictional note.

SYNTHETIC DATA · UP TO 180 CHARACTERS
03 / UNDER THE HOOD

Connected layers.
Clear responsibilities.

The product, the access boundary,
and the records behind it.

EXPERIENCE01

React · Vinext · TypeScript · Tailwind

A bilingual PWA with distinct role interfaces. An Expo / React Native Android client shares the versioned API contracts.

APPLICATION02

Cloudflare Workers · REST · Firebase Auth

Versioned endpoints resolve verified identity, membership, site, and role at the API boundary. Domain calculations stay separate from screen components.

DATA03

D1 · R2 · IndexedDB

Tenant-scoped relational records and protected media in the cloud. PIN-protected local records, mutation queues, and conflict state on the web client.

04 / ENGINEERING CHOICES

The details
behind the product.

Constraints, implementation,
and the tradeoffs they introduce.

01

Keep a day's work available offline.

CONSTRAINT

Site connectivity can be interrupted while a person is recording work.

IMPLEMENTATION

The web client keeps scoped records and queued changes in IndexedDB, with a PIN-derived encrypted device vault. Queues retain retry and conflict information for synchronization.

TRADEOFF

Offline capture needs visible sync state and conflict handling. A local save cannot stand in for confirmed cloud synchronization.

02

Put access rules behind every screen.

CONSTRAINT

Contractors and owners share site progress while some records must stay private.

IMPLEMENTATION

API authorization resolves tenant membership, site, and role from the authenticated identity. Private records are filtered at the boundary, alongside role-specific interfaces.

TRADEOFF

The API carries the access decision; hiding an interface control alone is insufficient. Shared work and private records need distinct contracts.

03

Share the contract. Respect the device.

CONSTRAINT

Web and Android need consistent records while their storage and security primitives differ.

IMPLEMENTATION

Both clients use versioned diary endpoints and shared domain rules, while web and native clients keep separate protected local stores.

TRADEOFF

A shared API reduces contract drift, while platform-specific storage still requires its own implementation and validation.

05 / THE PRODUCT TODAY

Built.
And live.

The web product is live at sitebahi.in. Visitors can explore its public product previews and demo entry point. The screens here use demonstration data; no customer records or adoption statistics are presented.

06 / LET’S CONNECTLET’S MAKE SOMETHING USEFUL.

Have a complex problem?
Let’s make it clear.