Change Log
History of updates, new features, and fixes.
1.2.1
Profile CTA AlignmentJun 2026latest
ProfileHeroProfile CTAs use the shared Button (icon-in-front) instead of PillButton — Download CV + email/calendar links match the home-page button style
1.2.0
Card Gradient UtilityJun 2026
newcard-gradientOpt-in utility class — subtle vertical gradient tinted from the bottom; uses --foreground so it auto-inverts (lighter from bottom in dark, darker in light). Ships unapplied; add the class to any surface
1.1.2
Profile Bio Width FixJun 2026
fixProfileHeroBio drops its max-w-3xl cap — uses the page width instead of wrapping narrow
1.1.1
Flat Sidebar Buttons FixJun 2026
fixSidebarCollapse/expand/close icon buttons opt out of the button hover glow (no-hover-glow) — flat like the header theme toggle instead of the gold glow on hover
1.1.0
Flat Hover Controls, DataTable & Dashboard DepthJun 2026
newDataTableShared table-pagination primitive — usePagination hook, TablePagination (Showing [10/25/100] of N + windowed numbered pager), FilterPanel, DataTable wrapper with optional toolbar + pagination
newUsersEdit-user modal (name/email/role/status, keyed form — no setState-in-effect) + ghost icon row actions (edit/delete); delete now removes the row
improvedOverviewStat cards use metric-accent tint (--metric-* color-mix bg 14% + border 30%)
newMetric tokens--metric-{red,green,blue,yellow,orange} accent tokens (light + dark) — previously website-only, now in both globals.css
improvedThemeToggleIcon variant flattened — gold hover:text-primary, no rounded-full, no glow; main header uses variant=icon
improvedTabsAll variants (underline/pill/bordered) opt out of the button hover glow
fixHover glowno-hover-glow opt-out rule box-shadow:none !important — beats higher-specificity [type=button]/.dark glow selectors that type=button controls match
1.0.0
Production-Ready Milestone — Unit Test FoundationMay 2026
newJestJest 30 scaffolding with next/jest async wrapper, jsdom + node env split per suite, SWC ESM compilation for jose, root tests/ tree mirroring src/
newTests50 P0 unit cases across 13 suites — utils, hooks, env validation, auth (cookie/jwt/guard/rate-limit), auth.service, API routes (health/login/logout), proxy middleware
newCoverage70% global coverage threshold enforced in jest.config.ts (branches, functions, lines, statements)
newREADMETesting section documents scope (50 cases breakdown) + intentional gaps (UI interaction tests deferred to E2E)
fixrate-limitGuard setInterval().unref?.() for jsdom cross-env safety — optional chaining is no-op in Node prod, prevents crash in test runner
improvedESLintFile-scoped tests/** override disables @typescript-eslint/no-require-imports (needed for jest.resetModules + require workflow)
newDevDepsAdded jest, jest-environment-jsdom, @types/jest, @testing-library/dom + react + jest-dom + user-event
0.7.2
Shared Primitive SyncMay 2026
newDropdownGeneric menu primitive with icons, dividers, danger items, keyboard shortcuts, arrow-key navigation, Esc + click-outside dismiss
newTabs3 variants (underline / pill / bordered), icons + badges, controlled/uncontrolled, ARIA tabs pattern with arrow-key + Home/End navigation
newAccordionSingle/multiple mode, CSS grid height transition, ARIA disclosure pattern
newCalendarMonth grid with prev/next navigation, today border, selected highlight, min/max date bounds
newDatePickerCalendar in dropdown popover with Esc + click-outside dismiss, configurable format
newTimePickerHour/minute columns with configurable minute step (1/5/10/15/30)
newSearchInputDebounced search input with clear button + highlightMatch regex helper
newuseDebouncedGeneric debounce hook (synced from website v0.4.6)
0.7.1
License & AttributionMay 2026
newLicenseMIT LICENSE file (© 2026 Erik Yuntantyo)
newNoticeNOTICE.md crediting shadcn/ui (MIT, © 2023 shadcn) for derived UI components
improvedpackage.jsonAdded license and author fields
improvedREADMELicense link and Third-Party Attributions section
0.7.0
Docker, Cursor Rule & Security PatchesMay 2026
newDockerMulti-stage Dockerfile (deps → builder → runner), Next.js standalone output, non-root nextjs:nodejs user, Node 24 Alpine, /api/health healthcheck
new.dockerignoreSlim image context — exclude node_modules, .next, .git, etc.
improvedCSSGlobal cursor: pointer base layer rule (button, [role=button], a[href], label[for], summary, [type=button|submit|reset]) — restores Tailwind v3 default v4 dropped
improvedUIDropped per-component cursor-pointer class from button, theme-toggle, login, forms, sidebar
fixNext.jsBumped next ^16.0.10 → ^16.2.6 (mirrors website vuln patch)
fixpostcssForced postcss ^8.5.10 via resolutions to evict vulnerable transitive
fixHeaderMobile breadcrumb truncation — min-w-0, shrink-0, truncate on last crumb (sync website v0.3.1)
improvedCIDropped pull_request trigger from build workflow (template repo, push-driven publish)
0.6.0
Dashboard & UI PolishApr 2026
newDashboardAdmin dashboard with collapsible sidebar, breadcrumb header, and mobile nav
newOverviewStat cards, area charts (recharts), and recent activity list
newUsersData table with Avatar, Badge, delete modal, and toast feedback
newFormsLogin and Register previews with tab switcher and loading states
newSettingsForm inputs with save-triggers-toast interaction
newTimelineVertical timeline component for change log display
improvedThemeWarm cream light mode (hue 80), stronger text contrast, no blue tint
improvedSidebarCSS tokens (--sidebar-*) for semantic styling
improvedHeaderDashboard link added to public navigation
improvedAnimationsReduced to hero-only — removed cascade from cards and sections
improvedCSSRemoved dead keyframes and unused delay classes
improvedCardRemoved unused CardFooter export
improvedESLintIgnore packages/ directory
improvedProxySimplified to single /dashboard/:path* matcher
improvedReactRemoved manual useMemo/useCallback — React Compiler handles memoization
fixTheme Togglecursor-pointer on both button and icon variants
fixFloating NavOutlined faHouse icon matching public header (mobile + dashboard)
fixDashboard NavAbout + Dashboard text labels in mobile floating nav matching public
fixSidebar HeaderLogo style synced with public header (text-xl, text-primary icon, siteConfig.name)
fixFooterCopyright year hardcoded to 2025
0.5.0
CLI Scaffolding & MonorepoMar 2026
newCLIcreate-turmerrific-starter-kit package (npx create-turmerrific-starter-kit my-app)
newMonorepopackages/ directory for internal tooling
improvedThemeWarm gold primary with pure neutral backgrounds
fixnpmInclude dist/ in published package via files field
0.4.0
Design Polish & ChangelogMar 2026
improvedTag6 pastel color variants (yellow, orange, lime, cyan, violet, rose)
improvedExperienceTags color-mapped to skill categories
improvedOpportunityCardHighlighted with warm yellow tint
improvedPreviewsHeader, Footer, About previews synced with live website
0.3.0
Component Catalog & Case StudyMar 2026
newCatalog2-column layout with collapsible sidebar and breadcrumb header
newItemPreviewGitHub-style preview/code tabs with per-component dark mode toggle
newLayoutShellConditional Header/Footer (skipped for /case-study routes)
newSidebarBranded title bar, flat category menu, icon-only collapsed mode
newPreviews21 live previews — Pages, Layout, Components, Data Display, Customization
newAPICatalog API endpoint with category/subcategory filtering
0.2.0
MDX Profile, About & BlogMar 2026
newAboutMDX-driven About page with profile section components
newProfileHeroAvatar, name, title, location, links, bio, CV button
newSkillsGridGrid of skill categories with pastel Tag pills
newExperienceListExperience cards with tech tags
newBlogFile-system backed blog with markdown posts and SSG
newPosts APIBlog posts endpoint with tag/limit filtering
0.1.0
Foundation & Core UIMar 2026
newNext.js 16App Router with React Compiler, TypeScript strict mode
newThemeTailwind CSS v4 with oklch Turmerrific palette
newUI14 shadcn-style components (Button, Card, Table, Toast, etc.)
newLayoutHeader with navigation, Footer with social links, dark/light toggle
newSEOMetadata generation, JSON-LD, dynamic OG/Twitter images, robots.ts, sitemap.ts
newCIESLint + Prettier + GitHub Actions pipeline