Skip to content

Mobrius/ephemeral-social

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Ephemeral Social

A lightweight, ephemeral, forkable social network powered entirely by GitHub Issues

⚑ No database Β· 🧩 No backend server Β· 🌍 100% open source Β· πŸ«₯ Posts disappear over time


πŸ”— Live Demo

Experience Ephemeral Social here:

πŸ‘‰ https://ephemeral-social-test.vercel.app/


🎯 What is Ephemeral Social?

Ephemeral Social is a tiny, privacy-friendly social network where posts are intentionally not permanent. It is designed to be:

  • Ephemeral β€” posts automatically disappear after a configurable lifetime
  • Forkable β€” anyone can create their own instance in minutes
  • Serverless β€” everything runs via GitHub Issues + Vercel Functions
  • Open source β€” fully transparent, fully modifiable
  • Lightweight β€” ideal for communities, classrooms, hacks, or experimentation

No login required, no endless archive, no algorithmic addiction β€” just short-lived thoughts flowing through a minimal, elegant interface.


✨ Key Features

πŸ”Ή Anonymous persistent user identity

Each visitor gets a unique local ID (e.g., esuser-83ba4f1d) stored in localStorage. Posts appear under that ID instead of the user’s GitHub account.

πŸ”Ή Ephemeral posts with automatic cleanup

Posts older than a defined age are closed or deleted, depending on your settings.

Environment-controlled logic:

CLEAN=ON
CLEAN_MODE=DELETE   # or CLOSE
CLEAN_TIMER=48       # hours

The system guarantees:

  • no young posts are ever removed,
  • minimal API calls (client-side throttling),
  • deterministic behavior.

πŸ”Ή Smart client-side interest scoring

Users select topics they care about β†’ feed automatically orders posts by relevance.

πŸ”Ή Modern mobile-first UX

  • Floating Action Button (FAB) for new posts
  • FAB for feed refresh
  • Full-screen composer overlay
  • Smooth feed update (no flicker)
  • Optional Military Green Theme for a tactical guerrilla-style interface

πŸ”Ή Zero database β€” the feed is literally GitHub Issues

Each post = an Issue Tags = Labels Backend = GitHub API Everything transparent and auditable.

πŸ”Ή Easily brandable

Custom colors, logos, themes, and domain are trivial to customize. Ideal for schools, companies, communities, activists, or friends.


🧩 Architecture Overview

Frontend (Vercel / GitHub Pages)
↓
app.js (local identity + feed logic + composer + interest engine)
↓
GitHub Issues API (public_repo token)
↓
Vercel Serverless Functions (new-post, cleanup)

No servers, no databases, no vendor lock-in.


πŸš€ Deploy Your Own Instance

1️⃣ Fork this repository

https://github.com/Mobrius/ephemeral-social

2️⃣ Create a dedicated GitHub repository to store your posts

Your social network’s feed will live inside Issues of this repo.

Then set these constants in app.js:

const GITHUB_OWNER = "your-username";
const GITHUB_REPO  = "your-posts-repo";

3️⃣ Deploy on Vercel

Press:

β€œDeploy” β†’ Import GitHub Repo β†’ Add Environment Variables

4️⃣ Add required environment variables on Vercel

Variable Type Example Description
GITHUB_TOKEN secret ghp_abc123... Must have public_repo permission
CLEAN string ON Enables automatic post cleanup
CLEAN_MODE string CLOSE/DELETE CLOSE keeps history, DELETE removes content
CLEAN_TIMER number 48 Number of hours before posts expire

5️⃣ Visit your new social network

Enjoy the experience β€” or customize it endlessly.


🌿 Optional Themes

🎨 Default Dark Theme

Clean, minimal, modern.

πŸͺ– Military Green Theme

A tactical, guerrilla-inspired UI variant.

To enable manually:

<link rel="stylesheet" href="style-military.css">

Or use the built-in theme switcher in the footer.


🧹 Automatic Cleanup Logic

Cleanup is triggered by:

  • Client-side call every CLEAN_TIMER hours, per browser
  • Server-side filtering strictly removes only posts older than CLEAN_TIMER

This means:

βœ” No risk of deleting younger posts βœ” Minimal API usage βœ” No need for Cron jobs βœ” Distributed cleanup β€” effortless scalability


πŸ–₯️ Tech Stack

  • Frontend β†’ Vanilla JS + CSS + Vercel static hosting
  • Backend β†’ Vercel Serverless Functions
  • Database β†’ GitHub Issues
  • Auth β†’ Anonymous local identity (no GitHub login required)

🧩 Folder Structure

/
β”œβ”€β”€ index.html
β”œβ”€β”€ style.css
β”œβ”€β”€ style-military.css
β”œβ”€β”€ app.js
└── api/
    β”œβ”€β”€ new-post.js
    └── cleanup.js

🀝 Contributing

Contributions are welcome! Open an Issue or submit a PR β€” this project thrives on community forks and experimentation.


πŸ§‘β€πŸ’Ό Custom-Branded Versions (Pro)

For custom-branded or commercial instances:

πŸ‘‰ Open a discussion here:
https://github.com/Mobrius/ephemeral-social/discussions


πŸ“œ License

MIT β€” free to use, free to modify, free to fork.


🧭 Final Notes

Ephemeral Social was created to explore a different kind of social network: one that values impermanence, simplicity, and transparency over engagement farming.

You are free to fork it, break it, remix it, or build entire new ecosystems on top of it.

β€œNothing on the internet should last forever β€” except open source.”


About

An ephemeral, serverless, GitHub-powered social network.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors