Skip to main content

Posts

Showing posts from July, 2026

Mastering Google Apps Script: A Professional TypeScript Workflow

Building a robust backend on Google Apps Script requires moving beyond the built-in browser editor. For complex projects like the infrastructure powering Antinna, we need a modern development environment that enforces Clean Architecture and DRY principles. In this comprehensive guide, we will set up a professional workflow using TypeScript for type safety, esbuild for lightning-fast bundling, and clasp for automated deployment. 1. The Directory Structure A clean architecture begins with a clean file system. We strictly separate our source code ( src ) from the compiled output ( dist ). Note that the appsscript.json manifest must live in the dist folder. Project Directory Tree Text Copy antinna-backend/ ├── dist/ # Compiled output (pushed to Apps Script) │ ├── appsscript.json # Mandatory Google manifest file │ └── ...js files ├...

The Ultimate Guide: Hosting a Firebase Service Worker on Blogger via Cloudflare (~ Zero-CPU)

Adding progressive web app (PWA) features like background push notifications to a Google Blogger site has historically been an uphill battle. The core issue? Browsers demand that your background communication engine ( firebase-messaging-sw.js ) must live at the absolute root directory of your custom domain (e.g., yourdomain.com/firebase-messaging-sw.js ) to securely manage the site's network scope. Because Blogger is a completely managed platform, it lacks a traditional file directory system. You cannot simply upload a raw JavaScript file to your root path. If you try hosting it on an external CDN or storage bucket, the browser will instantly block it due to strict Service Worker cross-origin security protocols. The Architecture Strategy We bypass this platform limitation using Cloudflare Workers as an edge routing layer. By proxying your domain traffic through Cloudflare, we can intercept the exact path your service worker requires and dynamically inject ...

Level Up Your SEO: Type-Safe JSON-LD with @antinna/schema-ld-types

Building structured data for search engines just got a lot safer. @antinna/schema-ld-types is a comprehensive, type-safe library for Schema.org JSON-LD objects. Whether you are injecting dynamic SEO metadata or serializing search data, this package ensures both runtime and compile-time accuracy for your structured data pipelines. ✨ Core Features Full Type-Safety: Autogenerated TypeScript definitions compiled directly from the official Schema.org vocabulary. Validation & Typeguards: Built-in helper utilities to validate and assert schema structures safely at runtime. Smart Hydration: Automatically insert missing @type properties onto deeply nested objects based on Schema.org rules. Serialization / Deserialization: Seamless translation to and from JSON-LD strings, with automatically resolved @context wrappers. 📦 Installation Add the package to your project using npm: npm install @antinna/schem...

Build Blogger XML Themes with Dart

Introducing blogger_theme : Build Blogger XML Themes with Dart If you have ever tried building or customizing a Blogger (Blogspot) theme from scratch, you know the struggle. Managing massive, unstructured XML files and mixing standard HTML with Blogger's proprietary tags quickly devolves into a frustrating maintenance nightmare. Enter blogger_theme —a robust Dart package designed to bring structure, strict type safety, and a modern component-based architecture to Blogger theme development. Instead of wrestling with raw XML syntax and chasing down missing closing tags, you can now write your entire layout in clean, declarative Dart code and compile it directly into a fully compliant Blogger XML theme. Why Choose blogger_theme ? Component-Based Architecture: Break your complex layouts down into modular, reusable components, bringing the clean developer experience (DX) of modern frameworks like Flutter or React straight to Blogger. Type-Safe Blogger Tags: Catch missin...