<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Jhastine Macalino — Journal</title>
    <link>https://jmcreativedevpro.com/journal</link>
    <atom:link href="https://jmcreativedevpro.com/feed.xml" rel="self" type="application/rss+xml"/>
    <description>Practical writing on WordPress engineering, technical SEO, full-stack product work, QA, migrations and AI-assisted workflows.</description>
    <language>en-us</language>
    <image>
      <url>https://jmcreativedevpro.com/images/og-cover.jpg</url>
      <title>Jhastine Macalino — Journal</title>
      <link>https://jmcreativedevpro.com/journal</link>
    </image>
    <item>
      <title>The wedge over breadth</title>
      <link>https://jmcreativedevpro.com/post/wedge-over-breadth</link>
      <guid isPermaLink="true">https://jmcreativedevpro.com/post/wedge-over-breadth</guid>
      <dc:creator>Jhastine Macalino</dc:creator>
      <category>Full-Stack</category>
      <pubDate>Tue, 02 Jun 2026 01:00:00 +0800</pubDate>
      <description>Most vertical SaaS tries to swallow an entire industry workflow on day one. Dentra ships the opposite — two narrow operational wedges that actually move revenue. The product brief, data model, and architecture decisions behind a SaaS that knows what it is not.</description>
    </item>
    <item>
      <title>AGENTS.md and the architecture file you have not written yet</title>
      <link>https://jmcreativedevpro.com/post/ai-agent-rules</link>
      <guid isPermaLink="true">https://jmcreativedevpro.com/post/ai-agent-rules</guid>
      <dc:creator>Jhastine Macalino</dc:creator>
      <category>AI &amp; Automation</category>
      <pubDate>Sun, 24 May 2026 01:00:00 +0800</pubDate>
      <description>AI coding assistants do not invent architecture — they amplify whatever rules you have already written down. AGENTS.md, CLAUDE.md, .cursor/rules and llms.txt are the new project documents, and most teams have not written them yet.</description>
    </item>
    <item>
      <title>Live commerce is an ops problem</title>
      <link>https://jmcreativedevpro.com/post/live-commerce-ops</link>
      <guid isPermaLink="true">https://jmcreativedevpro.com/post/live-commerce-ops</guid>
      <dc:creator>Jhastine Macalino</dc:creator>
      <category>Full-Stack</category>
      <pubDate>Sun, 10 May 2026 01:00:00 +0800</pubDate>
      <description>The streaming part of live selling is solved. What is not solved is the operations layer that wraps around it — Live Director run sheets, comment-driven buyer claims, stock-lock reservations, and the handoff to fulfillment.</description>
    </item>
    <item>
      <title>Zero-downtime WordPress migrations</title>
      <link>https://jmcreativedevpro.com/post/zero-downtime-wp-migrations</link>
      <guid isPermaLink="true">https://jmcreativedevpro.com/post/zero-downtime-wp-migrations</guid>
      <dc:creator>Jhastine Macalino</dc:creator>
      <category>WordPress</category>
      <pubDate>Tue, 02 Jun 2026 01:00:00 +0800</pubDate>
      <description>After 10+ live US-client migrations with no reported downtime, here is the exact pre-flight, launch and post-launch checklist I run — DNS, SSL, FTP, redirects, tracking, forms, and the small things that break sites at 3am.</description>
    </item>
    <item>
      <title>My monthly SEO audit workflow</title>
      <link>https://jmcreativedevpro.com/post/monthly-seo-audit-workflow</link>
      <guid isPermaLink="true">https://jmcreativedevpro.com/post/monthly-seo-audit-workflow</guid>
      <dc:creator>Jhastine Macalino</dc:creator>
      <category>Technical SEO</category>
      <pubDate>Sat, 04 Apr 2026 01:00:00 +0800</pubDate>
      <description>Six tools, one executive-ready report, a prioritised action list the dev team can ship that sprint. The exact workflow I use every month for Signature Cleaning, Bird Dog, and the rest.</description>
    </item>
    <item>
      <title>Local SEO pages at scale</title>
      <link>https://jmcreativedevpro.com/post/local-seo-pages-at-scale</link>
      <guid isPermaLink="true">https://jmcreativedevpro.com/post/local-seo-pages-at-scale</guid>
      <dc:creator>Jhastine Macalino</dc:creator>
      <category>Technical SEO</category>
      <pubDate>Sun, 26 Apr 2026 01:00:00 +0800</pubDate>
      <description>Building 35+ city-targeted service pages for A-TEX Roofing without falling into the &quot;swap the city name&quot; trap — the system, the QA, and the duplicate-content guardrails.</description>
    </item>
    <item>
      <title>Designing the Bonjegs monorepo</title>
      <link>https://jmcreativedevpro.com/post/bonjegs-monorepo</link>
      <guid isPermaLink="true">https://jmcreativedevpro.com/post/bonjegs-monorepo</guid>
      <dc:creator>Jhastine Macalino</dc:creator>
      <category>Full-Stack</category>
      <pubDate>Sat, 28 Feb 2026 01:00:00 +0800</pubDate>
      <description>Three React apps, one Node API, shared types — how the Bonjegs monorepo is structured and why npm workspaces was enough.</description>
    </item>
    <item>
      <title>Real-time rider tracking with Socket.IO + Redis</title>
      <link>https://jmcreativedevpro.com/post/realtime-rider-tracking</link>
      <guid isPermaLink="true">https://jmcreativedevpro.com/post/realtime-rider-tracking</guid>
      <dc:creator>Jhastine Macalino</dc:creator>
      <category>Full-Stack</category>
      <pubDate>Mon, 09 Feb 2026 01:00:00 +0800</pubDate>
      <description>The customer wants to watch the rider move. The rider wants to broadcast their location without killing their battery. Here is how the Bonjegs delivery tracking works.</description>
    </item>
    <item>
      <title>GCash via PayMongo webhooks</title>
      <link>https://jmcreativedevpro.com/post/paymongo-gcash-webhooks</link>
      <guid isPermaLink="true">https://jmcreativedevpro.com/post/paymongo-gcash-webhooks</guid>
      <dc:creator>Jhastine Macalino</dc:creator>
      <category>Full-Stack</category>
      <pubDate>Sun, 18 Jan 2026 01:00:00 +0800</pubDate>
      <description>Idempotency is the difference between a working payments integration and a support ticket about double-charges. Here is how Bonjegs handles PayMongo webhooks safely.</description>
    </item>
    <item>
      <title>Elementor without generic templates</title>
      <link>https://jmcreativedevpro.com/post/elementor-without-templates</link>
      <guid isPermaLink="true">https://jmcreativedevpro.com/post/elementor-without-templates</guid>
      <dc:creator>Jhastine Macalino</dc:creator>
      <category>WordPress</category>
      <pubDate>Mon, 18 May 2026 01:00:00 +0800</pubDate>
      <description>Every Elementor site I build starts from a blank canvas. Here is why generic page templates cost more time than they save, and the system I use instead.</description>
    </item>
    <item>
      <title>Core Web Vitals on WordPress</title>
      <link>https://jmcreativedevpro.com/post/core-web-vitals-wordpress</link>
      <guid isPermaLink="true">https://jmcreativedevpro.com/post/core-web-vitals-wordpress</guid>
      <dc:creator>Jhastine Macalino</dc:creator>
      <category>Performance</category>
      <pubDate>Sun, 22 Mar 2026 01:00:00 +0800</pubDate>
      <description>A practical optimisation pass that takes a typical Elementor site from yellow to green without ripping anything out.</description>
    </item>
    <item>
      <title>A 30-minute image pass that almost always lifts LCP</title>
      <link>https://jmcreativedevpro.com/post/webp-images-pass</link>
      <guid isPermaLink="true">https://jmcreativedevpro.com/post/webp-images-pass</guid>
      <dc:creator>Jhastine Macalino</dc:creator>
      <category>Performance</category>
      <pubDate>Sun, 14 Dec 2025 01:00:00 +0800</pubDate>
      <description>When a client site is failing Core Web Vitals on mobile, the first thing I touch — almost without exception — is images. Here is the repeatable pass.</description>
    </item>
    <item>
      <title>Automating monthly audits with n8n + Python</title>
      <link>https://jmcreativedevpro.com/post/ai-audit-automation</link>
      <guid isPermaLink="true">https://jmcreativedevpro.com/post/ai-audit-automation</guid>
      <dc:creator>Jhastine Macalino</dc:creator>
      <category>AI &amp; Automation</category>
      <pubDate>Sat, 22 Nov 2025 01:00:00 +0800</pubDate>
      <description>A workflow concept that turns folders of GA4 / GSC / Screaming Frog screenshots into structured DOCX reports — with a human-review checkpoint before anything ships.</description>
    </item>
    <item>
      <title>How I use Cursor AI without shipping its mistakes</title>
      <link>https://jmcreativedevpro.com/post/cursor-ai-workflow</link>
      <guid isPermaLink="true">https://jmcreativedevpro.com/post/cursor-ai-workflow</guid>
      <dc:creator>Jhastine Macalino</dc:creator>
      <category>AI &amp; Automation</category>
      <pubDate>Thu, 30 Oct 2025 01:00:00 +0800</pubDate>
      <description>Cursor accelerates the parts of development that should be fast and tedious. Architecture and review stay mine. Here is the discipline.</description>
    </item>
    <item>
      <title>QA is part of the deliverable</title>
      <link>https://jmcreativedevpro.com/post/qa-as-deliverable</link>
      <guid isPermaLink="true">https://jmcreativedevpro.com/post/qa-as-deliverable</guid>
      <dc:creator>Jhastine Macalino</dc:creator>
      <category>Craft</category>
      <pubDate>Sun, 28 Sep 2025 01:00:00 +0800</pubDate>
      <description>The pre-launch checklist that catches the bugs nobody else looks for. Forms, redirects, tracking, mobile keyboards, password managers — the unglamorous list that keeps clients happy.</description>
    </item>
  </channel>
</rss>
