aDress — About the Project

1. Overview

aDress is a cross-platform mobile application designed to solve a universal social fashion dilemma: coordinating event outfits, preventing embarrassing duplicate dresses or clashing suits, and building private, shared photo galleries for major celebrations.

Whether it is a high school formal, wedding, milestone birthday, prom, or charity gala, aDress replaces messy group chats and screenshot albums with an elegant, private, and localized event outfit hub.


2. The Problem & The Solution

The Problem

  • Outfit Clashes: Attendees frequently worry about wearing the exact same outfit or color as someone else, leading to anxiety and awkward moments.
  • Chaotic Group Chats: Coordinating looks across SMS, WhatsApp, and Instagram DMs is fragmented, unorganized, and lacks privacy controls.
  • Transient Photo Sharing: Event photos get lost in personal camera rolls and are rarely collected into a single, high-quality private gallery accessible to all guests.

The Solution

  • Private Event Hubs: Hosts create invite-only event spaces with verified attendees.
  • Visual Outfit Board: Guests upload photos of their planned dresses, suits, and accessories before the event.
  • Real-Time Social Interaction: Attendees comment, react, and coordinate accessories in one place.
  • Shared Event Memories: During and after the event, guests upload high-resolution photos into a dedicated, privacy-protected event gallery.

3. Core Features

🌟 Event Creation & Management

  • Rich Details: Event name, date, time, description, and interactive Google Maps venue integration.
  • Visual Cover Photos: Hosts can upload custom cover artwork or use dynamic placeholders.
  • Host Moderation: Event creators can enable/disable comments, enforce photo moderation queues, and approve or reject join requests.

🔗 Frictionless Sharing & Universal Deep Links

  • Viral App Links: Custom deep links (https://www.adress.com.au/join/:code) route directly into the mobile app on both iOS and Android.
  • QR Codes & Native Share: One-tap sharing via OS share sheets, QR codes, SMS, WhatsApp, Messenger, and email.

🌍 Global Reach & Internationalization

  • 15 Native Locales: Full localization in English, Spanish, French, German, Italian, Portuguese, Dutch, Russian, Turkish, Greek, Bulgarian, Swedish, Polish, Afrikaans, and Traditional/Simplified Chinese.
  • Locale-Aware Formatting: Dates, times, and UI strings automatically conform to device region preferences.

🔒 Privacy by Design & Security

  • Zero-Password SSO: Seamless authentication with Google Sign-In and Apple Sign-In.
  • EXIF Stripping: All uploaded photos are automatically sanitized with sharp to remove privacy-sensitive metadata (e.g. GPS coordinates).
  • Automated Data Retention: Automated 48-hour event soft-delete and purge pipelines via Google Cloud Scheduler ensure data minimization and GDPR compliance.

💎 Monetization & Subscriptions

  • Google AdMob: Integrated banner ads for free-tier users.
  • In-App Subscriptions: Powered by RevenueCat for annual VIP upgrades ($4.99/yr) unlocking unlimited event creation, ad-free experience, and expanded attendee limits.

4. Technology Stack & Architecture

Frontend (Mobile App)

  • Framework: React Native / Expo SDK 55 (TypeScript)
  • State & Data Fetching: @tanstack/react-query (React Query)
  • Secure Storage: expo-secure-store (Encrypted Keystore / Keychain)
  • Animations: react-native-reanimated (60fps fluid UI)
  • Monetization: react-native-google-mobile-ads & react-native-purchases (RevenueCat)
  • Push Notifications: expo-notifications

Backend (API Service)

  • Runtime & Framework: Node.js 22 / Express (TypeScript)
  • Deployment: Google Cloud Run containerized via Docker (australia-southeast1)
  • Database: Google Cloud SQL (PostgreSQL)
  • Object Storage: Google Cloud Storage (GCS)
  • Image Processing: sharp (High-performance EXIF stripping and thumbnail generation)
  • Secret Management: Google Secret Manager

5. Engineering Challenges & Breakthroughs

  1. High-Density Shared Wi-Fi Rate Limiting:

    • Challenge: During live school formals and parties, hundreds of guests on the same venue Wi-Fi or cellular CGNAT IP generated rapid bursts of photo uploads and comments, causing standard IP-based rate limiters to trigger false-positive 429 Too Many Requests lockouts.
    • Solution: Engineered a hybrid rate-limiter behind Cloud Run's trust proxy that isolates quotas per authenticated user token rather than by IP address, paired with a generous 5,000 req / 15-minute threshold.
  2. Universal App Linking Across OS Versions:

    • Challenge: Android 12+ and iOS 18+ strictly enforce domain association verification before allowing deep links to bypass the browser.
    • Solution: Configured and verified Digital Asset Links (assetlinks.json) with both EAS upload and Google Play App Signing SHA-256 certificate fingerprints, alongside Apple App Site Association (apple-app-site-association) served with direct in-memory fallback routing on Cloud Run and FTP.

6. Project Links & Availability

Built With

Share this project:

Updates