gothic imageboard-style social site. real-time chat, forum, and live presence.
live: https://cemeterychatroom.web.app
a small social space built around a chan-board aesthetic. dark purple palette, MS Gothic font, scanlines. users sign up with a username, post in the live chat, and discuss things in the forum.
- home β real-time chatboard. posts show name, chan-style timestamp, and post number. name field lets you post under any name per message
- forum β three categories (graveyard gossip, music crypt, art and poetry). threads, replies, last-post tracking
- sidebar β live online user list via supabase realtime presence
- background β rotates randomly between six images every three hours, persisted in localStorage
| layer | tech |
|---|---|
| frontend | vanilla js (es modules), no build step |
| backend | supabase (postgres + realtime + auth) |
| hosting | firebase hosting |
| fonts | MS Gothic / DotGothic16 (google fonts fallback) |
see SETUP.md for the full walkthrough. short version:
- create a supabase project at supabase.com (free, no credit card)
- run
schema.sqlin the supabase sql editor - turn off email confirmation in supabase auth settings
- copy
public/js/config.example.jstopublic/js/config.js - paste your supabase url and anon key into
public/js/config.js firebase deploy --only hosting --project <your-project-id>
or drop the public/ folder on netlify.com/drop β supabase works from any host.
needs a local http server (modules don't load over file://):
cd public
python3 -m http.server 8080then open localhost:8080. requires public/js/config.js to exist and contain real supabase credentials.