Skip to content
Public template

About

A multilingual starter for a simple, fast public website.

Resources

Stars

88 stars

Watchers

1 watching

Forks

Repository files navigation

TanStarter Lite

A multilingual starter for a simple, fast public website.

MIT License React 19 Cloudflare Workers

Quick Start · Customize · Deploy

TanStarter Lite preview

TanStarter Lite is the lightweight, open-source edition of TanStarter: a deliberately small starter for a multilingual public website. It includes a complete localized landing page, light/dark/system themes, SEO endpoints, tests, and Cloudflare Workers deployment—without the operational surface of a SaaS starter.

It intentionally does not include authentication, payments, persistence, storage, cache, transactional email, newsletters, or an admin surface. Add those only when they match the product you are building.

Features

  • Multilingual by default — English at / and Simplified Chinese at /zh, with typed Paraglide messages and a language menu that keeps the current section anchor.
  • A focused landing page — responsive navigation, hero, stack, architecture, template, FAQ, and closing sections.
  • Theme choices — light, dark, and system themes; the selection persists in local storage.
  • Search-ready public surface — localized canonical and alternate links, Open Graph and Twitter metadata, JSON-LD, robots.txt, sitemap.xml, and manifest.webmanifest.
  • No required services — the default Worker has no D1, R2, KV, or secret bindings and deploys to workers.dev.

Tech stack

Getting started

Prerequisites

Run locally

git clone https://github.com/MkFastHQ/mkfast-lite.git
cd mkfast-lite
pnpm install
pnpm dev

Open http://localhost:3000 for English or http://localhost:3000/zh for Simplified Chinese.

Common commands

Command Description
pnpm dev Start the Vite development server on 127.0.0.1:3000
pnpm check Run Biome checks, locale parity checks, unit tests, and TypeScript
pnpm test Run the Vitest unit suite
pnpm build Create a production build and type-check it
pnpm e2e Run Playwright desktop and mobile coverage
pnpm locale:compile Regenerate the Paraglide runtime after locale edits
pnpm locale:check Check English and Chinese message-key parity
pnpm cf-typegen Regenerate Worker environment types after Wrangler changes
pnpm deploy Build and deploy the Worker

pnpm e2e covers both locales, language switching, theme persistence, responsive navigation, FAQ behavior, machine-readable SEO endpoints, and the intentionally absent application routes.

Customize the template

  1. Update the site name, canonical URL, repository URL, default theme, and navigation in src/config/website.ts.
  2. Edit English and Simplified Chinese copy in project.inlang/messages/en.json and project.inlang/messages/zh.json.
  3. Replace public/favicon.svg and the Open Graph image in public/.
  4. Reorder or remove homepage sections in src/components/home/home-page.tsx; adjust visual tokens in src/styles.css when needed.
  5. Add routes under src/routes/ with TanStack Router's file-route convention. Add matching English and /zh routes, localized metadata, and messages when a page needs localized content.

Locale JSON files are the source of truth. Never edit src/locale/paraglide/ by hand; regenerate it after changing copy:

pnpm locale:compile
pnpm locale:check

Do not edit generated src/routeTree.gen.ts or worker-configuration.d.ts by hand either; regenerate them with the relevant tooling. Set websiteConfig.url to the production origin before launch. Until then, the SEO metadata uses the incoming request origin, keeping local development and deployment previews valid.

Deploy to Cloudflare Workers

Authenticate Wrangler once, then deploy:

pnpm exec wrangler login
pnpm deploy

The committed wrangler.jsonc keeps workers_dev enabled and contains no account ID, custom domain, resource bindings, or application secrets. The first deployment publishes to your Cloudflare account's workers.dev subdomain.

To attach a hostname without making it the template default:

pnpm exec wrangler deploy --domain your-site.example.com

Do not commit personal account IDs, tokens, or secrets to a project created from this template.

Architecture

  • src/routes/ — the English and Chinese home pages, 404 handling, and machine-readable endpoints.
  • src/components/ — layout, language/theme controls, UI primitives, and landing-page sections.
  • src/config/ — product-owned site identity, repository link, and navigation.
  • src/lib/ — locale routing, SEO, and utility contracts.
  • src/styles.css — shared theme tokens and global styles.
  • project.inlang/messages/ — authoritative English and Simplified Chinese copy.
  • scripts/ — locale validation.
  • tests/ — Vitest unit contracts and Playwright acceptance tests.
  • wrangler.jsonc — the Workers entry point and committed deployment default.

Contributing

Contributions are welcome. Fork the repository, make a focused change, update tests and documentation when behavior changes, and run the relevant checks before opening a pull request:

pnpm check
pnpm build
pnpm e2e
git diff --check

Author

OpenFox is an independent developer building products and developer tools. His products include:

  • TanStarter — Ship Faster with TanStack, Cost Less with Cloudflare.
  • MkSaaS — Make Your AI SaaS Product in a Weekend.
  • MkImage — Make Any Images Possible.
  • MkAgent — A local-first, Pi-powered AI agent workspace for Desktop, WebUI, and CLI.
  • MkExt — An open-source browser extension starter for SaaS applications.
  • Mkdirs — Launch AI-powered directory in 30 minutes.
  • MkDollar — The all-in-one platform to help you make first dollar online.

License

Licensed under the MIT License.

About

A multilingual starter for a simple, fast public website.

Resources

Stars

88 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages