The Problem
Creative studios — photography, design, and video production teams — manage their businesses across a mess of spreadsheets, WhatsApp groups, and generic project management tools. None of these are built for the mobile-first workflow that creative professionals actually use in the field.
Laya Studio is a cross-platform mobile app built with React Native that brings project tracking, client communication, portfolio showcase, and appointment scheduling into one purpose-built tool.
Architecture
The app is built with React Native + Expo on the frontend and Node.js + Firebase on the backend:
- React Native (Expo) — Cross-platform UI with custom animations, gesture handling, and native-feeling navigation
- Node.js API — Business logic layer handling scheduling conflicts, notification dispatch, and file processing
- Firebase — Authentication, Firestore for real-time data, Cloud Storage for media assets, and Cloud Messaging for push notifications
- Expo Notifications — Cross-platform push notifications for appointments, messages, and project updates
┌──────────────────────────┐
│ React Native (Expo) │
│ ┌──────┐ ┌───────────┐ │
│ │ iOS │ │ Android │ │
│ └──────┘ └───────────┘ │
└──────────────────────────┘
│
▼
┌──────────────────────────┐
│ Node.js API │
│ (Scheduling + Logic) │
└──────────────────────────┘
│
┌─────┴──────┐
▼ ▼
┌──────────┐ ┌───────────┐
│ Firestore │ │ Cloud │
│ (Data) │ │ Storage │
└──────────┘ │ (Media) │
└───────────┘
Key Features
Project Tracker — Kanban-style boards for managing creative projects through stages (Brief → In Progress → Review → Delivered). Attach reference files, set deadlines, and track time.
Client Communication — In-app messaging with read receipts, file sharing, and project-context threads. Clients get a lightweight companion view to approve deliverables and leave feedback.
Portfolio Showcase — Beautiful grid and carousel layouts for displaying finished work. Share portfolio links with prospective clients directly from the app.
Smart Scheduling — Calendar with availability management, automatic timezone handling, and conflict detection. Push notification reminders for both the studio and the client.
Results
| Metric | Value | |--------|-------| | Platforms | iOS + Android (single codebase) | | Framework | React Native + Expo (managed workflow) | | Auth | Firebase Authentication (email, Google, Apple) | | Real-time data | Firestore with offline persistence | | Media storage | Firebase Cloud Storage with thumbnail generation | | Notifications | Expo Push Notifications + Firebase Cloud Messaging | | Navigation | React Navigation with stack + tab navigators |
Key Learnings
-
Expo's managed workflow accelerates shipping. Not ejecting meant faster iterations, OTA updates, and no native build debugging. The tradeoff — limited native module access — never became a blocker for this use case.
-
Firestore's real-time listeners change the UX paradigm. Data syncs instantly across devices without polling. When a client approves a deliverable, the studio sees it immediately — this eliminated "did you see my email?" friction.
-
React Native gestures need careful tuning. The swipe-to-archive and drag-to-reorder interactions required
react-native-reanimatedfor 60fps performance. The built-in gesture system was too janky for production. -
Push notification UX is make-or-break. Smart batching (grouping multiple project updates into a single notification) and respecting quiet hours dramatically improved notification opt-in rates. Nobody wants 15 pings about file uploads.