Personal website for singha.io.
The site is a Vite + React project with a monochrome terminal interface and direct canvas animations. Source files live in the repository; GitHub Actions builds them into dist/ and deploys that artifact to GitHub Pages.
style is the main branch.
When you push to style, GitHub Actions runs:
npm ci
npm run buildThat creates dist/, uploads it as a Pages artifact, and deploys it to singha.io.
Do not commit dist/. It is generated by the Action.
Install dependencies once:
npm installStart the local dev server:
npm run devVite will print a local URL, usually:
http://localhost:5173/
Build locally before pushing:
npm run buildPreview the production build:
npm run previewgit switch style
npm run dev
npm run build
git status
git add .
git commit -m "Describe the change"
git pushAfter the push, check the deployment here:
index.html: Vite HTML entrypoint and metadatasrc/main.jsx: React app, canvas animations, and locked homepage contentstylesheet.css: site styling imported by the React appimages/: profile and project images404.html: custom not-found pageCNAME: custom domain,singha.io.github/workflows/pages.yml: GitHub Actions build and deploy workflowtools/copy-static.mjs: copies static Pages files intodist/after Vite buildsAGENTS.md: instructions for coding agents working in this repo
GitHub repository settings should be:
- Default branch:
style - Pages source: GitHub Actions
- Custom domain:
singha.io - Pages environment: allow deployments from
style
- This repo does not use Jekyll.
- React is used for the homepage UI; Vite handles local development and production builds.
node_modules/anddist/are ignored.- Node is pinned in
.node-version. - The production site is made by GitHub Actions, not by manually uploading local files.