Repository navigation
Launch readiness: attribution, landing page, try-it, share cards, README - #11
Merged
Merged
Conversation
MIT requires the original notice, so LICENSE carries the Patzer line next to Chesspirit's. The docker run / compose examples, issue template and FAQ now use the chesspirit container and chesspirit-data volume; the FAQ explains how an existing install keeps its patzer-data volume. Production deploy files keep their names so the live data volume isn't orphaned. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BANAeunr22J7BzgopZzgWs
- /api/share: share/unshare an analysed game, public read by slug, and a 1200x630 PNG card rendered with resvg and bundled Inter fonts. - /api/try (PUBLIC_SITE only): list a public Chess.com/Lichess user's last games and analyse one without an account; single worker, short queue, per-address limits, TRY_DEPTH. - index.html gets Open Graph tags on /r/:slug, and the Umami tag plus CSP allowance only when UMAMI_WEBSITE_ID is set. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BANAeunr22J7BzgopZzgWs
Landing (public sites only): free/unlimited pitch, live-graded hero board, dated comparison with Chess.com's free plan, log in / register, and install via docker run, curl or source, plus a language switcher. /try reviews a public game without an account; /r/:slug replays a shared review with the worst mistake as a puzzle. Share review button on the analyzer. Strings in all six languages. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BANAeunr22J7BzgopZzgWs
install.sh wraps the README's docker run with checks. The deploy compose sets PUBLIC_SITE, PUBLIC_BASE_URL and UMAMI_WEBSITE_ID. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BANAeunr22J7BzgopZzgWs
Three-line pitch, demo GIF, Try it link, one-command Docker, what works without an LLM, share cards, architecture, Origins & credits and roadmap. docs/demo/record-demo.mjs records the GIF and a captioned 60-90 s video with Playwright and ffmpeg. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BANAeunr22J7BzgopZzgWs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Gets chesspirit.app ready for a public launch: attribution fixes, a landing page, a review flow that needs no account, shareable review links with PNG cards, and a README written for a Show HN post.
Attribution and repo hygiene
LICENSEputs backCopyright (c) 2026 the Patzer contributorsabove the Chesspirit line. MIT requires the original notice to be kept.docker-compose.yml, the bug template and the FAQ use thechesspiritcontainer and thechesspirit-datavolume. The FAQ explains how an existing install keeps itspatzer-datavolume.docker-compose.deploy.yml'spatzer-datavolume,/root/patzerand the Docker Hub…/patzerimage name alone. Renaming them would orphan the live database or stop updates for anyone pulling that image.Public site (opt-in:
PUBLIC_SITE=true)/for logged-out visitors:docker run,curl … install.sh | sh, or from source.TRY_DEPTH(default 14), games capped at 240 plies./goes to/loginand/api/tryreturns 404.Shareable reviews
/r/:slug?utm_source=shareplus a 1200×630 PNG card. The card shows accuracy, the !! moment (or Great move), the move you missed, move-class counts and a small chesspirit.app watermark.user_idorgame_id.Analytics
UMAMI_WEBSITE_IDis set, the server adds the requestedcloud.umami.istag toindex.htmland opens the CSP to it. Unset (every self-hosted server), nothing changes.docker-compose.deploy.ymlsetsPUBLIC_SITE,PUBLIC_BASE_URLandUMAMI_WEBSITE_ID, and main auto-deploys.README and demo
docs/demo/record-demo.mjsrecords the ≤15 s GIF and a captioned 60–90 s MP4 with Playwright and ffmpeg. The committed GIF was recorded on a local instance with historical games; re-record it on chesspirit.app with a real username.Not done
Tests
npm run typecheckandnpx vitest runpass: 477 tests, including the newserver/test/share.test.ts.npm run buildpasses.🤖 Generated with Claude Code
https://claude.ai/code/session_01BANAeunr22J7BzgopZzgWs
Generated by Claude Code