RSSAmplifier

Blog

Jose Fresco Blog

Insights and reflections on building web applications, browser extensions, and automation tools

josefresco.comRSS feed ↗15 posts

Latest posts

COLEwebdev.org: Adding AI-Powered SEO and Speed Audits to a No-Build React App

How COLEwebdev.org's July–August 2026 update adds AI SEO audits that ingest live Google Analytics and Search Console data before generating recommendations, and a platform-agnostic AI speed audit covering WordPress, e-commerce, and custom-built sites. Also covers five new service pages targeting content gap keywords, a bulk SEO pass across 70 pages correcting titles, descriptions, and schema, and…

Divi SpeedWorks: A WordPress Plugin That Fixes Divi 4's Hidden Performance Tax

How Divi SpeedWorks removes four unused Gutenberg stylesheets, two redundant WordPress actions, and a builder-only script from Divi 4 frontend pages — and fixes Cumulative Layout Shift caused by Divi's Theme Builder injecting inline styles into the page body instead of the head. The CLS fix uses PHP output buffering to extract and reinjest those style blocks before , eliminating the reflow that…

Pi Backups: Retention Policies and Automated Pruning

How the pi-backups update adds prune.sh — a script that enforces daily, weekly, and monthly retention tiers on remote backup archives using a grandfather-father-son rotation scheme. Classifies each archive by filename timestamp, deletes expired ones via SSH, reports freed space via Telegram using the existing tg_notify() function, and appends a structured record to /var/log/pi-backups/prune.log.…

Pi Backups: Scripted Restore Drills and Disaster Recovery Testing

How the pi-backups July 2026 update adds restore-drill.sh — a script that downloads the most recent encrypted archive from the backup destination, decrypts it with the stored GPG passphrase, extracts it to a temporary directory, and runs four verification checks: file count vs. baseline, total size vs. minimum, presence of sentinel files, and a corrupt-entry scan. Reports pass or fail via Telegram…

COLEwebdev.org: GitHub Pages Deployment and Building a Project Cost Estimator in React Without npm

How COLEwebdev.org deploys a no-build React 18 app to GitHub Pages with a single git push and zero CI configuration. Covers the deployment model that eliminates GitHub Actions entirely, then dives into three client-facing components: an interactive project cost estimator built with useState and a synchronous pricing lookup table, a tabbed AI showcase using useReducer to keep tab-switching and…

Family Dashboard CalDAV Deep Dive: Shared Calendars, PROPFIND Discovery, and the Three-Request Chain

How Family Dashboard uses a three-step PROPFIND chain to discover shared and invited Google Calendar collections — the CalDAV protocol dance that most implementations skip, and why skipping it means missing half the family's events. Covers the current-user-principal lookup, calendar-home-set discovery, Depth: 1 collection enumeration with VEVENT filtering, UID-based deduplication, server-side…

Pi Backups: Adding Telegram Alerts and Weekly Backup Health Reports

How the pi-backups June 2026 update adds Telegram notifications for every backup run — success confirmations with job name, compressed size, and elapsed time; failure alerts with the exact shell exit code; and a weekly digest that summarizes all jobs across the past seven days. Covers the tg_notify() function, the run_step() exit-code trapping wrapper, per-run log records, digest.sh, logrotate…

Family Dashboard v3.33: Wind Direction, Weather Narratives, and Building for the Wall

How Family Dashboard v3.33 adds a live wind direction compass — a large SVG arrow with cardinal label and wind speed — to the wall display. Also covers the weather narrative engine that turns OpenWeatherMap data into readable prose, multi-account CalDAV integration with server-side credential protection, the 30-day birthday and holiday lookahead, time-based view switching, and what it means to…

COLEwebdev.org: A React App That Skips the Build Step Entirely

How COLEwebdev.org uses React 18 via CDN and Babel Standalone to run a full single-page app in the browser with no npm, no webpack, and no build pipeline. Covers in-browser JSX transpilation, the five-file sequential loading architecture, the Tweaks design-time customization system, CSS variable density modes, Schema.org LocalBusiness markup, the one-command development workflow, and a clear-eyed…

SafeShare Internals: Client-Side Reddit Fetching, Redis Snapshots, and a Next.js Reader View

How SafeShare bypasses Reddit's server-side API blocks by fetching post data in the browser, persisting snapshots to Vercel KV Redis with a 90-day TTL, and serving a clean reader view — no Reddit credentials, no login walls, no app install prompts. Covers the inverted client-fetch architecture, the Next.js App Router structure, the Vercel KV storage model, TypeScript types across the stack,…

Family Dashboard v3.32: Service Workers, Offline Caching, and Surviving Pi Reboots

How Family Dashboard v3.32 adds a service worker cache layer so the wall display keeps showing stale-but-useful data through Pi reboots, network blips, and server restarts. Covers the app shell pre-cache, stale-while-revalidate strategy for weather and calendar API routes, cache versioning and activation, a staleness indicator for family members, and a systemd unit file that replaces pm2 with…

People Also Ask Miner: Scraping Google's PAA Box for Content Research

A Node.js CLI that recursively crawls Google's "People Also Ask" box — mining dozens of real user questions from a single seed keyword and exporting them as JSON and CSV. No API key, no subscription, no per-query cost. Covers the headless browser scraping strategy, deduplication, PAA expansion mechanics, output formats, and practical use cases for FAQ sections, structured data markup, and…

Inside JF Notify: How a WordPress Plugin Hooks into Gravity Forms and Fires Telegram Alerts

A technical deep-dive into the JF Notify plugin — PHP action hooks, Gravity Forms entry data, Telegram Bot API message formatting, per-form enable/disable toggles, MarkdownV2 escaping, multipart field handling, and the credential filter pattern that keeps bot tokens out of the WordPress database for teams with stricter security requirements.

Deploying Watch List on Vercel: TMDB Setup, Environment Variables, and PWA Installation

A step-by-step guide to deploying the Watch List PWA on Vercel — covering TMDB API credentials, the non-obvious three-step session ID flow, build-time credential injection via build.js, configuring MY_SERVICES and EXCLUDED_PROVIDERS streaming filters, and installing the app as a native PWA on iOS, Android, and desktop.

Encrypted Offsite Backups: Adding GPG and Restore Verification to Pi Backups

How the pi-backups April 2026 update adds AES-256 GPG encryption of backup archives and an automated restore verification script — protecting Pi application data, configs, and credentials even from your own hosting provider. Covers symmetric vs asymmetric GPG, the updated backup script, the new verify.sh script, weekly cron scheduling, raspberry-pi-agent integration, and a migration guide from the…