Manoj Guttikonda β Portfolio
Personal portfolio website for Manoj Guttikonda β MS Business Analytics @ UNT, ex-Accenture Cloud Operations Engineer.
Live at: [your deployed URL here]
Tech Stack
| Layer | Technology |
|---|---|
| Framework | React 19 + TanStack Start (SSR) |
| Routing | TanStack Router |
| Styling | Tailwind CSS v4 |
| Animations | Framer Motion |
| Icons | Lucide React |
| UI Components | shadcn/ui (Radix UI) |
| Font (body) | Carlito (Calibri-equivalent, Google Fonts) |
| Font (display) | Bebas Neue (Google Fonts) |
| Package manager | Bun |
| Build tool | Vite + Nitro |
Project Structure
src/
βββ assets/
β βββ manoj.jpg # Profile photo
βββ components/
β βββ portfolio/ # All portfolio section components
β β βββ Nav.tsx # Navigation bar (desktop + mobile)
β β βββ Hero.tsx # Hero section (name, photo, intro)
β β βββ Timeline.tsx # Career journey (undergrad β Accenture β UNT)
β β βββ Projects.tsx # Featured projects + research publications
β β βββ Skills.tsx # Skills toolkit (4 categories)
β β βββ Education.tsx # Education + internships
β β βββ Credentials.tsx # Certifications, honors, campus experience
β β βββ About.tsx # About section
β β βββ Contact.tsx # Contact section
β βββ ui/ # shadcn/ui base components (do not edit)
βββ hooks/
β βββ use-mobile.tsx # Mobile breakpoint hook
βββ lib/
β βββ links.ts # All URLs (email, resume, GitHub, LinkedIn, HF)
β βββ error-capture.ts # Error capture utility
β βββ error-page.ts # SSR error page renderer
β βββ lovable-error-reporting.ts # Error reporting (Lovable platform)
β βββ utils.ts # Tailwind class merge utility
βββ routes/
β βββ __root.tsx # Root layout + global head meta
β βββ index.tsx # Home page (assembles all sections)
βββ router.tsx # TanStack Router setup
βββ server.ts # SSR server entry
βββ start.ts # App start entry
βββ styles.css # Global CSS + Tailwind theme + custom fonts
public/
βββ favicon.svg # MG favicon (navy + orange)
Customising Content
All personalisation lives in just a few files:
1. Links & URLs β src/lib/links.ts
export const CONTACT_EMAIL = "your@email.com";
export const RESUME_URL = "https://...";
export const LINKEDIN_URL = "https://linkedin.com/in/yourhandle";
export const GITHUB_URL = "https://github.com/yourhandle";
export const HUGGING_FACE_URL = "https://huggingface.co/yourhandle";
2. Photo β src/assets/manoj.jpg
Replace with your own photo. Keep the filename or update the import in Hero.tsx.
3. Hero section β src/components/portfolio/Hero.tsx
- Name, tagline, bio paragraphs
- Role badges
- Metric strip (GPA, months of experience, etc.)
4. Projects β src/components/portfolio/Projects.tsx
Each project is an object in the projects array:
{
id: "unique-id",
era: "UNT - Graduate" | "Accenture" | "Undergrad" | "Independent",
title: "Project Title",
tagline: "One-line description.",
period: "Jan 2025 - May 2025",
details: ["bullet 1", "bullet 2", "bullet 3"],
stack: ["Python", "AI"],
links: [{ label: "View Code", href: "https://github.com/..." }],
}
5. Skills β src/components/portfolio/Skills.tsx
Edit the groups array to add/remove skills.
6. Timeline β src/components/portfolio/Timeline.tsx
Edit the items array for career milestones.
7. Education β src/components/portfolio/Education.tsx
Edit edu and internships arrays.
8. Credentials β src/components/portfolio/Credentials.tsx
Edit certs, honors, leadership, and campusExperience arrays.
9. Global styles β src/styles.css
html { font-size: 19px; }β base font scale--font-sansβ body font--font-displayβ heading font (Bebas Neue)- Color tokens:
--navy,--accent,--chakra
10. SEO meta β src/routes/index.tsx
Update pageTitle and pageDescription constants.
Local Development
# Install dependencies
bun install
# Start dev server
bun run dev
# Open http://localhost:5173
Deployment β HuggingFace Spaces
Option A: Docker Space (Recommended)
- Create a new Space on huggingface.co/spaces
- Choose Docker as the Space SDK
- Clone the Space repo and copy this project into it
- Add the
Dockerfile(included in this repo) at the root - Push β HuggingFace builds and deploys automatically
The Dockerfile installs Bun, builds the app, and serves it on port 7860.
Option B: Static Build
If you want a pure static output (no server), change vite.config.ts:
export default defineConfig({
tanstackStart: {
server: { entry: "server" },
nitro: { preset: "static" }, // add this line
},
});
Then:
bun run build
# Upload contents of .output/public/ to a Static Space or any static host
Deployment β Other Platforms
| Platform | How |
|---|---|
| Vercel | Connect GitHub repo, auto-detected as Vite project |
| Netlify | bun run build, publish .output/public/ |
| Cloudflare Pages | Default build target is already cloudflare |
LinkedIn Profile Update
Add the following to your LinkedIn:
- Portfolio URL in the intro/contact section: your deployed URL
- Featured section: screenshot of the portfolio homepage, link to live site
- About section: mirror the hero bio text
- Skills section: pull from
Skills.tsxgroups - Projects section: add each project from
Projects.tsxwith GitHub links
OG Image (Social Share Preview)
Add a 1200 Γ 630 px image named og.jpg to the /public folder.
When someone shares your portfolio link on LinkedIn or Twitter, this image shows as the preview thumbnail.
Current Portfolio Details
| Item | Value |
|---|---|
| Name | Manoj Guttikonda |
| guttikondamanoj7@gmail.com | |
| linkedin.com/in/manojguttikonda | |
| GitHub | github.com/im-mj |
| HuggingFace | huggingface.co/MrNoOne07 |
| Degree | MS Business Analytics, UNT (Aug 2024 β May 2026), GPA 3.8 |
| Experience | Cloud Ops Engineer @ Accenture, Oct 2021 β Jun 2024 (33 months) |
| Certifications | AZ-104, AZ-500, Azure Fundamentals, Palo Alto, VMware, AWS |
| Research | AI-Driven Malicious URL Detection β BIGS 2025 & SWDSI 2026 |