Semafor App

Simple, selective availability app

September 27, 2025
Time to read: 3 minutes
Status: Live
Semafor is a selective availability manager that helps you decide who sees your status and when. With Semafor, you can create or join groups, set your availability independently for each one. Using a simple traffic-light system, green or red, you stay in control of your time, whether for work teams, clubs, or social circles.

    The Challenge:

    Coordinating availability across multiple teams and contexts is a persistent problem in modern work environments. Whether you're juggling client projects, internal teams, volunteer groups, or social circles, broadcasting a single status to everyone creates friction. Being "unavailable" for one commitment shouldn't mean appearing unavailable to all. Existing tools force users into binary states or overshare context across professional boundaries. The challenge was to build a selective availability system that respects context boundaries while remaining simple enough for everyday use, no calendar integrations to configure, no complex automations to maintain, just manual control over who sees what.

    The Approach

    Semafor takes a group-first approach to availability management. Users join distinct groups (projects, teams, organizations) and set independent availability statuses for each. A user might be "Available" for their design team, "Busy until 3pm" for a client project, and "Off this week" for a volunteer committee—all simultaneously, with each group seeing only their relevant status.

    The system is built around manual status updates rather than automated synchronization, giving users explicit control over their availability narrative. Group administrators can create custom groups and manage membership, while individual users maintain sovereignty over their status within each context. Email notifications through Resend keep group members informed when availability changes, reducing the need for constant app checking.

    The architecture prioritizes simplicity: React provides a responsive web interface, Firebase handles real-time status updates and group management, and Digital Ocean ensures reliable hosting. By avoiding calendar integrations and complex automation, Semafor reduces configuration overhead and potential privacy leakage between contexts.

    What’s next

    Semafor is currently in active use with several areas identified for enhancement:

    • Recurring status patterns: Allow users to set status templates (e.g., "Every Monday 9-5, set to Busy for Group A") to reduce repetitive manual updates
    • Status history and analytics: Provide group administrators with aggregated availability insights while preserving individual privacy
    • Mobile application: Extend beyond web to enable faster status updates on-the-go
    • Integration hooks: Selective, opt-in integrations with calendar tools for users who want hybrid manual/automatic workflows
    • Custom status options: Allow groups to define their own status vocabularies beyond the default set
    • Timezone handling improvements: Better display of time-specific statuses across distributed teams

    Stack:

    • Frontend: React
    • Backend & Database: Firebase (Authentication, Firestore, Real-time sync)
    • Notifications: Resend (Email delivery)
    • Hosting: Digital Ocean
    • Version Control: GitHub
    • Deployment: Continuous deployment pipeline from GitHub to Digital Ocean
    PROJECT LINK