My Personal Portfolio. I put things here, hopefully it looks good.
- React 19 + TypeScript via Vite
- Tailwind CSS for styling with custom material-inspired components
- Framer Motion for smooth, accessible animations
- @dnd-kit for drag-and-drop skill reordering with localStorage persistence
- Cloudflare Pages for global edge hosting and preview environments
VITE_PAGECLIP_API_KEY– Required for the contact form to work. API key from Pageclip.VITE_TURNSTILE_SITE_KEY(or legacyVITE_TURNSTYLE_SITE) – Cloudflare Turnstile site key that powers the human verification step on the contact form.
Configure these variables in your local .env file and in the Cloudflare Pages project settings so production builds hydrate them at runtime.
- Build with
npm run build(output indist/), then deploy using Wrangler:npx wrangler pages deploy dist --project-name kiyaverse --compatibility-date=2024-06-01. - GitHub Actions (
cloudflare-pages-preview.ymlandcloudflare-pages-merge.yml) run linting, build the bundle, and publish to Cloudflare Pages when enabled. Provide the following repository secrets for automation:CLOUDFLARE_ACCOUNT_IDCLOUDFLARE_API_TOKEN(PagesEdit+Deploymentspermissions)VITE_PAGECLIP_API_KEYVITE_TURNSTILE_SITE_KEY(and/orVITE_TURNSTYLE_SITEfor legacy naming)
The repository needs a FIREBASE_SERVICE_ACCOUNT_KIYAVERSE secret with deploy access to the kiyaverse Firebase project.
npm run data:to-json -- src/data/projects.tsexports convertibleexport constvalues tosrc/data/projects.jsonalongside round-trip metadata.npm run data:to-ts -- src/data/projects.jsonrestores the original TypeScript module (use--overwriteto replace an existing file).- Pass
--pick projectsFallback,educationFallbackto work with specific exports when a file contains multiple arrays or objects. - Open
src/tools/convert.htmlin a browser for an all-in-one local UI that handles file drops, selective exports, and downloads without leaving the machine.
- Open
src/tools/visualizeme.htmllocally to inspect JSON structures with pan/zoom navigation, modal node editing, search, expand/collapse controls, and SVG export. - Switch the input mode to load TypeScript data modules directly; the tool converts exports into JSON for editing and can export the updated module back to TypeScript once you save.