A free, safe, account-free space to talk anime.
Pick an avatar, get paired with a random fan, and debate.
Ani-Sho exists to be a free, safe space for people to discuss anime.
The big goal is to build this whole ecosystem account free. No sign-up, no email, no password, no "continue with Google". You pick a picture, get a name, and you are in. Users should never have to create an account, and that is a rule for every feature we add.
Features are approved when they help that goal. A pull request has a strong chance if it:
A pull request will be declined if it adds sign-up, logins, paywalls, ads, or tracking.
Questions, ideas, bug reports, or just want to argue about power scaling?
It is the fastest way to ask how something works or pitch a feature before you build it.
We would love for anime artists to create original works for user profile pics. Every guest picks one to represent them while they talk, so your art is the face of the community.
How to submit:
public/avatars and one line to src/lib/avatars.ts.By submitting, you confirm the work is yours and that it can be used in this project under the repo's license. Accepted artists are credited here.
Want to take one on? Say so in the Discord first so two people are not building the same thing.
Requires Node.js 20 or newer. No environment variables and no API keys.
git clone https://github.com/maxiujin/anibate.git
cd anibate
npm install
npm run dev
Open http://localhost:3000.
To try a full match on one machine, open the site in two different browsers (or one normal window and one private window), enter as a guest in each, and press Enter gauntlet in both.
src/lib/guest.ts.public/avatars and are listed in src/lib/avatars.ts.src/lib/forum-store.ts). The browser polls /api/gauntlet every 2.5 seconds.src/lib/topics.ts.src/app/page.tsx landing page and gauntlet shell
src/app/api/guest/route.ts start or end a guest session
src/app/api/gauntlet/route.ts join, leave, send message, poll state
src/components/ guest picker, header chip, gauntlet UI
src/lib/ guest session, avatars, topics, in-memory store
public/avatars/ avatar images
npm run dev # local dev server
npm run build # production build
npm run start # serve the production build
npm run lint # eslint
npm run lint and npm run build.main and say how it helps the goal.Merged pull requests are deployed to the live site automatically.
Good first changes: add a topic in src/lib/topics.ts, or add an avatar (drop a square image in public/avatars and add one line to src/lib/avatars.ts).
Never commit secrets. The app needs none; see .env.example.
A free, safe, account-free space to talk anime.
Pick an avatar, get paired with a random fan, and debate.
Ani-Sho exists to be a free, safe space for people to discuss anime.
The big goal is to build this whole ecosystem account free. No sign-up, no email, no password, no "continue with Google". You pick a picture, get a name, and you are in. Users should never have to create an account, and that is a rule for every feature we add.
Features are approved when they help that goal. A pull request has a strong chance if it:
A pull request will be declined if it adds sign-up, logins, paywalls, ads, or tracking.
Questions, ideas, bug reports, or just want to argue about power scaling?
It is the fastest way to ask how something works or pitch a feature before you build it.
We would love for anime artists to create original works for user profile pics. Every guest picks one to represent them while they talk, so your art is the face of the community.
How to submit:
public/avatars and one line to src/lib/avatars.ts.By submitting, you confirm the work is yours and that it can be used in this project under the repo's license. Accepted artists are credited here.
Want to take one on? Say so in the Discord first so two people are not building the same thing.
Requires Node.js 20 or newer. No environment variables and no API keys.
git clone https://github.com/maxiujin/anibate.git
cd anibate
npm install
npm run dev
Open http://localhost:3000.
To try a full match on one machine, open the site in two different browsers (or one normal window and one private window), enter as a guest in each, and press Enter gauntlet in both.
src/lib/guest.ts.public/avatars and are listed in src/lib/avatars.ts.src/lib/forum-store.ts). The browser polls /api/gauntlet every 2.5 seconds.src/lib/topics.ts.src/app/page.tsx landing page and gauntlet shell
src/app/api/guest/route.ts start or end a guest session
src/app/api/gauntlet/route.ts join, leave, send message, poll state
src/components/ guest picker, header chip, gauntlet UI
src/lib/ guest session, avatars, topics, in-memory store
public/avatars/ avatar images
npm run dev # local dev server
npm run build # production build
npm run start # serve the production build
npm run lint # eslint
npm run lint and npm run build.main and say how it helps the goal.Merged pull requests are deployed to the live site automatically.
Good first changes: add a topic in src/lib/topics.ts, or add an avatar (drop a square image in public/avatars and add one line to src/lib/avatars.ts).
Never commit secrets. The app needs none; see .env.example.