Skip to content

Commit a8e6ea0

Browse files
feat: initial production release
- Next.js 15 App Router site with TypeScript strict mode - Pages: home, services, about, case studies, contact, free-review - Environment-driven config via src/lib/env.ts (NEXT_PUBLIC_* vars) - Mermaid architecture diagrams per case study - Dark theme default with next-themes - SEO: per-page metadata, JSON-LD, sitemap, robots.txt, OG - Framer Motion scroll animations and micro-interactions - GitHub Actions CI: type-check + build on push to main - MIT License
0 parents  commit a8e6ea0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+14889
-0
lines changed

.env.example

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# ─────────────────────────────────────────────────────────────────────────────
2+
# All NEXT_PUBLIC_ variables are bundled into client and server code.
3+
# Safe to expose: none of these are secrets.
4+
# This file is committed (no real secrets here — use .env.local for overrides).
5+
# ─────────────────────────────────────────────────────────────────────────────
6+
7+
# ── Brand identity ────────────────────────────────────────────────────────────
8+
NEXT_PUBLIC_SITE_NAME=CloudForgeOps
9+
NEXT_PUBLIC_SITE_TAGLINE=Freelance DevOps & Cloud Engineering
10+
NEXT_PUBLIC_SITE_DESCRIPTION=I design, build, and operate cloud-native infrastructure. From Kubernetes to CI/CD pipelines, I help startups ship faster and stay reliable.
11+
NEXT_PUBLIC_SITE_URL=https://cloudforgeops.com
12+
NEXT_PUBLIC_SITE_OG_IMAGE=/images/og-default.png
13+
14+
# ── Contact ───────────────────────────────────────────────────────────────────
15+
NEXT_PUBLIC_CONTACT_EMAIL=sagardeepak2002@gmail.com
16+
17+
# ── Social links ──────────────────────────────────────────────────────────────
18+
NEXT_PUBLIC_SOCIAL_GITHUB=https://github.com/sagarDeepakDevOps
19+
NEXT_PUBLIC_SOCIAL_LINKEDIN=https://linkedin.com/company/cloudforgeops
20+
21+
# ── Owner / personal identity ─────────────────────────────────────────────────
22+
NEXT_PUBLIC_OWNER_NAME=Deepak Sagar
23+
NEXT_PUBLIC_OWNER_TITLE=Freelance DevOps & Cloud Engineer
24+
NEXT_PUBLIC_OWNER_EXPERIENCE=3+
25+
NEXT_PUBLIC_OWNER_EXPERIENCE_LABEL=Hands-On Cloud & Automation Experience
26+
NEXT_PUBLIC_OWNER_BIO=I work directly with founders and engineering teams to design, automate, and stabilize cloud environments across AWS and Azure.
27+
NEXT_PUBLIC_OWNER_LINKEDIN=https://linkedin.com/in/sagardeepak2002
28+
29+
# ── Free Review / Calendly ────────────────────────────────────────────────────
30+
NEXT_PUBLIC_FREE_REVIEW_HREF=/free-review
31+
NEXT_PUBLIC_FREE_REVIEW_DURATION=30 min
32+
NEXT_PUBLIC_CALENDLY_URL=https://calendly.com/sagardeepak2002/30min

.github/workflows/ci.yml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
concurrency:
10+
group: ci-${{ github.ref }}
11+
cancel-in-progress: true
12+
13+
jobs:
14+
build:
15+
name: Type-check & Build
16+
runs-on: ubuntu-latest
17+
18+
strategy:
19+
matrix:
20+
node-version: [20.x]
21+
22+
steps:
23+
- name: Checkout repository
24+
uses: actions/checkout@v4
25+
26+
- name: Set up Node.js ${{ matrix.node-version }}
27+
uses: actions/setup-node@v4
28+
with:
29+
node-version: ${{ matrix.node-version }}
30+
cache: "npm"
31+
32+
- name: Install dependencies
33+
run: npm ci
34+
35+
# Fail fast on TypeScript errors before spending time on a full build
36+
- name: Type-check
37+
run: npx tsc --noEmit
38+
39+
# Build requires env vars — inject dummy values so Next.js doesn't crash
40+
- name: Build
41+
run: npm run build
42+
env:
43+
NEXT_PUBLIC_SITE_NAME: CloudForgeOps
44+
NEXT_PUBLIC_SITE_URL: https://cloudforgeops.com
45+
NEXT_PUBLIC_SITE_TAGLINE: "Freelance DevOps & Cloud Consulting"
46+
NEXT_PUBLIC_SITE_DESCRIPTION: "Production-grade cloud infrastructure, Kubernetes, and CI/CD — built by a senior DevOps engineer."
47+
NEXT_PUBLIC_SITE_OG_IMAGE: /og-image.png
48+
NEXT_PUBLIC_CONTACT_EMAIL: contact@cloudforgeops.com
49+
NEXT_PUBLIC_SOCIAL_GITHUB: https://github.com/cloudforgeops
50+
NEXT_PUBLIC_SOCIAL_LINKEDIN: https://linkedin.com/in/deepaksagar
51+
NEXT_PUBLIC_OWNER_NAME: Deepak Sagar
52+
NEXT_PUBLIC_OWNER_TITLE: "Freelance DevOps & Cloud Engineer"
53+
NEXT_PUBLIC_OWNER_EXPERIENCE: "3+"
54+
NEXT_PUBLIC_OWNER_EXPERIENCE_LABEL: "years of production DevOps experience"
55+
NEXT_PUBLIC_OWNER_BIO: "Senior DevOps engineer specialising in AWS, Kubernetes, Terraform, and CI/CD automation."
56+
NEXT_PUBLIC_OWNER_LINKEDIN: https://linkedin.com/in/deepaksagar
57+
NEXT_PUBLIC_FREE_REVIEW_HREF: /free-review
58+
NEXT_PUBLIC_FREE_REVIEW_DURATION: "30 min"
59+
NEXT_PUBLIC_CALENDLY_URL: https://calendly.com/deepaksagar/30min

.gitignore

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# ── Dependencies ──────────────────────────────────────────────────────────────
2+
/node_modules
3+
/.pnp
4+
.pnp.*
5+
.yarn/*
6+
!.yarn/patches
7+
!.yarn/plugins
8+
!.yarn/releases
9+
!.yarn/versions
10+
11+
# ── Next.js build output ──────────────────────────────────────────────────────
12+
/.next/
13+
/out/
14+
/build
15+
16+
# ── Testing ───────────────────────────────────────────────────────────────────
17+
/coverage
18+
19+
# ── Environment variables ─────────────────────────────────────────────────────
20+
# Never commit secrets. .env.example is the only env file that should be committed.
21+
.env
22+
.env.*
23+
!.env.example
24+
25+
# ── Vercel deployment ─────────────────────────────────────────────────────────
26+
.vercel
27+
28+
# ── TypeScript ────────────────────────────────────────────────────────────────
29+
*.tsbuildinfo
30+
next-env.d.ts
31+
32+
# ── OS / editor artifacts ─────────────────────────────────────────────────────
33+
.DS_Store
34+
Thumbs.db
35+
*.pem
36+
37+
# ── Debug logs ────────────────────────────────────────────────────────────────
38+
npm-debug.log*
39+
yarn-debug.log*
40+
yarn-error.log*
41+
.pnpm-debug.log*
42+
43+
# ── IDE ───────────────────────────────────────────────────────────────────────
44+
.idea/
45+
.vscode/settings.json
46+
.vscode/launch.json
47+
.vscode/*.code-workspace
48+
*.suo
49+
*.user
50+
51+
# ── Misc ──────────────────────────────────────────────────────────────────────
52+
*.local
53+
create.sh

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 Deepak Sagar
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

0 commit comments

Comments
 (0)