Skip to content

BAKUGOS1/vedic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

109 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Bindu β€” Digital Dharma πŸͺ·

Next.js React Tailwind CSS Framer Motion TypeScript Deploy

A premium, minimalist developer portfolio exploring the intersection of ancient Vedic philosophy and cutting-edge web development. Built with Next.js 16 App Router, React 19, Tailwind CSS v4, and Framer Motion β€” featuring dual theming (Surya/Chandra), cinematic animations, AI chatbot integration, and full static generation.

Live β†’ thebindu.vercel.app


πŸ§˜β€β™‚οΈ Philosophy

Bindu (ΰ€¬ΰ€Ώΰ€¨ΰ₯ΰ€¦ΰ₯) β€” "the seed point" β€” represents the cosmic center from which all creation unfolds. This portfolio treats the web interface as an experiential canvas where every interaction carries intention.


πŸ“„ Pages & Routes

Route Description
/ Homepage β€” hero, timeline, skills, projects, GitHub contributions, contact
/bindu "I'm Bindu" β€” interactive philosophy page with sacred geometry & animations
/kalpas Cinematic AI-powered timeline mapping 3,500 years of human Γ— machine evolution
/blog Blog with markdown posts
/projects/[slug] Project case studies (Drishti, RepoCard, Zybra)
/skills Skills & expertise breakdown
/tapasya GitHub contribution graph ("daily discipline")
/contact Contact form

πŸ•‰οΈ Vedic Naming Convention

Sanskrit Term Meaning Maps To
Bindu The seed point Brand / project name
Aarambh The beginning Hero section
Kala-Chakra Wheel of time Interactive timeline
Vidya Knowledge Skills section
Karma Action Projects section
Tapasya Discipline GitHub contribution graph
Sankalpa Intention Contact form
Surya / Chandra Sun / Moon Light / Dark themes
Ask Dharma Cosmic guidance AI chatbot widget

πŸ“‚ Architecture

src/
β”œβ”€β”€ app/                         # Next.js App Router
β”‚   β”œβ”€β”€ page.tsx                 # Homepage (single-scroll assembly)
β”‚   β”œβ”€β”€ layout.tsx               # Root layout (fonts, SEO, providers)
β”‚   β”œβ”€β”€ bindu/                   # /bindu philosophy page
β”‚   β”œβ”€β”€ blog/                    # /blog with [slug] posts
β”‚   β”œβ”€β”€ kalpas/                  # /kalpas cinematic timeline
β”‚   β”‚   β”œβ”€β”€ page.tsx             # Server component (static)
β”‚   β”‚   └── KalpasPageClient.tsx # Client-side interactive body
β”‚   β”œβ”€β”€ projects/                # /projects/[slug] case studies
β”‚   β”œβ”€β”€ skills/                  # /skills page
β”‚   β”œβ”€β”€ tapasya/                 # /tapasya GitHub graph
β”‚   β”œβ”€β”€ contact/                 # /contact form
β”‚   └── api/                     # Serverless API routes
β”‚       β”œβ”€β”€ ask-dharma/          # AI chatbot (Gemini)
β”‚       β”œβ”€β”€ ask-rishi/           # Kalpas-specific AI assistant
β”‚       β”œβ”€β”€ github-contribs/     # GitHub GraphQL proxy
β”‚       β”œβ”€β”€ og-image/            # Dynamic OG image generation
β”‚       └── send-sankalpa/       # Contact form handler
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ ui/                      # Reusable UI primitives
β”‚   β”‚   β”œβ”€β”€ tubelight-navbar.tsx # Animated pill navbar with lamp effect
β”‚   β”‚   β”œβ”€β”€ animated-shader-background.tsx  # Three.js aurora shader
β”‚   β”‚   β”œβ”€β”€ flickering-grid.tsx  # Canvas flickering grid
β”‚   β”‚   β”œβ”€β”€ particles-bg.tsx     # Canvas particle system
β”‚   β”‚   └── stars-background.tsx # Canvas starfield
β”‚   β”œβ”€β”€ Kalpas/                  # Kalpas page components
β”‚   β”‚   β”œβ”€β”€ KalpasHero.tsx       # Hero with deferred Three.js
β”‚   β”‚   β”œβ”€β”€ DualTrackTimeline.tsx # Dual-track era timeline
β”‚   β”‚   β”œβ”€β”€ MilestoneCard.tsx    # React.memo'd milestone cards
β”‚   β”‚   β”œβ”€β”€ AskRishi.tsx         # Per-era AI Q&A panels
β”‚   β”‚   └── EraNavBar.tsx        # Sticky era navigation
β”‚   β”œβ”€β”€ HeroBindu/               # Homepage hero
β”‚   β”œβ”€β”€ Timeline/                # Homepage timeline with MandalaCanvas
β”‚   β”œβ”€β”€ Footer.tsx               # Full footer with FlickeringGrid
β”‚   β”œβ”€β”€ Navbar.tsx               # Tubelight navbar wrapper
β”‚   └── ...                      # ~24 component directories
β”œβ”€β”€ content/                     # Static content
β”‚   β”œβ”€β”€ kalpas-data.json         # 6 eras Γ— dual-track timeline data
β”‚   β”œβ”€β”€ blog/                    # Markdown blog posts
β”‚   β”œβ”€β”€ bindu/                   # Bindu page content
β”‚   └── projects/                # Project case study markdown
└── styles/
    └── global.css               # CSS design tokens (Surya/Chandra)

🎨 Design System

Themes

  • Chandra (Dark): Deep charcoal (#0F0F0F) + golden accent (#E5C271)
  • Surya (Light): Cloud grey (#FDFBF7) + warm gold (#D4AF37)

Typography

Key Components

  • TubelightNavbar: Animated pill nav with "lamp" glow effect, leading/trailing slots
  • FlickeringGrid: Canvas-based text rendering with random opacity flickering
  • MandalaCanvas: Generative sacred geometry with rotating ring patterns
  • ParticlesBg: Depth-of-field particle system with mouse repulsion
  • AnoAI Shader: Three.js fragment shader (aurora borealis effect, code-split)

πŸ› οΈ Setup & Installation

Prerequisites

  • Node.js v20+
  • npm

1. Clone

git clone https://github.com/BAKUGOS1/vedic.git
cd vedic

2. Install

npm install

3. Environment Variables

Create .env.local at the project root:

# GitHub β€” for contribution graph
GITHUB_TOKEN=ghp_your_token
GITHUB_USERNAME=BAKUGOS1

# Gemini β€” for AI chatbot
GEMINI_API_KEY=AIzaSy_your_key
LLM_MODEL=gemini-2.0-flash

4. Dev Server

npm run dev

Open http://localhost:3000

5. Build

npm run build
npm run start

6. Test

npm run test          # single run
npm run test:watch    # watch mode
npm run test:coverage # with coverage

πŸš€ Deployment

Deployed on Vercel at thebindu.vercel.app.

All pages are statically generated except API routes. The Kalpas page (/kalpas) uses server-component data loading with client-side interactivity via KalpasPageClient.

For detailed deployment instructions, see the Deployment Runbook.


πŸ“‹ Scripts

Command Purpose
npm run dev Start dev server
npm run build Production build
npm run start Start production server
npm run lint Run ESLint
npm run type-check TypeScript type checking
npm run test Run Vitest tests
npm run test:coverage Tests with coverage report

πŸ”’ Performance Optimizations

  • Three.js deferred via next/dynamic β€” ~600KB code-split from initial bundle
  • Canvas loops paused when off-viewport (IntersectionObserver) and when tab is hidden (visibilitychange)
  • React.memo on frequently re-rendered components (MilestoneCard)
  • Stable callbacks via useCallback to prevent unnecessary child re-renders
  • Google Fonts loaded via <link> with display=swap (non-render-blocking)
  • Static generation for all content pages
  • Particle class extracted to module scope (React compiler compatible)

πŸ“– Additional Documentation


Created with intent and precision by Mohit Kumar.

About

Minimal portfolio experience blending Vedic philosophy with modern web design.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors