Akbar

Changelog

All notable changes to this website will be documented here.

Minor Fixes

Latest
v1.1April 26, 2026

Added

Add circular favicon cropping on upload using sharp SVG mask compositing (lib/crop-circle.ts)
Add shared inline markdown renderer (lib/markdown.tsx) supporting bold, italic, strikethrough, code, and links
Add 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 DevTools
Add markdown formatting hint in admin bio summary textarea

Changed

Refactor changelog page to use shared renderInlineMarkdown from lib/markdown.tsx instead of local implementation
Revert theme toggle transition from clip-path back to maskImage with radial-gradient feather effect for smoother animation
Change upload file cache policy from immutable to must-revalidate for proper cache busting

Fixed

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 file
Fix 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 variable
Decorative dot grid background with wavy mesh pattern