I Built a Social Media App Where Posts Self-Destruct (And Why That's the Future)
Social media is broken. And not in a "we need better moderation" way — it's broken at the fundamental mechanic level.
Every platform operates on the same assumption: content is permanent. You post something. It lives forever. The algorithm decides who sees it. You have no real control. And your feed becomes a graveyard of irrelevant posts from three years ago mixed with rage-bait engineered to keep you scrolling.
I wanted to build something different. So I built FlashFeed — a PWA social platform where every single post has a countdown timer, and when it hits zero, it's gone.
The Core Mechanic: Rescue or Perish
Here's how FlashFeed works:
- You create a post. It gets a countdown timer based on your account tier (24 hours for free accounts, up to 720 hours for paid).
- Every interaction — a like, a comment, a share, even a view — adds time to that post's timer.
- If nobody engages, the post self-destructs.
That's it. That's the whole thing. And it changes everything.
post created → expires_at = now() + tier_hours
interaction → Postgres trigger → expires_at = LEAST(expires_at + time_added, hard_cap)
pg_cron → every 15 min → soft-delete expired posts
The database trigger fires on every interaction. If a post is getting love, it stays alive. If it's dead weight nobody cares about, it disappears cleanly.
Why This Solves Real Problems
Problem 1: The Permanence Paradox
On Twitter/X, Instagram, Facebook — everything you post is a permanent record. That creates a chilling effect. People over-edit, over-think, or don't post at all because a bad take from Tuesday will still be showing up in search results in 2031.
FlashFeed flips this. Posts are ephemeral by default. You post something. It lives for 24 hours unless people care enough to keep it alive. Low stakes = more authentic expression.
Problem 2: Algorithmic Burial
On every major platform, the algorithm decides your content's fate. A post from a creator you love might never reach you. A post you made two weeks ago might suddenly get surfaced to people who have no context.
FlashFeed has zero algorithmic feed manipulation in the MVP. Chronological order only. What's alive is visible. What's dead is gone. The community itself acts as the filter — not a black-box recommendation engine optimized for engagement metrics.
Problem 3: Engagement Bait
Current platforms reward content that triggers outrage, controversy, or addictive loops because those metrics drive time-on-platform. The incentive structure is misaligned.
FlashFeed's incentive is different: create content worth saving. If your post is valuable, people will interact to keep it alive. The platform naturally surfaces quality because quality gets rescued. Bad content dies quietly.
Problem 4: Feed Clutter
Your Twitter feed has posts from three years ago. Your Facebook feed is full of posts from people you barely know about things that happened months ago. There's no expiry date on irrelevance.
On FlashFeed, the feed is always fresh. Dead posts are gone. You're only seeing what's currently alive — content the community is actively keeping alive right now.
The Tech Stack (For the Devs in the Room)
I built this as a Next.js 16 PWA with a few interesting architectural choices:
Auth: Firebase for phone OTP + Google sign-in. Client gets a Firebase ID token, sends it to /api/auth/verify-otp. Server verifies with Firebase Admin SDK, creates/loads the user in Supabase, and sets an ff_user_id httpOnly cookie. No Supabase Auth — Supabase is purely database + Realtime.
The timer system: Postgres triggers + pg_cron. Every interaction fires a DB trigger that calls extend_post_timer(). A pg_cron job runs every 15 minutes to soft-delete expired free posts and archive expired paid posts. No application-layer polling. The database handles the expiry logic entirely.
Realtime: PostCards subscribe to Supabase Realtime. When someone likes a post, the timer ticks update live across all connected clients. You can watch your post get rescued in real-time.
Tiers:
| Tier | Base Duration | Hard Cap |
|---|---|---|
| Free | 24 hours | 7 days |
| Spark | 72 hours | 14 days |
| Flame | 168 hours | 30 days |
| Eternal | 720 hours | ~10 years |
Time added per interaction: like +15m, comment +1h, share +3h, view +2m. Paid tiers get 2x multiplier.
PWA: next-pwa with service worker for offline support. Installable on Android and iOS. The whole thing works on mobile without an app store.
What Makes This Better Than Existing Apps
Let me be direct about the comparison:
vs. Twitter/X: No algorithm. No permanent record. No rage-bait optimization. Just chronological posts that live or die by community engagement.
vs. Instagram: No image-only format. No curated perfection culture. Posts aren't permanent trophies — they're living things that need community support to survive.
vs. Snapchat: Snapchat's ephemeral mechanic is about privacy (disappearing after viewing). FlashFeed's is about quality (disappearing if nobody cares). Fundamentally different philosophy.
vs. Mastodon/Fediverse: FlashFeed doesn't try to replicate Twitter with better moderation. It rebuilds the incentive structure from scratch. It's not a federated Twitter — it's a different kind of social graph entirely.
The Psychological Shift
Here's the thing that surprised me most when thinking through this mechanic: it changes how you read posts, not just how you write them.
On Twitter, you scroll passively. Content is infinite. Your engagement doesn't matter — the algorithm will surface what it wants regardless.
On FlashFeed, when you see a post you like, you know that liking it actually keeps it alive. Your like is a vote. Your comment is a rescue. You become an active participant in curation, not a passive consumer.
That changes the psychology of the whole interaction. Suddenly engagement isn't hollow — it has stakes.
What's Next
The MVP is live. Features in the pipeline:
- Post detail pages with full comment threads
- User profile pages with active/archived post history
- Notifications when your post is near expiry (so you can share it before it dies)
- Topic-based feeds (you subscribed to topics during onboarding — this makes them useful)
- Analytics for creators: see the rescue curve on your posts
The core mechanic is the innovation. Everything else is execution.
Try It / Follow Along
FlashFeed is live at flashfeed.social — install it as a PWA on your phone.
If you're a developer and want to dig into the timer mechanic, the Postgres trigger code is the most interesting part. Happy to share the extend_post_timer() function in the comments if there's interest.
What do you think about ephemeral-by-default social media? Is permanence a feature or a bug? Drop a comment — I'd genuinely love to hear the pushback.
Built with Next.js 16, Supabase, Firebase Auth, TypeScript, and Tailwind CSS 4. No VC funding. No algorithm team. Just a mechanic I think is worth exploring.
Top comments (0)