SAMAN WORKS

Software product · Case study

Shahan Workspace

A calm, invite-only workspace for teams: tasks at the centre, with chat, calendar and announcements supporting the work. Built for mobile with React Native and Supabase, with a companion desktop app.

Role
Product owner & design direction
Year
2026
Discipline
Apps, Software & Development, Websites
Tools & technologies
  • React Native
  • Expo
  • TypeScript
  • Supabase
  • PostgreSQL
  • TanStack Query
  • Zustand
  • React Hook Form
  • Zod
  • Next.js
Shahan Workspace wordmark

Responsibilities

  • Product direction
  • UX and design approval
  • Release testing on iPhone and Android
Type
Team workspace — mobile and desktop
Platforms
iOS and Android (Expo), desktop (Next.js)
Backend
Supabase: Postgres, Auth, Storage, Realtime, Edge Functions
Role
Product owner & design direction

Overview

Shahan Workspace is a premium workspace for teams. Its design philosophy is closer to Linear, Apple and Notion Calendar than to dense project-management tools: one primary action per screen, and white space treated as a feature.

What it does

Home / My Day — today's tasks, a once-a-day Morning Brief, pinned announcements and notifications that need attention.

Projects & tasks — a list and timeline view, single-assignee tasks with statuses and priorities, swipe to complete.

Calendar — agenda-first month and week views with quick add.

Chat — channels and direct messages with replies, reactions, read receipts, typing indicators, attachments and search.

Announcements, push notifications, Spotlight-style global search, a people directory and System / Light / Dark appearance.

Architecture

The mobile app uses Expo Router with TypeScript in strict mode. Server state lives only in TanStack Query; Zustand holds short-lived interface state. Forms are validated with Zod through React Hook Form.

The backend is Supabase: Postgres with Row-Level Security, Auth with invite-only accounts, Storage for attachments and avatars, Realtime for chat and activity, and Edge Functions for invitations and push delivery. The desktop app is a separate Next.js client of the same backend.

Security, performance and accessibility

A privilege-escalation path was closed with column-level grants beneath Row-Level Security, and cross-tenant isolation was verified with executed attack tests. Uploads have size caps and MIME allow-lists.

The calendar agenda was virtualised, taking its p95 render time from 61 ms to 14 ms (documented in the project's benchmarks).

Text contrast meets WCAG AA, controls are labelled, and touch targets are at least 44 pt.

Have a project with similar ambitions?