Inspiration

I blocked someone on Instagram at midnight, regretted it by morning, and immediately unblocked them — communicating exactly the emotional whiplash I was trying to avoid.

Every platform gives you three options when a relationship gets difficult: mute (passive — you can still stalk), restrict (theater — their posts still hit your feed), or hard block (a permanent decision made at your worst moment). None of them are commitment devices. All of them can be undone the second your resolve weakens.

Muting fails because the option to check is still there. If the option exists, you'll use it. Our brains don't resist open doors. The only thing that works is removing the door.

What It Does

Set a duration — 2 hours to 30 days. The block locks in immediately. No early cancellation. No override. When the timer expires, it lifts automatically. No awkward re-follow. No explanation owed.

The other person sees a standard "This account is currently unavailable" screen — identical to any deactivated account. No notification. No timer. No message.

The irreversibility is the feature.

The Domain

alley.social came through name.com's Domain Roulette challenge. The obvious read is literal. The stronger read is patli galli — a Hindi/Punjabi term for a narrow side street you duck into briefly before returning to the main road. A detour, not an exit.

How I Built It

Stack: Next.js 14, Supabase, Tailwind CSS 3, Vercel.

Product logic lives at the database layer — a feed_posts view and Row Level Security in Postgres enforce the deactivated-account illusion across feed, search, and notifications. Block expiry runs via a lift_expired_blocks() Postgres function on pg_cron. No polling, no client-side timers.

One deliberate detail: when a block lifts, posts made during the block window are permanently filtered from the unblocked user's feed. The feed resumes from lift — not from when you went away.

Built entirely with Claude Code and Claude Design. No Figma.

What I Learned

Facebook identified this problem with "Take a Break." They shipped a soft filter. The gap between identifying a problem and shipping a real solution isn't always technical — sometimes the solution just conflicts with the business model.

Built With

  • nextjs
  • supabase
  • tailwindcss
Share this project:

Updates

Submission history