Neocities Realtime Chat (HTML + Firebase)

Your account is stored with Firebase Auth. Usernames are saved on your profile and attached to messages.

Tip: You can host this single file on Neocities. No server required.

How to set this up (one-time)
  1. Create a Firebase project → Add a Web App.
  2. Enable Email/Password in Authentication → Sign-in method.
  3. Enable Firestore Database (Start in production mode).
  4. Copy your Firebase config and paste it into the firebaseConfig object below.
  5. Deploy this single HTML file to Neocities. Done.

Optional but recommended Firestore rules (paste in Rules):

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /rooms/{room}/messages/{msg} {
      allow read: if request.auth != null;
      allow create: if request.auth != null
        && request.resource.data.text is string
        && request.resource.data.text.size() <= 800
        && request.resource.data.ts == request.time;
      allow update, delete: if false; // messages immutable
    }
    match /users/{uid} {
      allow read: if request.auth != null;
      allow write: if request.auth != null && request.auth.uid == uid;
    }
  }
}