Marketing site for TouchPilot, the local-first Android AI agent runtime.
Built with Astro and Tailwind CSS.
.
├── astro.config.mjs # Astro configuration
├── tailwind.config.mjs # Tailwind theme (brand indigo, risk colors)
├── package.json
├── tsconfig.json
├── public/
│ └── favicon.svg
├── scripts/
│ └── import-skills.mjs # Reads SKILL.md from sibling touchpilot repo,
│ # writes src/data/skills.json
├── src/
│ ├── components/ # Hero, FeatureCard, SkillCard, RiskBadge, etc.
│ ├── layouts/
│ │ └── Base.astro # HTML shell with theme + OG tags
│ ├── pages/ # /, /features, /skills, /install, /safety,
│ │ # /roadmap, /community
│ ├── data/
│ │ └── skills.json # Generated at build time (gitignored)
│ └── styles/
│ └── global.css
└── .github/workflows/
└── deploy.yml # GitHub Pages deploy on push to main
Requires Node.js 20+ and npm.
# 1. Install dependencies
npm install
# 2. Import skill data from the sibling touchpilot repo
TOUCHPILOT_REPO_DIR=../touchpilot npm run import-skills
# (defaults to ../touchpilot if env var not set)
# 3. Start the dev server with live reload
npm run dev
# -> open http://127.0.0.1:4321/For a production-like local check:
TOUCHPILOT_REPO_DIR=../touchpilot npm run build
# -> output in ./dist
npm run preview
# -> open http://127.0.0.1:4321/The skills import script reads from TOUCHPILOT_REPO_DIR (default ../touchpilot).
If you don't have a sibling checkout, point it at any absolute path.
The GitHub Actions workflow in .github/workflows/deploy.yml builds the site on
push to main. For day-to-day development, the local dev server is the fastest
way to work on the site and verify changes before pushing.
Source code: MIT (same as TouchPilot). Branding and screenshots: see LICENSE in the product repo if you add any.