Welcome to the XHVerse Site repository! This is a modern static web application built with Astro.
- Framework: Astro
- Styling: Tailwind CSS v4
- Runtime: Bun
- Testing: Vitest (Unit) & Playwright (E2E)
- Deployment: Cloudflare Pages
- Rapid frontend development and high performance.
- Automated testing with Unit and E2E tools.
- Continuous Integration (CI) via GitHub Actions.
- Automated production and preview deployments via Cloudflare Pages Git integration.
- Built and managed with Bun for maximum speed.
- Bun (v1.0 or higher)
Clone the repository and install dependencies:
git clone https://github.com/devruji/xhverse-site.git
cd xhverse-site
bun installStart the development server:
bun run devThe site will be available at http://localhost:4321.
Run unit tests with coverage:
bun run coverageRun type/content checks:
bun run typecheckRun end-to-end tests:
bun run test:e2eBuild the production site locally:
bun run buildThe built output will be inside the ./dist/ directory.
This project uses GitHub Actions for CI only. Deployments should be handled by Cloudflare Pages Git integration so Cloudflare can build the site with the correct production or preview environment variables.
Current branch flow:
feat/*-> preview deployment on Cloudflare Pagesdevelopment-> preview deployment on Cloudflare Pagesmain-> production deployment tohttps://xhverse.co
Recommended Cloudflare Pages settings:
- Production branch:
main - Build command:
bun run build - Build output directory:
dist
Recommended environment variables:
- Production:
PUBLIC_PRODUCTION_BRANCH=mainPUBLIC_SITE_URL=https://xhverse.co
- Preview:
PUBLIC_PRODUCTION_BRANCH=main
This setup matches the SEO behavior in the app:
- Production builds emit canonical URLs for
https://xhverse.co - Preview builds fall back to their preview URL and add
noindex, nofollow
Important Cloudflare limitation:
- If the current Pages project was created as a Direct Upload project, Cloudflare does not let you convert it to Git integration later. In that case, create a new Pages project connected to the GitHub repository and migrate the custom domain to that project.
This project's code is licensed under the MIT License.
Note: Unless otherwise stated, all written content, images, and personal media published on the site are all rights reserved to the author.