<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>Lemmuel Turaya — Portfolio Changelog</title>
  <link>https://kon2raya.netlify.app/changelog.html</link>
  <atom:link href="https://kon2raya.netlify.app/feed.xml" rel="self" type="application/rss+xml" />
  <description>Versioned log of what ships on lemmuel-turaya / kon2raya portfolio — features, fixes, and content updates.</description>
  <language>en-us</language>
  <copyright>Lemmuel Turaya</copyright>
  <managingEditor>turayalemmuel@gmail.com (Lemmuel Turaya)</managingEditor>
  <webMaster>turayalemmuel@gmail.com (Lemmuel Turaya)</webMaster>
  <generator>hand-written, no static-site generator</generator>
  <lastBuildDate>Thu, 11 Jun 2026 23:30:00 +0800</lastBuildDate>
  <ttl>1440</ttl>

  <item>
    <title>v6.0 — PLAYER FILE: the portfolio reimagined as a game menu</title>
    <link>https://kon2raya.netlify.app/changelog.html#v6-0</link>
    <guid isPermaLink="false">portfolio-v6.0-2026-06-11</guid>
    <pubDate>Thu, 11 Jun 2026 23:30:00 +0800</pubDate>
    <category>feature</category>
    <description><![CDATA[
      A completely new UI fronts the portfolio: a full-viewport game-menu
      shell in the language of a modern RPG pause screen. Persistent top HUD
      (player tag, LV 6, exploration XP bar, live views, clock) and a menu
      rail with seven screens — CHARACTER, QUEST LOG, CAREER LOG, SKILL TREE,
      ABILITIES, TROPHY ROOM, COMMS. Same content, remapped: about becomes a
      character sheet with lore, passive traits, and active buffs; the nine
      case studies become rarity-coded quests (two LEGENDARY); experience
      becomes six cleared acts plus a training arc; skills become tiered
      skill bars; services become ability cards; projects become
      gold/silver/bronze trophies; contact becomes a transmission console on
      the same Netlify form. Skippable PRESS START title screen, keys 1–7 +
      arrows, achievement toasts, chamfered panels, Orbitron/Rajdhani type —
      deliberately distinct from the retro arcade skin and the playable
      NIGHT SHIFT. The long-scroll terminal UI lives on at /classic.html,
      old #fh5co-* deep links route to the matching screen, and a no-JS
      fallback stacks every panel as a plain document. Polish pass shipped
      the same day: quest briefing modals, item tooltips on the equipped
      loadout, a CONTINUE save slot on the title screen, staggered card
      entrances with direction-aware panel slides, scramble-decode titles,
      pointer tilt on cards, a dispatcher NPC on the comms deck, a
      7-achievement system with HUD counter, optional WebAudio UI sound
      (muted by default), plasma/crimson/gold accent variants (Konami code
      unlocks gold), and a game-console bottom tab bar on mobile.
    ]]></description>
  </item>

  <item>
    <title>v5.4 — Arcade is now the default theme, applied to every component</title>
    <link>https://kon2raya.netlify.app/changelog.html#v5-4</link>
    <guid isPermaLink="false">portfolio-v5.4-2026-06-11</guid>
    <pubDate>Thu, 11 Jun 2026 21:30:00 +0800</pubDate>
    <category>theme</category>
    <description><![CDATA[
      Fresh visitors now land on the arcade game-cabinet skin (in dark mode —
      a cabinet is inherently dark); explicit palette/mode choices still win,
      and cyber is stored explicitly so choosing it sticks. The skin now
      reaches every component: a two-tier pixel type system (Press Start 2P
      for display surfaces, VT323 for running text), square corners globally,
      hard-offset arcade-logo shadows, 8px dither texture, coin-gold selection
      and focus states. Component sweep: command palette as pause-menu, chat
      widget as in-game dialogue box, contact form as password-entry screen,
      profile photo as character-select portrait, siderail as level-select
      squares, kbd help / dev terminal / toasts / tour in dialog-box chrome,
      404 as a GAME OVER screen, and the full treatment on case studies,
      /now, /uses, and /changelog. The five other palettes remain selectable
      and unchanged.
    ]]></description>
  </item>

  <item>
    <title>v5.3 — New arcade theme: the portfolio as a retro game cabinet + frame-drop fix</title>
    <link>https://kon2raya.netlify.app/changelog.html#v5-3</link>
    <guid isPermaLink="false">portfolio-v5.3-2026-06-11</guid>
    <pubDate>Thu, 11 Jun 2026 18:00:00 +0800</pubDate>
    <category>theme</category>
    <description><![CDATA[
      Sixth palette: arcade — a full deep-skin like xeno/crt, not just a recolor.
      Press Start 2P pixel type (lazy-loaded only when the theme activates, so
      the other five palettes pay zero font weight), hard pixel drop shadows
      instead of neon glows, square corners + chunky gold borders, violet
      attract-mode hero in place of the cover photo, blinking ▶ PRESS START
      under the hero status, segmented XP-style HUD bar, and arcade glyphs
      (hearts/stars/arrows) in the rain canvas. Reachable from the nav theme
      picker (with its own pixel-cabinet hover preview), the HUD dots, Alt+T
      cycle, the command palette, and the dev terminal ("theme arcade" — or
      "theme game"). Same release also logs the frame-drop sweep: canvas glow
      baked into cached sprites (per-draw shadowBlur was ~135 CPU blurs/frame),
      duplicate card-tilt system removed, magnetic hover rAF-batched, hire-btn
      ripple moved to compositor-only transform/opacity, plus an adaptive
      .fx-lite governor that sheds ambient work only on devices that can't hold
      ~50fps. Worst-case hero frame 99.9ms → 33.7ms with identical visuals.
    ]]></description>
  </item>

  <item>
    <title>v5.2 — Integrity + freshness pass: PWA cache sync, clean OG cover, image weight −65%, dead code purge</title>
    <link>https://kon2raya.netlify.app/changelog.html#v5-2</link>
    <guid isPermaLink="false">portfolio-v5.2-2026-06-11</guid>
    <pubDate>Thu, 11 Jun 2026 11:30:00 +0800</pubDate>
    <category>maintenance</category>
    <description><![CDATA[
      Audit-driven maintenance release. PWA: service-worker precache now includes
      the ph-dev-utils case study + OG card (missed in the v5.1 bump), and the
      worker now registers on every page — not just the homepage — so deep-link
      visitors from LinkedIn/search get cached too. Fixed a real share-image bug:
      the live og-cover.png had the cover.html helper tooltip baked into its
      top-right corner on every social share; regenerated clean via headless
      Chrome. All large PNGs palette-quantized (visually lossless) — images/
      payload 4.3MB → 1.6MB, og-cover alone 550KB → 147KB. Purged ~6MB of dead
      template freight (unused glyphicons, icomoon demo package, stale sass/
      tree, template google_map.js, 13 orphaned template images). Fixed the
      icomoon @font-face path pointing at a nonexistent directory. Refreshed
      /now (was four weeks stale, still said "two case studies" — there are
      nine). Backfilled the on-page changelog: v3.9–v5.1 existed only in this
      feed, and the page's top entry carried v5.0's content under a v3.5 label.
    ]]></description>
  </item>

  <item>
    <title>v5.1 — New case study: @ph-dev-utils, a 12-package open-source PH dev-utils family (JS/TS + PHP)</title>
    <link>https://kon2raya.netlify.app/case-studies/ph-dev-utils.html</link>
    <guid isPermaLink="false">portfolio-v5.1-2026-06-03</guid>
    <pubDate>Wed, 03 Jun 2026 12:10:00 +0800</pubDate>
    <category>case-study</category>
    <description><![CDATA[
      First open-source entry in the case-study set. @ph-dev-utils is a family of 12
      small, focused packages encoding Philippine-specific logic — peso formatting &
      English/Tagalog number-words, ~10 government-ID validators (TIN/SSS/PhilHealth/
      Pag-IBIG/PhilSys/UMID/passport/PRC/license/plate), the full PSGC address
      hierarchy down to 42,046 barangays, 2,048 ZIP codes, 1,573 city/municipality
      coordinates, 158 banks/e-money institutions, payroll (SSS/PhilHealth/Pag-IBIG/BIR
      withholding → net take-home), BIR tax math, holiday-aware dates, seedable faker,
      and a React address picker.

      The distinctive property: 11 of the 12 publish identical behavior on both npm
      (@ph-dev-utils/*) and Packagist (phdevutils/*), so a PHP backend and a JS frontend
      agree on the same rules by construction. The showcase site (React 19 + TypeScript
      + Vite 8, on Vercel) lists the real packages as dependencies and runs ten of them
      live in the browser — so the playground doubles as the family's integration test.
    ]]></description>
  </item>

  <item>
    <title>v5.0 — Audit-driven major: 5 themes, jQuery removed, mobile nav fixed, full a11y sweep</title>
    <link>https://kon2raya.netlify.app/</link>
    <guid isPermaLink="false">portfolio-v5.0-2026-05-18</guid>
    <pubDate>Mon, 18 May 2026 23:00:00 +0800</pubDate>
    <category>major</category>
    <description><![CDATA[
      Single biggest day of shipping since the portfolio's first cut. Audit-driven
      pass that found and fixed real bugs (not polish) end-to-end.

      Theme system: replaced the binary dark/light toggle with a popover picker
      exposing both mode (dark/light) and palette (cyber/matrix/sunset/xeno/crt).
      Xeno is a full alien-transmission skin — void background, drifting starfield,
      sweeping red scan beam, scope-reticle hero corners, diamond pane glyphs,
      scope-reticle cursor, angular clip-path buttons. Crt is retro phosphor
      green-on-black with heavy scanlines, corner vignette, sharp corners,
      chromatic-aberration headings, faint screen flicker. Hover-preview tooltips
      on each palette dot. Alt+T cycles. Matrix-rain canvas uses alien glyphs in
      xeno mode. Split localStorage (mode + palette) with one-time migration.

      Conversion: hero "Book a 15-min call" CTA above the fold (cal.com); same
      CTA appended to every case-study close-out. Removed self-written praise
      section that read as fake testimonials. Reordered work-grid (6 LIVE first,
      then PROTOTYPE, then 2 ARCHIVE — was leading with 2018-era design archive).
      Reframed "Services" pane → "What I Build" with capability framing. Scaffolded
      cs-outcomes--top BEFORE/AFTER block on all 8 case studies (hidden behind
      data-status="draft" pending review). FAQ badge widened from recruiter-only
      to engagement (both audiences).

      Critical regressions fixed: mobile hamburger nav added (phones literally
      couldn't navigate before); <noscript> fallback so JS-disabled visitors
      don't see a perpetual loader; broken OG share previews fixed across 4
      pages (generated missing og-cover.png).

      A11y sweep: main + contentinfo landmarks, hero h1→h2 hierarchy fix,
      comprehensive :focus-visible across 14 selectors, dialog focus management
      on command palette + dev terminal + keyboard-shortcuts overlay, theme
      picker Escape-from-menu + focus return, count-up respects
      prefers-reduced-motion, CTA-track ARIA role tab→radio (no tabpanels meant
      tabs were misleading).

      Code hygiene: removed jQuery + Stellar + Waypoints + Bootstrap-JS + Easing
      (~250KB / 5 fewer requests), full vanilla rewrite of main.js with
      IntersectionObserver / requestAnimationFrame / matchMedia. Skill % bars
      replaced with PRIMARY/STRONG/WORKING tier chips. ~25 widgets converted
      to color-mix(in srgb, var(--cyan)...) so they glow correctly in every
      palette (hero CTA, HUD, siderail, ctx-menu, cmdk, kbdhelp, live-stats,
      commit-graph, tool-badge, scroll-progress, work-filter, case-filter,
      viewport-hud, stat--linked, cs-btn, cs-share, etc.). SEO: canonical URLs
      on uses + changelog; sitemap refreshed with real git-log lastmod per file.
      Resume sync: projects[] URLs switched from auth-gated portals to public
      case studies. LinkedIn About now leads with cal.com instead of email.
    ]]></description>
  </item>

  <item>
    <title>v4.9 — Portfolio polish: SEO + UX + dual-audience reframe</title>
    <link>https://kon2raya.netlify.app/</link>
    <guid isPermaLink="false">portfolio-v4.9-2026-05-14</guid>
    <pubDate>Thu, 14 May 2026 23:58:00 +0800</pubDate>
    <category>major</category>
    <description><![CDATA[
      Polish pass to make the portfolio scan well for both recruiters and
      engineering managers without losing the tech-savvy feel. SEO: Article +
      BreadcrumbList JSON-LD on every case study, WebSite schema on index,
      twitter:creator / twitter:site attribution, sitemap + feed dates
      normalized. UX: prev/next pager at the foot of every case study (8
      files) for binge-reading; sticky on-page TOC on the three longest
      writeups (wms-v2, ai-engineer, hris) with jump links to tl;dr / problem
      / approach / solution / stack / outcome / lessons. Content: hero <h3>
      reframed to surface "8 shipped case studies + AI-assisted delivery"
      proof; "1 Vibe Coder" stat tile renamed to "AI-Augmented Dev
      (Karpathy-style)" and wrapped as a deep link to the ai-engineer case
      study; green outcome chips on every work-tree row; ★ start here badges
      on ai-engineer + wms-v2. publish-case-study skill convention updated so
      case study #9 inherits all the above without drift.
    ]]></description>
  </item>

  <item>
    <title>v4.4 — Fourth case study published: Enterprise HRIS</title>
    <link>https://kon2raya.netlify.app/case-studies/hris.html</link>
    <guid isPermaLink="false">portfolio-v4.4-2026-05-14</guid>
    <pubDate>Thu, 14 May 2026 22:00:00 +0800</pubDate>
    <category>case-study</category>
    <description><![CDATA[
      Enterprise HRIS (client under NDA) is live as the fourth published case study.
      Modern stack: Laravel 12 + Sanctum + TOTP 2FA (Google2FA + bacon-qr-code) on the
      API; Vue 3 + Vite + Pinia + TypeScript + Vuestic Admin on the UI. ~54 models,
      ~41 controllers, ~57 migrations, ~95 Vue pages across 30 domain folders. Full HR
      lifecycle — employees, OUs, time & attendance, leave, payroll (with DomPDF
      payslips), memos with concurrency-safe numbering via GET_LOCK, performance
      evaluations, OU-scoped RBAC, Storybook + Playwright, dual CI/CD (Jenkins + Buddy).
      Hero stat bumped from "3 case studies" to "4".
    ]]></description>
  </item>

  <item>
    <title>v4.8 — Two more case studies: LLM-Friendly Wiki + WMS v2 Inventory Rewrite</title>
    <link>https://kon2raya.netlify.app/case-studies/</link>
    <guid isPermaLink="false">portfolio-v4.8-2026-05-14</guid>
    <pubDate>Thu, 14 May 2026 23:55:00 +0800</pubDate>
    <category>case-study</category>
    <description><![CDATA[
      Two more case studies, hero stat bumped 6 → 8. (1) LLM-Friendly Wiki — a
      hand-maintained Obsidian Markdown vault with YAML frontmatter (source_paths,
      related, last_verified) inspired by Karpathy's thesis that the best AI-coding
      artifact is a well-structured wiki of your own code. Per-folder _INDEX.md
      pattern, same-turn updates as the rule, Decisions/Runbooks/Examples sub-vaults.
      (2) WMS v2 — active rewrite of a legacy enterprise warehouse + inventory
      system onto Laravel 12 + Vue 3 with a canonical V3DataTable + BaseCrud
      pattern, ModuleSchemaInterface, CI-enforced guardrails (ESLint + PHPStan +
      migration linter), online schema migrations (ALGORITHM=INPLACE LOCK=NONE),
      parity-first rollout. ~103 models, ~76 controllers, ~121 migrations,
      ~130 pages. Karpathy coding guidelines bundled into the agent guide.
    ]]></description>
  </item>

  <item>
    <title>v4.7 — Two new case studies: Transport Mgmt System + Autonomous AI Engineer</title>
    <link>https://kon2raya.netlify.app/case-studies/</link>
    <guid isPermaLink="false">portfolio-v4.7-2026-05-14</guid>
    <pubDate>Thu, 14 May 2026 23:50:00 +0800</pubDate>
    <category>case-study</category>
    <description><![CDATA[
      Added two new case studies, pushing the proof shelf from 4 to 6. (1) Transport
      Management System on Vue 3 + Laravel 11 — ~68 models, ~99 controllers, ~98
      migrations, ~324 Vue pages, live GPS, Spatie Permissions, full booking → dispatch
      → costing → invoice lifecycle. (2) Autonomous AI Engineer — a multi-LLM agent
      pipeline (Claude, Gemini, OpenAI, OpenRouter, Qwen) wired into a production
      ticketing system. `php artisan ai:work {ref}` picks up ASSIGNED tickets,
      auto-detects the target repo from a systems table, runs the work via
      AiHarnessService, persists per-ticket chat memory, and an independent verifier
      (`ai:verify`) runs the real PHPUnit test suite before any merge. Every action
      logged to the ticket comment thread. Mock screenshots + OG images generated.
    ]]></description>
  </item>

  <item>
    <title>v4.6 — Anonymized mock screenshots wired into every case study</title>
    <link>https://kon2raya.netlify.app/case-studies/</link>
    <guid isPermaLink="false">portfolio-v4.6-2026-05-14</guid>
    <pubDate>Thu, 14 May 2026 23:45:00 +0800</pubDate>
    <category>visual</category>
    <description><![CDATA[
      Generated four anonymized mock screenshots (1600×900) — one per case study —
      that mirror the real production UI without leaking client data: Real-Estate
      Developer Portal commission releases dashboard (10 anonymized rows with tier
      chips + status pills + approver columns), Brokerage Commission share-
      distribution view (4-step approver stepper + 5 summary tiles + per-tier
      shares), WMS mobile picking screen on a phone-frame mock (scan input,
      Bluetooth-paired Epson printer indicator, recent scans, Print + Confirm),
      and Enterprise HRIS payroll period (6 summary tiles, payroll record table
      with 2FA badges, multi-OU scoping). Each shot has a clear "MOCK" tag in
      its caption.
    ]]></description>
  </item>

  <item>
    <title>v4.5 — All client names made confidential</title>
    <link>https://kon2raya.netlify.app/case-studies/</link>
    <guid isPermaLink="false">portfolio-v4.5-2026-05-14</guid>
    <pubDate>Thu, 14 May 2026 23:30:00 +0800</pubDate>
    <category>policy</category>
    <description><![CDATA[
      All four case studies now anonymize the client (under NDA framing). Titles are
      generic ("Real-Estate Developer Portal", "Brokerage Commission System", "WMS
      Mobile App", "Enterprise HRIS"). Tagline + meta + body + OG images regenerated.
      GitHub repo links on the user's own personal GitHub are kept as proof of work.
    ]]></description>
  </item>

  <item>
    <title>v4.3 — Real-Estate Developer Portal case study polished from real codebase</title>
    <link>https://kon2raya.netlify.app/case-studies/pamanaland.html</link>
    <guid isPermaLink="false">portfolio-v4.3-2026-05-14</guid>
    <pubDate>Thu, 14 May 2026 20:00:00 +0800</pubDate>
    <category>case-study</category>
    <description><![CDATA[
      Pulled real numbers from the local working dirs of a Laravel 11 + Vue 3 (Velzon)
      developer-portal client (under NDA). Reframed it as a real-estate *developer*
      operations platform — not a brokerage — covering the full reservation → sales →
      equity → amortization → in-house financing → commission → collection lifecycle.
      ~65 models, ~67 controllers, ~99 migrations, ~102 Vue views, AG Grid Enterprise,
      JWT auth, CASL RBAC, OU scoping, 5-tier seller hierarchy.
    ]]></description>
  </item>

  <item>
    <title>v4.2 — WMS Mobile App case study polished from real project files</title>
    <link>https://kon2raya.netlify.app/case-studies/wms.html</link>
    <guid isPermaLink="false">portfolio-v4.2-2026-05-14</guid>
    <pubDate>Thu, 14 May 2026 18:00:00 +0800</pubDate>
    <category>case-study</category>
    <description><![CDATA[
      Pulled real metrics from the local Flutter app, Laravel backend, and Nuxt admin
      of a logistics-enterprise client (under NDA) to enrich the WMS writeup: 13 feature
      modules, three picking generations (base / enhanced / v3), Bluetooth ESC/POS label
      printing on Epson TM-P80II, dual-input scanning (camera + keyboard-wedge),
      Cloudflare Turnstile re-auth, 108 build releases, ~251 Eloquent models, ~103
      controllers, ~315 migrations on the API.
    ]]></description>
  </item>

  <item>
    <title>v4.1 — Third case study published: Brokerage Commission System</title>
    <link>https://kon2raya.netlify.app/case-studies/jbc.html</link>
    <guid isPermaLink="false">portfolio-v4.1-2026-05-14</guid>
    <pubDate>Thu, 14 May 2026 16:00:00 +0800</pubDate>
    <category>case-study</category>
    <description><![CDATA[
      Brokerage Commission System (client under NDA) is now live as the third published
      case study. A full-stack real-estate brokerage operations platform on Vue + Laravel
      — commission engine with multi-tier shares + approver workflow, multi-OU RBAC,
      sales pipeline, expenses, HR-lite. ~22 months of iteration, 52 Eloquent models,
      ~100 migrations, ~640 commits across the api + ui repos. Hero stat bumped from
      "2 case studies" to "3".
    ]]></description>
  </item>

  <item>
    <title>v4.0 — Round 2: polish, proof, performance</title>
    <link>https://kon2raya.netlify.app/changelog.html#v4-0</link>
    <guid isPermaLink="false">portfolio-v4.0-2026-05-14</guid>
    <pubDate>Thu, 14 May 2026 10:00:00 +0800</pubDate>
    <category>major</category>
    <description><![CDATA[
      Round 2 of the employer-attention pass. Wired up the work-filter chips (data-tags driven, persisted in localStorage),
      swapped the "Coffee Cups ∞" hero stat for "Case Studies", added the "last shipped" footer stamp pulled from
      document.lastModified, scaffolded the third case study (jbc-commission-system) with its own OG card.
      Dropped image weight by ~3.4 MB (logo, mylogo orphan deleted, cover photo re-encoded to WebP). Light theme
      received a sweeping contrast audit: 163 → 3 outstanding contrast issues, with hero overlay neutralized,
      HUD widget themed, hero cover hidden in light, and the developer.js code-card now mirrors profile-config
      as a light editor pane.
    ]]></description>
  </item>

  <item>
    <title>v3.9 — Dev-signal files</title>
    <link>https://kon2raya.netlify.app/changelog.html#v3-9</link>
    <guid isPermaLink="false">portfolio-v3.9-2026-05-14</guid>
    <pubDate>Thu, 14 May 2026 12:00:00 +0800</pubDate>
    <category>dev-signal</category>
    <description><![CDATA[
      Added humans.txt, /.well-known/security.txt, /api/availability.json (curl-able hiring status),
      this very feed.xml (RSS for the changelog), and a real git-log footer that pulls the last
      commits from GitHub.
    ]]></description>
  </item>

  <item>
    <title>v3.5 — Round 1 employer-attention pass</title>
    <link>https://kon2raya.netlify.app/changelog.html#v3-5</link>
    <guid isPermaLink="false">portfolio-v3.5-2026-05-14</guid>
    <pubDate>Wed, 14 May 2026 02:00:00 +0800</pubDate>
    <category>major</category>
    <description><![CDATA[
      Unlocked + indexed both case studies, added per-case OG images, dropped DRAFT banners.
      Added "shipped impact" section between work and hire CTA. New 4-step engagement
      flow + Hiring/Client tab toggle in the hire card. Shipped a service worker delivering
      on the PWA manifest. Added /now.html, footer link to /now/uses/changelog. Light theme
      toggle in the nav with FOUC-prevention bootstrap.
    ]]></description>
  </item>

  <item>
    <title>v3.4 — Dev-credibility passes</title>
    <link>https://kon2raya.netlify.app/changelog.html#v3-4</link>
    <guid isPermaLink="false">portfolio-v3.4-2026-05-13</guid>
    <pubDate>Wed, 13 May 2026 00:00:00 +0800</pubDate>
    <category>dev-signal</category>
    <description><![CDATA[
      Added /uses.html (editor, terminal, hardware, daily software). Added resume.json
      in JSON Resume format. Added the /changelog page itself.
    ]]></description>
  </item>

  <item>
    <title>v3.3 — Case-study scaffolds</title>
    <link>https://kon2raya.netlify.app/changelog.html#v3-3</link>
    <guid isPermaLink="false">portfolio-v3.3-2026-05-13</guid>
    <pubDate>Wed, 13 May 2026 00:00:00 +0800</pubDate>
    <category>case-studies</category>
    <description><![CDATA[
      Initial case-studies/wms.html and case-studies/pamanaland.html. Shared case-study.css
      with window-chrome code blocks, metric grid, CTA cards. Draft framing pending polish.
    ]]></description>
  </item>

  <item>
    <title>v3.2 — Hire funnel</title>
    <link>https://kon2raya.netlify.app/changelog.html#v3-2</link>
    <guid isPermaLink="false">portfolio-v3.2-2026-05-13</guid>
    <pubDate>Wed, 13 May 2026 00:00:00 +0800</pubDate>
    <category>hire-funnel</category>
    <description><![CDATA[
      Cal.com booking button in Hire Me card. Designed cover.html for the OG image.
      Interactive dev terminal (press ` to open). UTM-aware welcome pill. LinkedIn
      copy-paste pack with full content blocks.
    ]]></description>
  </item>

  <item>
    <title>v3.1 — Ship-readiness</title>
    <link>https://kon2raya.netlify.app/changelog.html#v3-1</link>
    <guid isPermaLink="false">portfolio-v3.1-2026-05-13</guid>
    <pubDate>Wed, 13 May 2026 00:00:00 +0800</pubDate>
    <category>prod-ready</category>
    <description><![CDATA[
      JSON-LD Person schema, sitemap.xml, robots.txt, PWA manifest. Netlify Forms with
      honeypot. Real-time visitor counter (counterapi.dev). Live GitHub events graph &
      recent-repos panel. Skip-to-content, focus-visible, auto-ARIA on icon-only buttons.
      404 in terminal style. Matrix/particles pause when offscreen.
    ]]></description>
  </item>

  <item>
    <title>v3.0 — Major cyber-themed redesign</title>
    <link>https://kon2raya.netlify.app/changelog.html#v3-0</link>
    <guid isPermaLink="false">portfolio-v3.0-2026-05-13</guid>
    <pubDate>Wed, 13 May 2026 00:00:00 +0800</pubDate>
    <category>major-redesign</category>
    <description><![CDATA[
      Full redesign from generic template into a dev-by-dev cyber-themed portfolio.
      Dark cyber gradient + neon grid. Reworked About, Resume, Services, Skills,
      Tools & Stack, Work, Case Studies, and Hire Me sections end-to-end.
    ]]></description>
  </item>

</channel>
</rss>
