Changelog
A running log of everything I've built into this site — from the first foundation to the latest little details. Newest first.
- v2.26August 23, 2026
Site Pulse — the numbers behind the site
FeatureThe resume's Activity tab now opens with a live 'Site Pulse' — a quick read on how much the site holds and how much it's been seen.
- A tidy tile grid shows live counts pulled straight from the database: blog posts, total blog views, projects, photos, studio bookings, reactions, and guestbook signatures.
- It sits above the existing GitHub contributions and WakaTime coding stats, so everything activity-related lives in one place.
- Big numbers are shortened (e.g. 3,400 → 3.4k) and the section carries a small live pulse dot.
- v2.25August 23, 2026
Easier to share, easier to find
FeatureSEOBlog posts and projects now carry share buttons, the whole site has a real sitemap, and the blog has its own RSS feed.
- Every blog post and project detail page now has share buttons — X, LinkedIn, WhatsApp, and copy-link — plus the native share sheet on mobile.
- New RSS feed at /feed.xml with the latest posts, auto-discovered by feed readers, so people can subscribe to the blog.
- The sitemap is now generated from live data — it includes every individual blog post and project, along with pages that were previously missing, so search engines can find everything.
- v2.24August 23, 2026
The admin panel, rebuilt end to end
FeatureUI/UXThe whole content-management side was redesigned and completed — a proper labeled sidebar, consistent screens, loading states everywhere, and every create/edit/delete flow finally in place.
- New navigation: a labeled sidebar grouped by area (Overview, Portfolio, Studio, Community) replaces the old icon-only rail, with a slim breadcrumb header and a matching mobile drawer — and no more dead links.
- Every section now has full create, edit, and delete — including the previously missing Edit for work experience, blogs, photography, and bento, plus delete for works, blogs, and projects.
- Deleting anything now asks for confirmation in a proper dialog instead of a bare browser prompt, and every screen shows a skeleton while it loads.
- Consistent look throughout: one page-header, one card style, shared forms, and a single moderation view behind both the Guestbook and Recommendations.
- Under the hood, all admin data now goes through a typed service layer with shared file-upload handling, and a long-standing bug where editing a studio booking reset its date is fixed.
- v2.23August 23, 2026
The AI agent thinks out loud, in phases
FeatureAIUI/UXThe assistant now unfolds its work like a real reasoning agent — a rich opening 'thought', tools grouped into phases, and casual progress notes in between — with proper chat controls around it.
- Every reply opens with a substantial, formal 'Thinking…' step whose lines animate in one by one and that quotes what you actually asked, then collapses to 'Thought for Ns'.
- Broad questions play out in phases: it gathers a group of things, drops a warm one-line update in Faiz's voice about what it found and what's next, then continues — instead of one big burst.
- Project recommendations render as clean, tappable cards, and single-topic questions still get a grounded thought rather than a flat lookup.
- Added a Stop button to cancel a reply mid-stream, a Regenerate button to re-run the last question, and contextual follow-up chips that suggest natural next questions.
- Errors and empty replies now show a friendly in-character message instead of a raw error toast.
- v2.22August 23, 2026
The AI agent shows its work
FeatureAIUI/UXThe personal AI assistant is now a real agent — it looks things up with tools and shows a live trace of exactly what it did before answering.
- Instead of being handed everything up front, the assistant now decides when to call real tools — searching projects, reading work history & education, searching blogs, checking the Satu Visual schedule, and looking up Faiz's gear, tech stack, or contact info — and chains several when a question is broad.
- Every reply shows an expandable 'thinking' trace of the tools it used and what they returned, with a live timer that counts up while it works — so the answer is transparent and grounded, no invented details.
- The reply now types out at a natural pace after the trace settles, and it's all built on a proper server-side tool-calling loop with a streamed event protocol.
- v2.21August 23, 2026
A proper chat, end to end
UI/UXThe realtime chat was rebuilt to feel like a real messaging app — grouped bubbles, date separators, a richer header, and smoother scrolling.
- Messages from the same person in a row are now grouped: the name shows once on top, the avatar once at the bottom, and the time once at the end — with iMessage-style rounded corners across the run.
- Added date separators (Today / Yesterday / full date) so you can see when each part of the conversation happened.
- The header now shows Faiz's avatar with a live online dot, the endpoint, and a running message count; there's an empty state before anyone has written.
- Added a floating 'jump to latest' button when you scroll up, and fixed the mouse wheel so it scrolls the chat instead of the whole page.
- Gave the page its own title and intro, matching every other page, so it no longer drops straight into the chat panel.
- v2.20August 22, 2026
Chat that reads like a real conversation
UI/UXThe realtime chat now looks like a proper messaging thread — Faiz's replies sit on the right, everyone else on the left, so you can follow the back-and-forth at a glance.
- Faiz's messages always align right in a filled 'sent' bubble — like a host replying — for every visitor, even before you sign in.
- Everyone else's messages stay on the left in a neutral bubble, and your own messages move to the right once you're signed in.
- Polished the bubbles with softer rounded corners, a chat-tail, a sensible max width, and reply-quote styling that adapts to each side.
- v2.19August 22, 2026
Resume, in-app and alive
FeatureUI/UXContentFixThe resume now lives inside the site — the download button opens an expandable card that previews the PDF and tells a short story, instead of bouncing you out to Google Drive.
- "Download My Resume" now morphs open into a two-column card: the avatar and a live PDF preview on the left, a short profile (About / What I do / Currently) with a Download button on the right.
- The PDF is self-hosted on Supabase Storage and previewed in-app — no external Drive link, and the WakaTime stats that couldn't be verified were removed.
- Added the current role — Officer Data at Performance Management & HCIS, PT Perkebunan Nusantara III — to the work experience, plus a description for the PLN data-analyst internship.
- Fixed the WakaTime activity panel so the Start Date and End Date of the last-7-days range actually show, instead of a blank dash.
- v2.18August 22, 2026
Loading states that match the page
UI/UXEvery page now shows a loading skeleton shaped like its real content, so pages settle in smoothly instead of flashing a generic placeholder.
- Added tailored skeletons for the resume, contacts, chat, project detail, and blog detail pages — each mirrors that page's actual layout.
- Filled in the remaining pages too: gear, arcade, changelog, Satu Visual bookings, profiles, and the components gallery.
- The skeleton now transitions seamlessly into the loaded content instead of jumping from a mismatched placeholder.
- v2.17August 22, 2026
The AI got a voice — and a personality
FeatureAIYou can now hear replies and articles read aloud, and the AI assistant finally talks like Faiz — high-energy, friendly, and fun.
- Added text-to-speech: a Listen button on each AI reply, and a 'Listen to this article' button on every blog post.
- The narration voice is warm, upbeat and expressive — not a flat robot.
- Reworked the assistant's personality to match Faiz's ENFP energy: extroverted, playful, and genuinely funny, in both English and santai Indonesian.
- v2.16August 14, 2026
A more editorial hero
UI/UXThe desktop hero got a quiet, editorial polish — a serif italic accent and a softer motion, with less clutter.
- The rotating verb (design / code / shoot / ship) is now set in Times Ten Italic — an editorial serif accent that keeps the monochrome look, instead of a color pop.
- That word changes with a soft blur-and-rise transition rather than a hard slide.
- Trimmed the hero to fewer elements: stats are one quiet line now, not a grid of cards.
- v2.15August 14, 2026
Community features: open recommendations, moderated
FeatureUI/UXThe site got more social — anyone can leave a recommendation, the guestbook is moderated, and you can peek at who you're chatting with.
- Recommendations are now open: anyone can submit one via "Add yours", and it appears in the marquee once approved. No more hardcoded list.
- Both recommendations and the guestbook use hold-then-approve moderation, with dedicated admin queues to approve or reject submissions.
- Tap someone's avatar in the chat to view their profile — a new read-only profile page for every user.
- v2.14August 14, 2026
A designer's toolbox and lists that don't overwhelm
FeatureUI/UXThe resume now shows what I can actually do, and the long lists finally page instead of dumping everything at once.
- New Tools & Expertise section on the resume, grouped by discipline — Development, Design, and Video & Photo.
- "Load more" paging on the blogs grid, the guestbook, and the changelog commit feed, so nothing renders hundreds of items up front.
- v2.13August 14, 2026
Desktop hero, one language, a gear map that works on mobile
UI/UXContentFixA batch of polish: the homepage finally introduces itself on desktop, every screen speaks one language, and the gear map stopped breaking on phones.
- New desktop hero: animated name, role, socials, and a count-up stats strip — no more cold open on "About".
- One consistent English voice everywhere — translated the Indonesian dev-voice that was leaking into toasts, empty states, and buttons across the public site and the admin dashboard.
- The Gear Vault map now opens on tap (works on touch), and its data lives in one place instead of four drifting copies.
- v2.12August 14, 2026
One identity, one brand
ContentSEOPulled every scattered handle, email, and job title into a single source of truth — and settled the brand: a fullstack developer & designer, not just an engineer.
- New identity constants file: name, username, socials, and contact live in one place, so nothing drifts out of sync again.
- Retired the brittle hardcoded-email admin checks in favor of the proper isAdmin flag.
- Rebranded across all metadata, titles, manifest, and email signatures — from "software engineer" to "Fullstack Developer & Designer" (someone who codes, designs, and shoots).
- v2.11August 14, 2026
Invoice builder moved behind admin auth
SecurityFixThe invoice tool is an internal studio utility, not portfolio content — so it now lives behind the admin login instead of shipping its details to the public.
- Relocated /invoice to /admin/invoice, automatically protected by the existing admin middleware (isAdmin check).
- Removed the invoice entry from the public sidebar, command palette, and profile menu.
- Excluded from search indexing; the page no longer exposes studio contact and payment details to anonymous visitors.
- v2.10August 13, 2026
Buttery smooth scrolling
UI/UXPerformanceThe whole site now scrolls with a gentle, eased inertia — that expensive, native-app glide — instead of the browser's stiff jump.
- Powered by Lenis: every wheel scroll eases in and coasts to a stop, site-wide.
- Internal scroll areas (sidebar, AI chat, ⌘K command palette, profile drawer) opt out, so they still scroll natively and never feel hijacked.
- A floating back-to-top button fades in once you've scrolled down and glides you home — tucked beside the ⌘K pill on desktop, bottom-right above the nav on mobile.
- v2.9August 13, 2026
Arcade — a built-in game corner
FeatureUI/UXBecause a portfolio can have a soul. A whole /games page with three playable games, hand-built from scratch on plain canvas — no engines, no libraries.
- 🦖 Dino Runner, 🐍 Snake, and 👾 Pac-Man (with a real maze + chasing ghost AI), each written from zero.
- Monochrome and theme-aware so they blend into the site in both light and dark mode.
- Full keyboard + touch controls (swipe on mobile), plus a live score & best tracker.
- The Dino also lives inside the 404 page — get lost, get a game.
- v2.8August 13, 2026
Polish pass — the little things that feel expensive
UI/UXPerformanceSEOA sweep of refinements that make the whole site feel smoother and more finished, end to end.
- Smooth page transitions: the content fades & slides on navigation while the sidebar stays perfectly still — like a real app.
- Per-page loading skeletons that mirror each page's real layout (project cards, blog hero, photo bento, guestbook form) instead of a generic blank.
- A branded 404, a custom error screen, and scroll-triggered fade-up animations on the homepage.
- SEO: proper titles, descriptions & social cards on every page — including dynamic per-project metadata.
- v2.7August 11, 2026
Photobooth, leveled up
FeatureUI/UXThe AR photobooth got the finishing touches that make it genuinely fun to use and share.
- Mirror toggle and a desktop camera picker (choose which webcam to use).
- A native, branded share page — no more raw storage links. Shared shots open on a clean p441z page.
- Share by copyable link or QR code, both pointing to that native page.
- v2.6August 9, 2026
The 3D lanyard ID card
FeatureUI/UXClick the profile photo and a physics-based lanyard drops in — a draggable ID card you can swing around.
- Real physics (rope joints + gravity) so the card swings and settles naturally.
- Your photo on the front, Satu Visual branding on the band & back of the card.
- Fully client-side and portaled above everything, with a clean backdrop in both themes.
- v2.55August 13, 2026
Refinements & bug fixes
FixPerformanceThe unglamorous but important stuff — squashing bugs and tightening details found along the way.
- Fixed Snake & Pac-Man not starting (a stale effect was clearing the game timer on every state change).
- Guestbook entries now appear without a hard refresh (defeated Next's router cache).
- Sorted out the double '| p441z' in page titles and other metadata quirks.
- Fixed the Spotify album art loading and image-optimizer memory issues.
- v2.5August 7, 2026
Now Playing — a Spotify-styled widget
FeatureA little music widget in the sidebar that shows what I'm listening to, with a live equalizer animation.
- Looks like Spotify, but reads from Last.fm — so it works for free, no Premium needed.
- Shows the current or last-played track and self-hides until it's configured.
- Polls quietly in the background and updates on its own.
- Collapsible sidebar groups added alongside it, with animated headers.
- v2.4August 7, 2026
Guestbook — leave your mark
FeatureAn anonymous guestbook where anyone passing through can sign and react.
- Sign with just a name + message — no login required.
- Emoji reactions on each entry, with an optimistic UI and per-visitor toggling.
- New entries show up instantly, no refresh needed.
- v2.3August 7, 2026
A smarter AI assistant
FeatureThe built-in AI got a brain transplant and a personality rewrite.
- Migrated to OpenAI (gpt-4o-mini) with a fully rewritten system prompt.
- Clear persona, automatic language detection, and anti-hallucination guardrails.
- Knows my real projects, blogs & work — and recommends them with rich cards.
- v2.2August 7, 2026
Contact form that actually reaches me
FeatureUI/UXA proper contact form, backed by a database and real transactional email.
- Messages save to Supabase and email me instantly via Resend.
- Branded HTML email templates + an auto-reply to the sender, from contact@p441z.my.id.
- Redesigned /contacts with the form plus social links.
- v2.1August 7, 2026
A premium auth experience
UI/UXThe login/signup flow was rebuilt as a full-screen, split-screen experience.
- A Satu Visual–branded panel with auto-sliding real photos and a lighter gradient.
- Polished forms: input icons, show-password, remember-me, and working Google/GitHub OAuth.
- Fully responsive, redesigned for mobile too.
- v2.05August 7, 2026
Profile menu & scrollbar, reimagined
UI/UXA set of quality-of-life redesigns that make the site feel considered on every device.
- Profile menu rebuilt as a bottom sheet on mobile / dropdown on desktop, with a Studio & Workspace app-launcher grid.
- Cleaner rows: boxed icons, labels, descriptions, chevrons — and accurate active states.
- A custom, on-brand rounded scrollbar (light & dark) replacing the default Windows one.
- Layout toggle (grid/list) and always-on UI sound baked into Preferences.
- v2.0August 6, 2026
AR Photobooth
FeatureA webcam photobooth with real-time face tracking — the centerpiece feature.
- Real-time AR effects via MediaPipe face tracking (hearts, crown, sparkle, kitty) + face distortions (bug-out, chipmunk, space-alien, squeeze).
- Multiple photo templates (Classic, Spotify, Special Day, Retro Film, Pastel) + a screen-flash effect.
- Filters, frames, draggable/resizable/rotatable stickers, and a boomerang GIF export (gifenc).
- Per-photo download and QR sharing via Supabase, all running in your browser.
- v1.9August 4, 2026
Component Library
FeatureUI/UXA live UI component library & registry — 30+ animated components with docs.
- Grouped gallery with search, pill badges, and per-component detail pages.
- Animated terminal install snippets, copyable themed code blocks & props tables.
- A CLI-style registry endpoint so components can be pulled in.
- v1.8August 4, 2026
Sound, Showreel & Command Palette
FeatureUI/UXInteractive touches that make the site feel alive.
- A ⌘K command palette for instant navigation.
- A cinematic showreel section (Supabase video) with a proper audio fix.
- Subtle UI sound effects wired into buttons, copy actions & the palette.
- Fixed favicons & PWA icons, and a big SEO pass (OG/Twitter cards, sitemap, canonical).
- v1.5May 17, 2026
AI Agent, first light
FeatureThe original AI assistant landed — a chat agent embedded in the site.
- Added the AI agent with a revamped UI/UX and its own sidebar entry.
- Wired up the streaming chat route and ironed out the early bugs.
- v1.2May 13, 2026
Studio & Admin dashboard
FeatureContentThe Satu Visual studio showcase and the CRM dashboard behind it.
- Featured Project and Satu Visual bento sections on the homepage.
- An admin dashboard to manage the studio's content & bookings.
- Image compression added for faster uploads.
- v1.0April 18, 2026
The foundation
FeatureWhere it all began — the portfolio's first real build.
- Initial portfolio build: home, resume, projects, blogs & works.
- Supabase wired in for the database, plus auth, login/signup & security middleware.
- Admin create-modals for blogs & work experience, and Vercel deployment set up.