Modern, static marketing website for HCN Global — a Ghaziabad-based civil construction firm specializing in government tenders across civil, residential, commercial, and infrastructure domains.
Tagline: Building Tomorrow, Together.
Built with Next.js 15, Tailwind CSS, TypeScript, and framer-motion. Fully static, SEO-friendly, dark/light mode enabled, and deployable to both Vercel and GitHub Pages from the same codebase — for ₹0.
- Local development
- Editing content
- Configure the contact form (Formspree)
- Deploy to Vercel (recommended)
- Deploy to GitHub Pages (free alternative)
- Custom domain setup
- Project structure
Prerequisites: Node.js 20+ and npm.
npm install
npm run devOpen http://localhost:3000.
Build for production locally:
npm run build # standard build (for Vercel)
npm run build:gh-pages # build with basePath for GitHub PagesBoth produce a fully static site in the out/ folder.
All company data is centralized in one file: lib/site-config.ts.
Update your services, projects, testimonials, clients, address, phone, email, GSTIN, etc. there. Everything on the site reads from this file.
- Project images: replace the Unsplash URLs in
siteConfig.projects[].imagewith your own image paths (either external URLs or files placed inpublic/projects/). - Logo: swap
public/logo-mark.svgwith your artwork if desired.
The contact form uses Formspree (free tier: 50 submissions/month, no backend needed).
-
Sign up at formspree.io with your
hcnglobal05@gmail.comaddress. -
Create a new form — Formspree gives you an endpoint like
https://formspree.io/f/xyzabcde. -
Open
lib/site-config.tsand replace:formspreeEndpoint: 'https://formspree.io/f/your-form-id',
with your real endpoint.
-
Commit and push — form submissions will land in your Gmail inbox.
Until it's configured, the form shows a helpful message asking users to email you directly.
Best option: nicer URL, faster India edge, per-branch preview deploys.
- Push this repo to GitHub (any name, public or private).
- Go to vercel.com/new → sign in with GitHub → Import the repo.
- Vercel auto-detects Next.js — click Deploy. No env vars needed.
- Your site is live at
https://<repo-name>.vercel.appwith free SSL.
Every git push to main auto-redeploys. Pull requests get preview URLs.
Already wired up via GitHub Actions in .github/workflows/deploy-gh-pages.yml.
- Push this repo to GitHub as
hcn-global(the repo name matters — it's used as the URL subpath). If you name the repo differently, updatebasePathandassetPrefixinnext.config.mjs. - In your repo on GitHub, go to Settings → Pages.
- Under Build and deployment → Source, choose GitHub Actions.
- Push any commit to
main— the workflow builds and deploys automatically. - Your site is live at
https://<your-username>.github.io/hcn-global/.
That's it. No credit card. Unlimited bandwidth.
You can point a custom domain (e.g. hcnglobal.in) to either host — costs about ₹700/year for the domain, hosting stays free.
Where to buy: Namecheap, GoDaddy, or BigRock.
- In your Vercel project → Settings → Domains → add your domain.
- Vercel shows the DNS records you need (usually an
AandCNAME). - Add them in your domain registrar's DNS panel.
- Free SSL is provisioned automatically within minutes.
- Create a file
public/CNAMEcontaining just your domain (e.g.hcnglobal.in). - In your domain registrar, add these DNS records:
A @ 185.199.108.153 A @ 185.199.109.153 A @ 185.199.110.153 A @ 185.199.111.153 CNAME www <your-username>.github.io - In your GitHub repo → Settings → Pages, enter the custom domain and check Enforce HTTPS.
Full guide: docs.github.com/pages/custom-domains.
| Item | Cost |
|---|---|
| Hosting (Vercel or GH Pages) | Free |
| SSL certificate | Free (auto) |
| Contact form (Formspree) | Free up to 50/month |
| Custom domain (optional) | ~₹700/year |
| Total to launch | ₹0 |
hcn-global/
├── app/
│ ├── layout.tsx Root layout, fonts, theme provider, JSON-LD schema
│ ├── page.tsx Composes all sections
│ ├── globals.css Tailwind + CSS variables (light/dark themes)
│ ├── sitemap.ts Auto-generated sitemap.xml
│ └── robots.ts Auto-generated robots.txt
├── components/
│ ├── Navbar.tsx Sticky navbar with theme toggle
│ ├── Footer.tsx
│ ├── ThemeProvider.tsx
│ ├── ThemeToggle.tsx
│ └── sections/
│ ├── Hero.tsx
│ ├── About.tsx
│ ├── Services.tsx
│ ├── WhyUs.tsx
│ ├── Projects.tsx
│ ├── Clients.tsx
│ ├── Testimonials.tsx
│ └── Contact.tsx
├── lib/
│ ├── site-config.ts All company data (edit here!)
│ └── utils.ts
├── public/
│ ├── logo.svg Full logo
│ ├── logo-mark.svg Logo mark (icon only)
│ ├── favicon.svg
│ └── .nojekyll Required for GitHub Pages
├── .github/workflows/
│ └── deploy-gh-pages.yml GitHub Actions workflow
├── next.config.mjs Static export + basePath switch for GH Pages
├── tailwind.config.ts Brand colors, fonts, animations
└── tsconfig.json
- Update content: edit
lib/site-config.ts. - Change colors: edit
theme.extend.colors.brandintailwind.config.ts. - Toggle light/dark mode via the icon in the navbar.
Built for HCN Global · Ghaziabad, India.