TutorLoom
The learning platform for companies, colleges and training institutes. Free and open source, with an Enterprise edition.
Memory Chess is a free chess memory trainer. See a chess position for a few seconds, rebuild it from memory, and get an instant score. No sign-up.
EducationTypeScript · JavaScriptGitHub @bingcheng45OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
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
Memory Chess: a free chess position memory trainer. Study a position, the board goes blank, rebuild it from memory. 24 languages.
Taken from the repository README
Loading the full README.
Read the full README ↗Memory Chess is a free chess memory game at thememorychess.com. You see a chess position for a few seconds, then rebuild it from memory and get a score. This repository is the source of the site.
Around the round:
Memory Chess is a Next.js 15 App Router app written in TypeScript. The Node version is not pinned in the repo. The versions below are from package.json.
Stack
messages/Setup
git clone https://github.com/bingcheng45/memory-chess.git
cd memory-chess
npm install
npm run dev
Open http://localhost:3000. The dev server uses Turbopack.
Environment
Put these in .env.local. The names come from src/.
NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY: the leaderboard. Set SUPABASE_READ_ONLY=true to stop writes that go through the shared Supabase client in src/lib/supabase.js. It does not cover the Google Sheets writes below. The opt-in lab backup (LAB_BACKUP=on) builds its own service-role client and honours it too: a put or delete answers 503 and a get still works.GOOGLE_SHEET_ID, GOOGLE_SERVICE_ACCOUNT_KEY: where feedback and contact messages are appended. Feedback goes to a worksheet tab named Game Feedback with headers Submitted At, Rating, Feedback, Accuracy, Correct Pieces, Piece Count, Difficulty, Memorization Time, Solution Time, App Version in columns A to J.NEXT_PUBLIC_DATABUDDY_CLIENT_ID: analytics.Scripts
| Command | What it does |
|---|---|
npm run dev | Development server |
npm run build | Validates messages and articles, builds the app, then checks the prerendered guides |
npm start | Serves a production build |
npm run lint | next lint |
npm run validate | Checks the message files and the article translations |
npm run validate:messages | Checks every locale file for missing keys and broken placeholders |
Other npm run scripts (lab:*, measure:*, migrate:rehearse, backup:verify) are measurement and maintenance tools. See package.json and scripts/.
Tests and type checks
npx jest
npx tsc --noEmit
There is no test script. Jest runs every file matching **/__tests__/**/*.test.[jt]s?(x), which covers src/, scripts/ and schema/.
Adding or changing text. Interface strings (next-intl) go into messages/en.json and the other 23 locale files. Article and trust-page translations live elsewhere: articles in src/lib/articles/translations/, and About, Privacy and Terms in src/lib/pages/translations/. Those are written and checked with node scripts/articles-i18n.mjs (add --pages for the trust pages). Run npm run validate before you open a pull request. It checks both the message files and these translations.
Ads. No ad units are active. The AdSense script is off because ADSENSE_SCRIPT_ENABLED in src/lib/adsense.ts is set to false, and the placement plan is in adsense-layout-plan.md.
Issues and pull requests are welcome. Run npm run lint, npx tsc --noEmit and npx jest first.
MIT. Copyright 2025-2026 bing cheng.