Paper Chat: a real-time chat room on lined paper. Static site on GitHub Pages + Firebase Realtime Database, messages wiped daily by a GitHub Action.
Translation pending
SocialHTML · CSSGitHub @DefNotXavierOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A real-time chat room that looks like a sheet of lined notebook paper. Open the page, pick a name, and start talking. Everyone on the site sees new messages instantly, along with a live count of who's online.
There's no backend server to run or pay for. The site is static files on GitHub Pages, and Firebase Realtime Database stores the messages and pushes them to every open browser. A GitHub Action clears the chat every night at midnight UTC, so it starts fresh each day.
Live site: https://defnotxavier.github.io/paper-chat/
Browser (GitHub Pages) <── live updates ──> Firebase Realtime Database
index.html /messages (chat history)
firebase-config.js /presence (who's online)
▲
GitHub Action (daily, midnight UTC) ── deletes ───────┘ /messages
public/ is the website. GitHub Pages serves it, and there is no server to run.public/firebase-config.js tells the page which Firebase database to use.database.rules.json is the security rules for the database. Anyone can read and send messages, but nobody can edit or delete them from the browser, and names/messages are limited to 32/500 characters..github/workflows/clear-chat.yml runs every day and deletes all messages..github/workflows/pages.yml publishes public/ to GitHub Pages whenever it changes.database.rules.json, and click Publish.</>, register an app (no hosting needed), and copy the firebaseConfig values into public/firebase-config.js.
databaseURL is filled in. If it's missing, copy the URL shown at the top of the Realtime Database Data tab..json file downloads.FIREBASE_SERVICE_ACCOUNT: paste the entire contents of the downloaded .json file.FIREBASE_DATABASE_URL: the same databaseURL from Step 1..json file afterwards. It's a password to your database, so never commit it.main. The Deploy to GitHub Pages action publishes the site.The page uses JavaScript modules, so it has to be served rather than opened as a file. From the repo folder run:
npx serve public
Then open the URL it prints. It uses the same Firebase database as the live site.
MIT, see LICENSE. If you fork this, swap in your own Firebase project in public/firebase-config.js so your copy doesn't share this chat's database.