Changelog
All notable changes to this website will be documented here.
Minor Fixes
Latestv1.1April 26, 2026
Added
Add circular favicon cropping on upload using sharp SVG mask compositing (
lib/crop-circle.ts)Add shared inline markdown renderer (strikethrough,
lib/markdown.tsx) supporting bold, italic, code, and linksAdd markdown rendering for bio summary on public homepage
Add canvas-based
ProtectedImage component (components/protected-image.tsx) to prevent avatar image saving/downloading via right-click, drag, or DevToolsAdd markdown formatting hint in admin bio summary textarea
Changed
Refactor changelog page to use shared
renderInlineMarkdown from lib/markdown.tsx instead of local implementationRevert theme toggle transition from
clip-path back to maskImage with radial-gradient feather effect for smoother animationChange upload file cache policy from immutable to
must-revalidate for proper cache bustingFixed
Fix favicon not showing in browser tab caused by query params (
?t=) stored in database URL — app/icon.tsx now strips query params before reading fileFix admin panel cache not updating after avatar/favicon upload by separating preview URLs (with cache-bust params) from clean database state
Initial Release
v1.0April 26, 2026
Portfolio website built with Next.js 16, React 19, and TypeScript
Tailwind CSS 4 with shadcn/ui component library
MySQL 8 database with Drizzle ORM (auto-migration via
drizzle-kit push)BetterAuth authentication system (email/password with rate limiting)
Admin dashboard with full CRUD for Bio, Experience, Education, Technologies, Contacts, and Changelog
Dynamic homepage with typing animation, bio section, and call-to-action buttons
Tech stack marquee with auto-scrolling technology badges
GitHub contribution activity graph (GraphQL API integration)
Visitor info card with IP, browser, and geolocation detection
Resume page with work experience and education timeline
Contacts page with custom SVG icons and multiple social platforms
Changelog page with GitHub Releases-style timeline UI
Dark/light theme toggle with View Transition API animation
Scroll-triggered fade-in animations (IntersectionObserver)
Responsive design with mobile hamburger navigation
File upload system for avatars and company icons
Docker deployment with multi-stage build (Bun + Node.js Alpine)
Registration toggle via
ALLOW_REGISTRATION environment variableDecorative dot grid background with wavy mesh pattern