Jaydeep Solanki's personal portfolio, writing archive, project notes, and current-context site.
This repository powers jaydeepsolanki.me: a fast, content-first personal site built with local MDX, typed content data, restrained UI, strong SEO defaults, and Vercel deployment.
It is intentionally small: no CMS, no database, and no backend service. Public issues are welcome for suggestions, ideas, or bug reports.
- Portfolio home for selected work, writing, social links, and current context.
- Writing archive powered by local MDX under
src/content/writing. - Project notes powered by local MDX under
src/content/projects. - Structured personal pages for favorites, now, and someday lists.
- SEO surface with metadata helpers, sitemap, robots, manifest, structured data, and dynamic OG images.
- Analytics hooks for Umami, Vercel Analytics, and Vercel Speed Insights.
- Tailwind CSS 4 visual system with custom tokens and readable editorial layouts.
Next.js 16 App Router
React 19
TypeScript
Bun
Tailwind CSS 4
MDX
Vercel
.
├── public/ static assets and content media
├── scripts/ validation scripts
├── src/
│ ├── app/ App Router routes, layouts, metadata, API routes
│ ├── components/ shared UI, layout, analytics, and feature components
│ ├── content/ writing, projects, favorites, now, someday
│ ├── lib/ content loading, routes, SEO, site config, utilities
│ └── types/ ambient type declarations
├── AGENTS.md internal maintenance guide for agents
├── README.md public repository overview
└── vercel.json Vercel project config
bun install
bun run devOpen http://localhost:3000.
The site works without required local secrets. Optional public environment variables:
NEXT_PUBLIC_SITE_URL=https://jaydeepsolanki.me
NEXT_PUBLIC_UMAMI_WEBSITE_ID=
NEXT_PUBLIC_UMAMI_SCRIPT_URL=https://cloud.umami.is/script.js
NEXT_PUBLIC_UMAMI_HOST_URL=https://cloud.umami.is
NEXT_PUBLIC_UMAMI_DOMAINS=jaydeepsolanki.meNEXT_PUBLIC_UMAMI_WEBSITE_ID enables Umami. If it is missing, Umami remains a no-op.
Writing entries live in src/content/writing/*.mdx and require:
---
title: "Post title"
summary: "Short summary used in cards and SEO."
publishedAt: "2026-04-12"
tags: ["Backend", "Architecture"]
cover: "/content/writing/post-slug/cover.png"
featured: false
draft: false
---Project entries live in src/content/projects/*.mdx and require:
---
title: "Project title"
summary: "Short summary used in cards and SEO."
featured: false
draft: false
stack: ["Next.js", "TypeScript"]
repoUrl: "https://github.com/..."
liveUrl: "https://..."
cover: "/content/projects/project-slug/cover.png"
demo: "/content/projects/project-slug/demo.mp4"
---Set draft: true to hide an entry from public lists, detail pages, static params, sitemap, and related content. The MDX kitchen-sink entry is a draft/local rendering fixture and should stay out of the public site.
Structured content lives in:
src/content/favorites.ts
src/content/now.ts
src/content/someday.ts
bun run lint:check
bun run typecheck
bun run validate:content
bun run buildFor content-only edits, run:
bun run validate:contentDeployment is handled by Vercel as a standard Next.js project.
Framework preset: Next.js
Install command: bun install
Build command: bun run build
Optional Vercel variables are the same public variables listed in the environment section.
This is a solo-maintained personal repository. Issues are the right place for suggestions, ideas, broken links, or bug reports.
The code and structure are available under the MIT License. If you use this repository as a starting point, keep the license or a small credit in your own repository. No visible attribution is required on your website.
Personal writing, project descriptions, photos, and identity assets are included for context and should be replaced in your own version.