This repository is the production static website for ArkFlame Studios: the public company and product hub for the studio's Minecraft plugin catalogue. It is built with Astro and deployed to GitHub Pages at arkflame.com.
- Astro 7.3.4 (
output: 'static') - Tailwind CSS 4.3.3 via
@tailwindcss/vite4.3.3 - daisyUI 5.7.38 (primitives only)
@astrojs/sitemap3.7.4- TypeScript (
astro/tsconfigs/strict, extended bytsconfig.json) - Node 24 baseline for CI
- npm as the package manager
Node 24 and npm.
npm ci # install exact dependencies from package-lock.json
npm run dev # local development server
npm run build # emits the static site into dist/
npm run verify # checks the generated dist/ against the production invariants
npm run preview # serve the built dist/ locallyverify must be run against a fresh build. It inspects the generated output, so run it as:
npm run build && npm run verifyastro.config.mjs site URL, static output, sitemap, Tailwind Vite plugin
tsconfig.json TypeScript configuration (extends astro/tsconfigs/strict)
src/styles/global.css Tailwind entry point
src/data/
site.ts company, founder and editorial constants
categories.ts the five category routes and their copy
products.ts single product authority
src/layouts/BaseLayout.astro document shell, head, SEO and structured data
src/components/ reusable UI: header, footer, product and section components
src/pages/
index.astro home
about.astro about
404.astro not found
plugins/index.astro full catalogue index
plugins/[slug].astro per-product detail route, generated from products.ts
public/
CNAME custom domain (arkflame.com)
robots.txt crawler policy, points at the sitemap index
.nojekyll bypasses Jekyll processing on GitHub Pages
site.webmanifest PWA manifest
favicon.ico, favicon.webp favicons
assets/img/ approved brand, founder, product artwork and product icons
scripts/verify-site.mjs production invariant checks run against dist/
.github/workflows/deploy.yml GitHub Pages deployment
src/data/products.ts is the single product authority. Each record carries slug, name, category, summary, tags, optional image and icon, officialUrl, storeUrl and featured.
src/data/categories.ts owns the five category routes and their copy. src/data/site.ts owns company, founder and editorial constants.
Rules:
- Add a product only in
src/data/products.ts. - Never duplicate a product list in a component or a page; read it from the data module.
- Never introduce price, rating, purchase/download count, Minecraft-version badge or any unverified compatibility claim. Omit a field rather than guess it.
Use the existing approved imagery under public/assets/img/ (brand logo and OG image, founder portrait, product artwork, product icons).
- Never generate replacement decorative SVG artwork.
- Never embed base64 or
data:images. - Never add the legacy generated
product-icons/smp-*.svgicons.
The site is deployed to GitHub Pages by the workflow in .github/workflows/deploy.yml, triggered by a push to master.
The custom domain comes from public/CNAME (arkflame.com), and public/.nojekyll bypasses Jekyll processing.
Astro is configured with site: https://arkflame.com and no base path, so generated URLs are root-relative.
sitemap-index.xml and sitemap-0.xml are generated by @astrojs/sitemap; public/robots.txt points at the sitemap index.
In the repository Settings -> Pages, the source must be set to build and deploy with GitHub Actions. DNS and custom-domain configuration lives outside this repository.