Tuyen Pham's Blog
-
22nd May 2026Bun's Rust Port and the New Reality of AI Engineering
A cautiously optimistic look at Bun's AI-assisted Rust port, and what it means for Zig, Rust, and the new reality of software work.
-
12th May 2026Why My Blog Suddenly Had 70,000 Daily "Visitors"
Cloudflare showed a sudden 10x traffic spike on my static programming blog. The traffic shape pointed to bots, scraping, and cache bypass.
-
2nd May 2026Deciding Browser Support for a Modern Website
Should your website support only recent browsers, or include older versions too? A practical way to weigh cost, reach, and user experience.
-
29th April 2026A Quality Checklist I Use for This Personal Website
A note-to-self for maintaining tuyen.blog, covering Precise Alloy, PageSpeed, WCAG, responsive support, offline access, security, themes, and print.
-
18th April 2026Tauri App: One Frontend Codebase for Native and Web
Use Tauri IPC mocking with plugin-store as the example, then adapt the same mechanism to other Tauri plugins and commands.
-
17th April 2026Preload Google Fonts Before the CSS Waterfall Starts
Use a small build script to extract Google Fonts URLs, keep @font-face rules in base CSS, and preload the exact WOFF2 files that matter.
-
13th April 2026Optimizely CMS: What Actually Happens When You Click Save a Rich Text Block?
A practical look at how TinyMCE is wired into Optimizely CMS, how content is filtered, and why the save pipeline matters for security and support.
-
9th April 2026Raw HTML Block: Quick Wins, Hidden Costs
Why Raw HTML Block is useful in emergencies, risky as a habit, and usually worth converting into a proper UI component.
-
6th April 2026Optimizely CMS: Site Settings
Optimizely CMS plugin for managing strongly typed site settings per site and language directly in the editor UI.
-
24th March 2026Optimizely CMS: Create admin account
Create or reset a local Optimizely CMS admin account with an ASP.NET Identity API controller that assigns every available role.