The website for Nepal Compliance, the open source ERP solution for Nepalese businesses with HR, Payroll & Accounting compliance.
This site presents Nepal Compliance, an app built on top of Frappe Framework, ERPNext and Frappe HR. It is a static website: every page is pre-rendered to HTML at build time and served by GitHub Pages, with no server, database, sign-up forms, analytics or third-party requests.
| Layer | Choice |
|---|---|
| UI | React 19, TypeScript, Vite |
| Styling | Tailwind CSS 4, tokens in src/styles.css |
| UI primitives | Base UI: Tabs, Accordion, Toggle Group, Menu, Toast |
| Icons | Tabler Icons |
| Component utilities | CVA, clsx, tailwind-merge |
| Fonts | Inter and Noto Sans Devanagari, self-hosted |
| Tooling | Biome for lint and format |
| Hosting | GitHub Pages |
Requires Node.js 24.
npm install
npm run dev # http://localhost:5173| Command | What it does |
|---|---|
npm run dev |
Development server with hot reload |
npm run build |
Type-check, build, and pre-render every page to dist/ |
npm run check |
Validate dist/ (see Checks) |
npm run preview |
Serve the built site at http://localhost:4173 |
npm run lint |
Lint and format check; npm run format applies fixes |
feature work ──▶ develop ──(pull request)──▶ master ──▶ GitHub Pages ──▶ erpnepal.org
developholds all work in progress. Every push runsdevelop.yml: lint, build and check. It does not deploy.- Markdown-only changes (README, NOTICE,
docs/) skip both workflows. masteris production. Open a pull request fromdevelopwhen a batch of changes is ready;pages.ymlbuilds and checks the pull request, and after the merge deploys to GitHub Pages and confirms the live sitemap and pages (npm run check:live).- Domain:
erpnepal.org, set bypublic/CNAME(copied into every build).
content/ Feature, add-on and guide text (*.mjs)
public/ Static files copied as is: logos, screenshots, licence notices, CNAME
scripts/
prerender.ts Renders every page to HTML; writes sitemap, robots.txt, llms.txt, 404.html
stats.ts GitHub and Docker Hub numbers at build time
check.ts Validates the built site
check-live.ts Validates the live site after a deploy
src/
content/ Homepage and site text, English (*.en.ts) and Nepali (*.ne.ts)
pages/ One component per page type
components/ Header, footer, homepage sections; page/ and ui/ building blocks
lib/ i18n, icons, class names, site data
routes.ts Every URL with its title and description
styles.css Tailwind setup, colour tokens, fonts
docs/ Research notes behind the guides and site copy
npm run check fails the build if any of these break:
- The URL set matches the published site, and the sitemap lists exactly the indexed pages
- Every page has a unique title and description, a canonical link and valid structured data
- Every same-site link and
#anchorresolves - All page text, including hidden tabs and closed FAQ answers, is in the static HTML
- No third-party scripts or stylesheets
- Each page loads at most 150 KB gzip of JavaScript and CSS up front
Typo Corrections and UI improvements are welcome. Work on a branch from develop, run npm run lint, npm run build and npm run check, then open a pull request into develop. To report an error on the site, open an issue.
For the app itself, see the Nepal Compliance contributing guide.
The website code is licensed under the Apache License 2.0. Nepal Compliance and Nepal HRMS are GPL-3.0; their licence notices ship in public/assets/. Font and component credits are in NOTICE.md.