CoOp:Anything
Search any game and see how much of it you can play with friends: every co-op mod, its stage, quality and community rating.
Cartas sin vergüenza para tus panas: humor latino y cartas personalizadas del grupo. Se juega desde el celular.
Translation pending
GamesJavaScript · CSSGitHub @martinpazminoOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
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 ↗Cartas sin vergüenza para tus panas. A Cards Against Humanity–style party game with Latino flavor, played on everyone's phone at the same time. Its main twist is that your group writes its own cards (inside jokes, nicknames, that one story about the tío), and the game makes sure they come up.
You need a Vercel account and a Redis database. Either works:
redis://default:<password>@<host>:<port>).martinpazmino/Cards_NikNsaue.
Vercel detects Vite and deploys the api/ function automatically. Click Deploy.KV_REST_API_URL and KV_REST_API_TOKEN.REDIS_URL with your connection string, for
Production and Preview. Vercel's "Redis" Marketplace integration sets
REDIS_URL for you.Share the short production URL (
https://<project>.vercel.app). The long…-<team>.vercel.appdeployment URLs sit behind Vercel's login (Deployment Protection): friends can't open them, and phones can't install the app from them. Invite links inside the app always use the production URL.Install it like an app: open the production URL, then browser menu → Install app / Add to Home Screen.
Vercel deploys your repo's production branch (usually
main) to the main URL. Merge this work intomain, or set the branch under Settings → Git → Production Branch.
This clones the project into your GitHub account and provisions Upstash during setup:
Tips
iad1), which is AWS us-east-1.KV_REST_API_URL + KV_REST_API_TOKEN or
UPSTASH_REDIS_REST_URL + UPSTASH_REDIS_REST_TOKEN (Upstash REST), or
REDIS_URL / KV_URL (any redis:// or rediss:// URL). If both kinds are
set, Upstash REST wins. See .env.example.npm install
npm run dev # http://localhost:5173, the API runs inside Vite with an in-memory store
No database or account is needed locally. The dev server also listens on your
network, so phones on the same Wi-Fi can join at http://<your-computer-ip>:5173.
npm test # engine, API, Redis (if redis-server is installed) and i18n tests
npm run build # production build into dist/
npm start # serve dist/ + API like production, on http://localhost:3000
npm run e2e # 4 simulated phones play a full game (needs Playwright + Chromium)
npm run check:cards # validate the built-in decks
To develop against a real database, copy .env.example to .env.local (it's
git-ignored) and fill in one option, or run vercel env pull .env.local. Both
npm run dev and npm start read it.
shared/cards/clasico.js, spanglish.js and picante.js.
___ for each blank (up to 2). Two blanks means "pick 2".
A prompt without a blank is a question.npm run check:cards to catch duplicates and style issues.shared/cards/index.js.DEFAULT_SETTINGS in shared/constants.js.APP_NAME in shared/constants.js, plus index.html,
public/manifest.webmanifest, the Logo in src/components/ui.jsx and a
few strings in src/lib/strings.js.src/lib/strings.js (npm test checks every key exists in ES and EN).public/icons/icon.svg and run npm run assets (uses Playwright).A static React app plus one Vercel Function, with game state in Redis. The server is authoritative: phones send moves, the server validates them, and each phone only receives what its player is allowed to see. Phones poll a tiny version number about once a second, served from the CDN, and download the full state only when it changes. The full design (why not WebSockets, consistency, security, costs) is in docs/ARCHITECTURE.md.
api/index.js Vercel Function: every /api/* request
server/handler.js HTTP routing, errors, CDN cache headers
server/rooms.js rooms & decks: auth, compare-and-swap writes, deck sync
server/store.js Redis store (Upstash REST or REDIS_URL, Lua CAS) + in-memory store
shared/game.js pure game engine (state machine)
shared/view.js per-player view (what each phone may see)
shared/text.js blanks, filling prompts with answers
shared/cards/ the decks
src/ React app (screens, components, sync hook, i18n, styles)
test/ node:test suites
scripts/ dev server, e2e, card/i18n checks, asset generator
Everything fits in free tiers for a group of friends. A 2-hour, 8-player night uses about 40K Redis commands: Upstash's free plan includes 500K per month, and on a Redis Cloud free database a room takes only tens of KB, with one connection per running function. See docs/ARCHITECTURE.md.
Game mechanics inspired by Cards Against Humanity. All cards in this repo are original, and this project is not affiliated with Cards Against Humanity LLC. Made for playing with friends, not for sale.