@@ -432,20 +432,13 @@ Runs on every push and pull request to `main`:
432432
4334331 . Checkout
4344342 . Node.js 20 setup with ` npm ` cache
435- 3 . ` npm install ` ( ** not ** ` npm ci` — lock file generated on Windows is not compatible with the Linux runner)
435+ 3 . ` npm ci `
4364364 . ` npm run lint `
4374375 . ` npm run build `
438438
439- > ** Why ` npm install ` instead of ` npm ci ` ?**
440- > ` npm ci ` requires the lock file to be 100% in sync with the runner's platform. Since ` package-lock.json `
441- > is generated on Windows, platform-specific packages (e.g. ` @swc/helpers ` ) may differ on the Linux CI
442- > runner, causing ` npm ci ` to fail with ` EUSAGE ` . Using ` npm install ` resolves this transparently.
443-
444- ### Vercel
445-
446- - Connected to GitHub — auto-deploys on push to ` main `
447- - No extra configuration needed for Next.js projects
448- - Preview deployments are created for every PR automatically
439+ > ** If ` npm ci ` fails with ` EUSAGE ` (lock file platform desync):**
440+ > Delete ` node_modules/ ` and ` package-lock.json ` locally, run ` npm install ` to regenerate the lock file,
441+ > commit it and push. The CI runner will then be able to use ` npm ci ` successfully.
449442
450443---
451444
@@ -500,24 +493,80 @@ indent_style = tab
500493}
501494```
502495
503- ### README Badge Template
496+ ### README.md template
504497
505498``` markdown
506- [ ![ CI] ( https://github.com/sejtam-dev/REPO/actions/workflows/ci.yml/badge.svg )] ( ... )
499+ # [ App Name]
500+
501+ [ ![ CI] ( https://github.com/sejtam-dev/REPO/actions/workflows/ci.yml/badge.svg )] ( https://github.com/sejtam-dev/REPO/actions/workflows/ci.yml )
507502[ ![ License: MIT] ( https://img.shields.io/badge/License-MIT-violet.svg )] ( ./LICENSE )
508- [ ![ Live Demo] ( https://img.shields.io/badge/demo-URL-7c3aed )] ( https://URL )
503+ [ ![ Live Demo] ( https://img.shields.io/badge/demo-live-7c3aed )] ( https://URL )
504+
505+ > One-sentence description of what the project does and what it produces.
506+
507+ ## About
508+
509+ 2–3 sentences explaining the math / logic / concept behind the simulation or tool.
510+ What problem does it solve? What is the output?
511+
512+ ## Features
513+
514+ - Feature one
515+ - Feature two
516+ - Feature three
517+
518+ ## Getting Started
519+
520+ ### Prerequisites
521+
522+ - Node.js 20+
523+ - npm
524+
525+ ### Installation
526+
527+ \`\`\` bash
528+ git clone https://github.com/sejtam-dev/REPO.git
529+ cd REPO
530+ npm install
531+ npm run dev
532+ \`\`\`
533+
534+ Open [ http://localhost:3000 ] ( http://localhost:3000 ) in your browser.
535+
536+ ### Build
537+
538+ \`\`\` bash
539+ npm run build
540+ npm run start
541+ \`\`\`
542+
543+ ## Tech Stack
544+
545+ | Layer | Choice |
546+ | ------------| -------------------------|
547+ | Framework | Next.js 15 (App Router) |
548+ | Language | TypeScript 5 |
549+ | Styling | Tailwind CSS v4 |
550+ | Theme | next-themes |
551+ | i18n | next-intl |
552+ | Math | KaTeX |
553+ | Charts | Recharts |
554+
555+ ## License
556+
557+ MIT © [ YEAR] [ sejtam-dev] ( https://github.com/sejtam-dev )
509558```
510559
511560### GitHub Description Template
512561
513562```
514- Interactive [what it does] — [one sentence about the output/goal]. Built with Next.js, TypeScript and Canvas API.
563+ Interactive [what it does] — [one sentence about the output/goal].
515564```
516565
517566### GitHub Topics Template
518567
519568```
520- nextjs typescript tailwindcss canvas simulation math [domain-specific tags]
569+ nextjs typescript tailwindcss [domain-specific tags]
521570```
522571
523572---
@@ -537,7 +586,6 @@ nextjs typescript tailwindcss canvas simulation math [domain-specific tags]
537586| Add a key to only one ` messages/*.json ` | Add the key to ** all** locale files simultaneously |
538587| Write math symbols as plain text (` π ` , ` y_c ` , ` θ ` ) | Use ` $\\pi$ ` , ` $y_c$ ` , ` $\\theta$ ` in translations + ` MathText ` in JSX |
539588| Use ` \\\\pi ` (four backslashes) in JSON | Use ` \\pi ` (two backslashes) — JSON needs one escape level, LaTeX needs one |
540- | Use ` npm ci ` in CI on a Windows-generated lock file | Use ` npm install ` — avoids platform-specific dependency mismatch |
541589| Use inline script + custom ThemeContext for dark mode | Use ` next-themes ` — handles SSR, hydration and localStorage automatically |
542590| Read ` document.documentElement.classList ` during render | Use ` useTheme() ` from ` ThemeContext ` which wraps ` next-themes ` |
543591| Conditionally render different JSX for dark/light icon | Render both SVGs, control visibility with ` dark:hidden ` / ` dark:block ` |
0 commit comments