Official marketing site for Funput — an open-source Vietnamese input method for iOS, Android, macOS, Windows, and Linux.
Live site: funput.app
Built with Angular 22, Tailwind CSS 4, and served via nginx in Docker.
Install dependencies:
pnpm installStart the development server:
pnpm startOpen http://localhost:4200.
Production build (output under dist/funput/):
pnpm buildRun unit tests:
pnpm testFormat with Prettier:
pnpm format
pnpm format:checkMulti-stage image: Node 26 (build) + nginx alpine (serve static browser output).
docker build -t funput-landing .
docker run --rm -p 8080:80 funput-landingThen open http://localhost:8080.
website/
├── public/ # Static assets (icons, robots, sitemap, OG image)
├── src/
│ ├── app/ # Components, routes, constants
│ ├── index.html # SEO meta, structured data
│ └── server.ts # SSR entry (Express)
├── Dockerfile
├── nginx.conf
└── package.json
| Command | Description |
|---|---|
pnpm start |
Dev server (ng serve) |
pnpm build |
Production build |
pnpm test |
Unit tests (Vitest) |
pnpm format |
Format sources with Prettier |
pnpm format:check |
Check Prettier formatting |
pnpm serve:ssr:funput |
Serve SSR build locally |
- Main repository: github.com/Funput/Funput
- Docs: docs.funput.app
- Releases: github.com/Funput/Funput/releases
- Fork the repository and create a feature branch.
- Install dependencies with
pnpm install. - Make your changes; keep UI and copy consistent with the existing site.
- Before opening a pull request, run
pnpm format:check,pnpm test, andpnpm build. - Open a PR with a clear description of the change.
MIT — see LICENSE. Brand and trademark notes are in NOTICE.
The Funput application itself is also MIT; see Funput/Funput.