Install & Deploy

GitHub is the source.Vercel builds. Cloudflare connects the domain.

This site is a static build with no database or paid backend. LLM metadata is generated from skills/*/SKILL.md, while Vercel publishes the human-facing pages for ChatGPT, Claude, Gemini, Codex, Hermes, and other LLM agents.

build: npm run build output: dist hosting: Vercel dns: Cloudflare

Local

Build the site locally, then verify that every LLM endpoint exists.

/llms.txt
npm run build Generate dist/, agent.json, skills.json, and llms.txt from the repository.
npm run preview Preview dist/ locally with Python at http://localhost:4177. Back home

Vercel

Import the GitHub repository and let Vercel build automatically after every push.

vercel.com
1Import Project

Create a Vercel project and select the twhsi/skills GitHub repository.

Framework Preset: Other
2Build Settings

The repository already includes vercel.json, so Vercel can use the declared build command and output directory.

buildCommand: npm run build outputDirectory: dist
3Verify

After deployment, open /agent.json, /skills.json, and /llms.txt to verify the LLM entry points.

/agent.json /skills.json /llms.txt

Cloudflare

Cloudflare manages DNS. Use the exact records shown on the Vercel project's Domains page.

dash.cloudflare.com
DNSDashboard

Add the records requested by Vercel in Cloudflare DNS. Subdomains usually use CNAME; apex domains use the A or CNAME values shown by Vercel.

skills.example.com -> Vercel DNS target
HTTPSDomain

Return to Vercel Domains and wait for verification. Vercel will issue the HTTPS certificate for the deployed domain.

open /agent.json after DNS resolves
LLMContext

After the custom domain is ready, publish /llms.txt as public LLM context and /agent.json as the machine entry point.

80% LLM-readable 20% human-readable