Node.js project template for XeplosionGames. Managed via .forgejo — do not push directly.
Find a file Use this template
XE Games CI b4e56a59bc
Some checks failed
CI / format (push) Failing after 4s
CI / test (push) Failing after 5s
Deploy to Production / deploy (push) Failing after 3s
chore: sync scripts/sync-implementers.sh from main.
2026-06-20 14:53:11 -06:00
.forgejo chore: sync SYNCED_CODEOWNERS from main. 2026-06-16 01:38:32 +00:00
ISSUE_TEMPLATE Added lables to issues templates. 2026-05-21 07:38:47 -06:00
scripts chore: sync scripts/sync-implementers.sh from main. 2026-06-20 14:53:11 -06:00
.editorconfig feat: add template-node initial content. 2026-05-25 05:07:08 -06:00
.gitignore feat: add template-node initial content. 2026-05-25 05:07:08 -06:00
.prettierrc feat: add template-node initial content. 2026-05-25 05:07:08 -06:00
package.json feat: add template-node initial content. 2026-05-25 05:07:08 -06:00
pull_request_template.md Update pull_request_template.md 2026-05-24 12:32:32 +00:00
README.md feat: add template-node initial content. 2026-05-25 05:07:08 -06:00
tsconfig.json feat: add template-node initial content. 2026-05-25 05:07:08 -06:00
xegames.config.yml fix: fixed typo in filename xegames.config.yml. 2026-05-30 04:07:49 -06:00

template-node

Template for XeplosionGames Node.js and web frontend projects. Includes TypeScript, Prettier formatting, CI/CD workflows, and release artifact building. Designed primarily for frontend projects but flexible enough for Node backends.


Creating a repo from this template

  1. Click Use this template on Forgejo
  2. Update package.json — set name and description
  3. Replace src/index.ts with your project code
  4. Follow the setup checklist below

Setup checklist

  • Set RELEASE_TOKEN secret in Settings → Secrets
  • Update name and description in package.json
  • Run npm install to install dependencies
  • Implement scripts/build.sh for your project
  • Run create-project.sh from XeplosionGames/.forgejo to seed project board
  • Push to main and verify CI passes

If this project deploys as a service:

  • Set DEPLOY_TARGET secret in Settings → Secrets
  • Set healthcheck.enabled: true in xegames.config.yml
  • Implement scripts/service-start.sh and scripts/validate.sh
  • Add deploy workflows from XeplosionGames/.forgejo

Code style

This repo uses Prettier for formatting, configured via .prettierrc.

To check formatting locally:

npm run format:check

To fix formatting locally:

npm run format

Conventions

Rule Value
Indentation 2 spaces
Quotes Single quotes
Semicolons Required
Trailing commas ES5
Print width 100 characters
Line endings LF

TypeScript

This template uses strict TypeScript. The following strict checks are enabled beyond strict: true:

Check Purpose
noUncheckedIndexedAccess Array/object access always includes undefined
noImplicitOverride Must use override keyword when overriding
exactOptionalPropertyTypes Optional properties cannot be set to undefined explicitly

To type check without building:

npm run validate

Testing

Add your test framework of choice as a dev dependency. Jest and Vitest are common options. Update the test script in package.json accordingly.

To run tests locally:

npm test

Workflows

Workflow Trigger Purpose
ci-node.yml Every push / PR Prettier check + build + tests
release.yml Tag push v* Generate release notes + attach build artifacts

Branch structure

Branch Purpose
main Production-ready, triggers release on tag
dev Active development
feature/* Short-lived feature branches, PR to dev
hotfix/* Urgent fixes off main, PR to both main and dev

Commit convention

All commits use Conventional Commits format with a trailing period: : .

Type Use for
feat: New functionality
fix: Bug fixes
chore: Dependencies, tooling, refactors
docs: Documentation only
ci: CI/CD workflow changes
perf: Performance improvements
test: Adding or updating tests
style: Formatting only, no logic change