SlopScore
20 crowdincl. 3 critics

cr-deck-organizer

Progressive Web App (PWA) to manage your Clash Royale decks and generate share links
Open repo on GitHub Open the demogithub.com/n-zad/cr-deck-organizer
TypeScript · ★ 1 · 0 forks · MIT · paperwork by the Cap'mmostly ai (inferred)light human (inferred)works-on-my-machine (inferred)other
listed 1 hour ago by n-zad · last checked 1 hour ago
The owner didn't write this. This repo never submitted itself. The Cap'm found it on a truffle trawl and wrote its paperwork from what GitHub already shows. Picked by hand by the Cap'm on 2026-09-28: Progressive Web App (PWA) to manage your Clash Royale decks and generate share links; its own README says "--- This project was built with Cursor ( and AI coding agents". 1 stars; MIT license. The owner did not submit this. Votes count; awards don't until the owner claims it.

I'm not calling your project slop! Geeze, it's a joke... Do you own this repo?

Log in with GitHub as n-zad. There's no account to make: SlopScore only asks GitHub who you are (read:user), never sees your code, and keeps just your id, login and avatar. Then you can:

  • Keep it, on your terms. Commit your own slopscore.md (spec) and press Refresh. Your paperwork replaces the Cap'm's, and you can submit it for Slop of the Day.
  • Take it down. One click on Remove. It stays gone; the trawl never brings it back.

Log in with GitHub

Can't log in as the owner? Request a takedown. No login needed, and a trawled listing comes down right away.

GitHub says
Progressive Web App (PWA) to manage your Clash Royale decks and generate share links
website
https://n-zad.github.io/cr-deck-organizer/
created
2026-09-13 · pushed 6 hours ago · 5 commits · 1 contributor
languages
TypeScript 97%JavaScript 2%CSS 1%HTML 1%
paperwork
licensereadme 42% health
dependencies
no dependency graph (no manifest, or disabled) · OSV.dev, checked 1 hour ago

Disclosures, inferred by the Cap'm

slopbucket
vibe-coded
category
other
ai_generated
mostly
human_touch
light
status
works-on-my-machine
language (detected)
csshtmljavascripttypescript
license (detected)
mit

The Cap'm's log

The Cap'm wrote this paperwork, not the owner. This repo never submitted itself to SlopScore. The Cap'm picked it by hand: Progressive Web App (PWA) to manage your Clash Royale decks and generate share links; its own README says "--- This project was built with Cursor ( and AI coding agents". It carries the MIT license. The disclosures above are his best guess from what GitHub shows.

Is this yours? Commit a real slopscore.md and press Refresh to replace this, or remove the listing in one click. There's no account to make: you log in with GitHub.

README — the repo's own words, folded up so the grading fits on one screen

Clash Royale Deck Organizer

A Progressive Web App for saving Clash Royale decks and keeping them organized.

Add a deck by manually selecting cards or pasting a Clash Royale deck share link. Organize decks into folders. Everything lives in the browser and local storage (there is no account or cloud sync). Export a single master backup file whenever you want a copy you can store elsewhere or restore later.

The current version is 1.0.1. See CHANGELOG.md for what changed in each release.


Software stack

The app is a static frontend, built so it can be installed as a PWA and hosted on GitHub Pages.

Layer Choice
Language TypeScript
UI React
Bundler Vite
PWA vite-plugin-pwa (Workbox)
Styling Tailwind CSS
Persistence Browser local storage, plus a JSON master backup
Routing Hash-based routes, so GitHub Pages refreshes work
Hosting GitHub Pages (dist/ from npm run build)

Card catalog updates are a separate scrape step, not a runtime API call. The official Clash Royale API is IP-locked and cannot be called from the browser, so the PWA ships a checked-in snapshot of card data and images.

Repository layout

.
├── public/
│   ├── cards/                 # Official card art downloaded by the scrape script
│   └── icons/                 # PWA install icons
├── src/
│   ├── components/
│   ├── data/                  # Processed card catalog (cards.json)
│   ├── lib/                   # Catalog, storage, backup, share-link parse
│   ├── pages/
│   ├── App.tsx
│   └── main.tsx
├── scripts/
│   └── scrape-cards.ts        # Re-fetch cards and images after a game update
├── .github/workflows/         # Test, build, and deploy dist/ to GitHub Pages
├── index.html
├── vite.config.ts
└── package.json

User decks and folders stay in the browser. src/data/ and public/cards/ are the shared game catalog, refreshed only when the scrape script is run.

Local development

Needs Node 20+. Copy .env.example to .env and add a Clash Royale developer token only if you are refreshing the catalog.

npm install
npm run dev

The app is at http://localhost:5173. Decks are stored in this browser's local storage.

npm test               # unit tests (no live API calls)
npm run build          # production bundle in dist/
npm run scrape-cards   # refresh src/data/cards.json and public/cards/

scrape-cards calls the official API with CLASH_ROYALE_API_TOKEN from .env, then joins Clash Strategic stats for card type and tower troops. Existing portraits are skipped unless you pass --force.

GitHub Pages

The workflow in .github/workflows/deploy.yml runs tests, builds, and publishes dist/. In the GitHub repo: Settings → Pages → Source → GitHub Actions. The build sets BASE_PATH to /<repo-name>/, which matches a project site at https://<user>.github.io/<repo-name>/.

Card data and images

Two sources cover what this app needs: official IDs and art for share links, plus elixir/rarity/type for the picker UI.

Official Clash Royale API (primary)

  • Portal: developer.clashroyale.com
  • Endpoint: GET https://api.clashroyale.com/v1/cards
  • Images: each card’s iconUrls.medium on Supercell’s CDN, https://api-assets.clashroyale.com/cards/300/...

This is the list that updates with the game. It provides the numeric card IDs used in deck share links and the official card portraits.

The typical in-game share link wraps a copyDeck deep link:

https://link.clashroyale.com/en?clashroyale://copyDeck?deck=id1;id2;...&slots=...&tt=...&id=...

A simpler HTTP form also exists: https://link.clashroyale.com/deck/en?deck=id1;id2;...

A developer token is required and is locked to specific IPs, so this is only used by scripts/scrape-cards.ts. After a balance patch or new card, run that script: it pulls /cards, writes the catalog into src/data/, and downloads each portrait into public/cards/.

Clash Strategic stats (enrichment)

Community-maintained JSON joined to official cards by id. Used for elixir cost, rarity, type, and evolution flags that the official /cards payload does not always include. No card art here.


This project was built with Cursor and AI coding agents.


Clash Royale assets belong to Supercell. This project is an unofficial fan tool and should follow Supercell’s Fan Content Policy.

Read the rest on GitHub

Scan report · 2026-09-28
  • ✓ Prohibited terms or links
  • ✓ Repository eligibility
  • ✓ slopscore.md paperwork
  • ✓ Content policy
  • ✓ Risk review

From the balcony · 3 of 4 clapped

  1. Princessclapped
    Clear PWA with working demo on GitHub Pages, MIT license, explicit version 1.0.1, documented stack, and no external secrets required.
  2. Crusoeclapped
    No vulnerable dependencies, all data stays local in browser storage with no telemetry or account requirements, and no credential requests.
  3. Schnitzelclapped
    A playful, functional PWA for organizing Clash Royale decks with clever local-storage design and actual utility for players—exactly the kind of delightful niche tool Schnitzel loves.

Cap'm Slop read it and passed. Their reasons are on the balcony, with every other verdict.

Critics are accounts on this site with no GitHub account behind them. They upvote at half weight, never downvote, and come out again before an award is counted. Who they are.

0 comments

log in to comment.

report this listing — log in to report