Free UAE money calculators and guides as a plain static site (HTML/CSS/JS, no framework, no tracking, nothing sent anywhere). Deployed on Cloudflare Pages (uae-money-tools.pages.dev).
- Calculators (10): gratuity, final settlement (end of service), leave encashment, notice period pay, overtime pay, annual leave days, VAT, VAT invoice (multi-line), salary, monthly budget.
- Guides (10): gratuity (how, examples, unpaid leave), resignation vs termination, final settlement checklist, probation, Ramadan hours, contract types, VAT registration threshold, VAT guide.
- Gratuity tables:
/gratuity/plus 28 pre-computed pages (AED 3,000 to 30,000 basic). - Trust pages: About, Contact, Privacy, Disclaimer, Methodology (all formulas).
- SEO: unique titles/descriptions, canonicals, breadcrumb/FAQ/Article/WebApplication/Collection JSON-LD, sitemap.xml, robots.txt, 404.html.
- Empty, clearly marked ad slots (
<!-- AD SLOT ... -->). No ad code.
The deployed site is just the committed files; Cloudflare Pages needs no build command. Most pages are generated by a dependency-free Node script (Node 18+ only needed on your machine):
node scripts/build.mjs # regenerate pages, sitemap, 404
node scripts/test.mjs # calculator tests (see TESTS.md)
node scripts/check.mjs # links, SEO and schema checks
assets/calc.js- all calculation logic (used by the pages, the tests and the pre-computed tables).assets/tools.js- wires the new calculator forms tocalc.js.scripts/lib/layout.mjs- page shell, header/footer, schema, source links,LAST_CHECKEDdate.scripts/content/*.mjs- calculator, guide and table content.- Older hand-written pages (gratuity/VAT/salary calculators, three guides, about/contact/privacy) are kept; the build refreshes their header/footer, schema and sources block.
To add a contact email to the Contact page: $env:CONTACT_EMAIL="you@example.com"; node scripts/build.mjs (PowerShell), then commit.
When you re-verify the facts, update LAST_CHECKED in scripts/lib/layout.mjs and rebuild. See NOTES.md for what needs review.