Inspiration

Layoffs affect more than the people who leave. The people who stay often carry guilt, anxiety, numbness, anger, and lost trust—while still being expected to keep work moving.

We wanted to create room for the quieter aftermath of layoffs. Talking to coworkers can feel risky when they share your manager, team, or career context. Reground is built around the idea that a stranger from another company can make honesty feel safer.

What it does

Reground is a private peer-support space for people carrying the emotional impact of workplace change.

Users complete a one-tap daily check-in by choosing a feeling closest to their experience: anxious, guilty, numb, angry/resentful, or holding on okay. They are then matched anonymously with someone from a different company who has checked in with a similar state.

Chats are short and session-based. There are no public profiles, usernames, avatars, company names, streaks, or persistent direct messages. Participants only see a masked label such as “Someone from a company ending in .io.”

How we built it

We built Reground with Next.js 14, TypeScript, Tailwind CSS, Supabase Auth, Postgres, and Supabase Realtime.

Email magic links handle authentication. On first sign-in, we create a private profile and derive the user’s company domain from their email.

A Postgres trigger handles matching immediately after a check-in. It prioritizes:

  1. A real person at another company with the same check-in category.
  2. A real person at another company with any category.
  3. A seeded demo peer, preferring the same category.

Supabase Realtime delivers matches and messages live. Row Level Security protects profiles, check-ins, matches, messages, reports, and feedback.

Challenges we ran into

The biggest challenge was making anonymity real at every layer, not just in the interface. We needed to ensure another participant could never access an email address or full company domain through database queries, Realtime events, or client-side data.

We also needed matching to remain safe under concurrent check-ins. We used transaction-scoped advisory locking and row locking so two users cannot be matched to the same real waiting peer.

Finally, we needed a reliable demo experience without pretending every conversation was human. Seeded fallback peers are clearly labeled as simulated and respond with transparent, scripted supportive lines.

Accomplishments that we're proud of

  • Built cross-company matching as the product’s core differentiator.
  • Designed the experience without public identities, gamification, or workplace visibility.
  • Created session-bound chats that cannot be reopened after ending or expiry.
  • Added reporting, ending, and per-participant feedback flows.
  • Kept the visual language calm and restrained rather than treating emotional support like a productivity game.
  • Made the demo resilient with seeded fallback peers while being explicit about simulation.

What we learned

We learned that privacy is a product decision and a database decision. It has to shape authorization, queries, functions, Realtime subscriptions, and interface copy from the beginning.

We also learned that supportive experiences need careful language. Reground does not try to diagnose, solve, or optimize someone’s emotions. Sometimes the right first step is simply making it easier to name what is happening.

What's next for reground

Next, we want to validate the matching experience with more real participants and improve the reliability of the waiting-to-match journey under real-world traffic.

We also want to refine onboarding and safety guidance, continue testing whether cross-company matching helps people speak more openly, and strengthen the operational tools needed to review reports responsibly.

Reground will remain focused on a simple promise: a private, low-pressure place to land when work has changed around you.

Built With

Share this project:

Updates