GitHub template for small static PWAs on thatsit.app, built on the shared kit and hosted on Cloudflare Pages. Vite + TypeScript, installable, works offline after the first visit.
- Edit
app.config.json:nameis the Pages project and the subdomain (<name>.thatsit.app), plustitle,descriptionand the iconcolor. - Run
npm run iconsto regenerate the icons from that color. - Replace the
<section>insrc/app-main.tswith your app, and deletee2e/starter.spec.ts(it tests the starter buttons).
- Import the kit and Lit only by URL (
https://kit.thatsit.app/kit.js,https://kit.thatsit.app/lit.js), neverfrom "lit": a second Lit copy breaks styles. - No custom colors, fonts or radii. Use the kit tokens. The one exception is the icon color in
app.config.json. - Components and tokens are documented at https://kit.thatsit.app/.
npm run dev, build, preview, typecheck (tsc), test (vitest), e2e (Playwright, Chromium; set BASE_URL to test a deployed site instead of building locally), icons, kit-types (fetches the kit's .d.ts into .kit/; runs automatically before dev, build and typecheck).
.github/workflows/deploy.yml runs typecheck, tests and e2e, then uploads dist with wrangler:
- Push to
main: production deploy of the Pages project<name>. The deploy is skipped whilenameis stillapp-templatein a repo other than the template itself, so editapp.config.jsonfirst. - Pull request: preview deploy of the branch. The link is posted as one sticky PR comment (updated on each push) and written to the job summary.
- Fork PRs have no secrets, so they run the checks but skip the deploy.
The org secrets CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID supply the credentials.
Use the cf CLI; find exact commands with cf cli search "<task>".
- Create the project with production branch
main:cf pages create <name>. - Attach the custom domain
<name>.thatsit.app:cf pages domains create. - Add a proxied CNAME
<name>pointing to the project'ssubdomainfrom thecf pages createoutput (usually<name>.pages.dev, but Cloudflare adds a suffix such as<name>-930.pages.devwhen that name is taken):cf dns records create.
This is how kit.thatsit.app was set up. The thatsit-app pi skill will do these steps automatically.