Practical open-source tools, built for everyday workflow.
KhmerStack is a community-driven open-source organization rooted in Cambodia. We build modern web applications with a focus on performance, clarity, and maintainability.
This repository is the official platform for KhmerStack, built with Next.js (App Router) and deployed on Vercel with Cloudflare security.
We use a modern, opinionated stack optimized for performance and developer experience:
| Category | Technology |
|---|---|
| Framework | Next.js (App Router) |
| Styling | Tailwind CSS |
| Language | TypeScript |
| Package Manager | pnpm |
| Deployment | Vercel |
| DNS & Security | Cloudflare |
Based on our app router architecture:
/
├── app/ # Next.js App Router (Pages & Layouts)
├── components/ # Reusable UI components (shadcn/ui, custom)
├── hooks/ # Custom React hooks
├── lib/ # Utility functions and helpers
├── public/ # Static assets (images, fonts, favicon)
├── styles/ # Global CSS and Tailwind directives
├── next.config.mjs # Next.js configuration
├── postcss.config.mjs# Tailwind PostCSS config
└── package.json # Project dependencies
git clone [https://github.com/MuyleangIng/khmerstack.git](https://github.com/MuyleangIng/khmerstack.git)
cd khmerstack
We use pnpm for fast installation.
pnpm install
pnpm dev
Open http://localhost:3000 with your browser to see the result.
This project is optimized for Vercel.
- Push your code to GitHub.
- Go to Vercel Dashboard.
- Import this repository.
- Framework Preset: Select
Next.js. - Build Command:
next build(default). - Click Deploy.
To use your custom domain with Vercel and Cloudflare:
- In Vercel: Go to
Settings>Domainsand add your domain (e.g.,khmerstack.com). - In Cloudflare:
- Add a
CNAMErecord. - Name:
@(orwww) - Target:
cname.vercel-dns.com - Proxy Status: ensure it is Proxied (Orange Cloud) for SSL/DDOS protection, or DNS Only (Grey Cloud) if Vercel issues SSL certificates automatically.
- Recommended: Use Full (Strict) SSL mode in Cloudflare settings.
We welcome contributions! Please see our Contribution Guide for details.
- Fork the project.
- Create your feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add: some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
Maintained by: Muyleang Ing
Location: Phnom Penh, Cambodia 🇰🇭
Open to contributors. Let's build something great together.