Portal Update: July 25, 2026
v0.0.3: Hybrid SSR Upgrade, Resilient Pagination, and Automated Search Indexing
This release introduces a major architectural upgrade from full Static Site Generation (SSG) to Hybrid Server-Side Rendering (SSR). This change optimizes build times while preserving full search and detail page coverage for the historical archive of 1,700+ articles.
Architecture & Framework
- Hybrid SSR Migration: Configured Astro with
@astrojs/node(standalone mode) to statically pre-render the homepage and the top 500 articles while dynamically serving older archive articles at request-time. - Port and Host Binding: Resolved Render deployment port-binding conflicts by explicitly binding the Node server to host
0.0.0.0via env overrides. - Dependency Resolver Bypass: Addressed strict peer dependency conflicts with the Pagefind integration by upgrading the build configuration to install packages with
--legacy-peer-deps.
Pagination & Layout Alignment
- Desks Synchronization: Restructured the
/localand/local/[region]feeds to match the homepage standard (12 grid cards, 8 list rows). Removed sidebars from regional state portals for a cleaner 3-column-wide catalog. - Airtight Deduplication: Implemented client-side
existingHrefsSet checking onastro:page-loadacross all landing hub templates (homepage, local hub, regional desks, category desks, and topic feeds). This prevents duplicate card injection and keeps lists clean. - View Transitions Restoration: Added DOM-sync state calculations that automatically fast-forward index pagination when users navigate back/forward in browser history cache.
Automated Search Indexing
- Pagefind Search Stubs: Designed custom build-time integrations (
searchStubGeneratorandsearchStubCleaner) inastro.config.mjs. - Complete Index Coverage: The generator temporarily extracts frontmatter and clean text from 1,445 dynamic posts to build HTML index stubs. Pagefind indexes these files, expanding search coverage to 2,239 total pages. Stubs are immediately deleted post-indexing to keep production builds lean.
- Canonical Routing: Embeds canonical tags in search stubs to ensure click-throughs redirect users directly to dynamic request-time SSR routes.
Server Stability & Health Monitoring
- Lightweight /health Endpoint: Created a dynamic endpoint at
/healthreturning minimal JSON payloads to allow keep-alive pingers (like cron-job.org and UptimeRobot) to query the service without hitting response size limits. - 24/7 Inactivity Bypass: Keeps Render’s 15-minute container inactivity timer active to eliminate 30-50 second cold-start response delays for public visitors.
Monetization & Ads
- Site-Wide Adsterra Integration: Integrated Adsterra display banner ads (300x250 iframe units) and native advertising rows across the entire website, including the homepage, category desks, and article pages.
- Regional Desk Alignment: Subsequently expanded these ad units to the
/localand/local/[region]feeds during layout optimizations to ensure complete monetization coverage across regional and state desks.