RSSAmplifier

Blog

Rachel Cantor

Frontend engineer with 14+ years of experience. I specialize in the architecture between design and production.

rachel.fyiRSS feed ↗29 posts

Latest posts

Your Agent Is Reading a Different Design System

An agent reads your design system through the Storybook components manifest, and the manifest is a lossy copy. Oversight is an addon that lints it and tells you what never made it in.

Storybook MCP Reads Your Manifest, Not Your Docs Tab

I added Storybook's MCP so my agent would stop rebuilding components I'd already shipped. It rebuilt them anyway.

What I Took from Addy Osmani's Agent Skills

Four skills from the agent-skills repo that changed how I plan, build, and document work with AI coding agents.

useRef vs useState in Streaming UIs

How React's primitives behave differently when chunks arrive every 50 milliseconds, and when to reach for useRef over useState in streaming UIs.

Why Banning useEffect Is Really About Agents

Factory's useEffect ban made headlines as a DX play. Their CEO said the thing nobody was talking about — they did it for agent effectiveness.

Gravity Centers: Where to Start a TypeScript Migration

Here's what Patreon's seven-year, 11,000-file migration actually teaches us about doing it right.

Every Home Is a UI

Retrofitting my home for my mom's hip replacement taught me that accessibility follows the same rules everywhere. Physical spaces are just another interface.

Shared Brain: Achieving Zero-Wait States with Optimistic UI

Run the same logic on frontend and backend. Eliminate drift, get instant feedback and zero-wait states.

How I Use Cursor to Plan and Ship

How I use Cursor's planning tool and Composer to build production apps with testable deliverables and proper sequencing.

Say Less with Cursor Rules

How I use .cursor/rules and glob patterns to enforce standards without cluttering context.

Your CI Is Running Tests on Old Code: How to Auto-Cancel GitHub Actions

Pushing multiple commits quickly? You're probably paying for 3-4 parallel test runs testing outdated code.

Per-User JWT Secrets: Enterprise-Grade Token Revocation for External Clients in Wasp

Secure your OpenSaaS with per-user JWT secrets, encrypted storage, and surgical token revocation for external clients.

Building RecipeCast's Chrome Extension

There are plenty of Chrome extensions that extract recipes from websites. So why build another one?

Production-Ready External Auth: CORS, Token Refresh & API Implementation with Wasp

From prototype to production: strict CORS policies, efficient token refresh, and battle-tested patterns that keep your external auth system secure.

Implementing External Client Authentication with Wasp

If you're building an OpenSaaS app and want to extend it beyond the browser tab, this is the blueprint.

The Missing Guide to Sentry Source Maps in Vite Web Workers

Fix Sentry's "Could not determine debug ID" warnings for Web Worker bundles. Get readable stack traces instead of minified gibberish in your error reports.

Building an AI Code Reviewer in 2 Days

Tired of playing code review whack-a-mole on solo projects? I built an AI tool that handles the systematic stuff (security, performance, TypeScript issues) so you can focus elsewhere.

Setting Up Sentry with Vite and Source Maps

A step-by-step guide to adding Sentry error tracking with source map support to your Vite app, so you get meaningful stack traces instead of minified code.

Google Killed Their Cookbook App, So I’m Building My Own

After Google discontinued their Nest Hub cookbook feature, I needed a way to display recipes without a printer or messing up my phone.

TidyText.cc, copy paste to Google Docs, now with support for fractions

Adding fraction support to TidyText.cc: from Markdown to MathJax to the Canvas API, and why LaTeX fractions need special handling to paste into Google Docs.

I built a copy paste tool for ChatGPT and Google Docs called TidyText.cc

After working with ChatGPT and other AI tools, I realized that copying and pasting responses into Google Docs often messed up the formatting.

Accessibility Alternatives: Convenience or Compromise?

Come for the education, stay for the low-key dragging of luxury retailer Maison Alaïa's alternate version.

Why Confirming Choices Matters: Lessons from an Instacart Experience

Accessibility isn't just about aiding users with disabilities; it helps everyone feel safe browsing the web without fear of doing something irreversible.

The Importance of Independent Volume Control

Accessibility isn't just about aiding users with disabilities; it helps everyone feel safe browsing the web without fear of doing something irreversible.

Handling a change to Redux-Form data from container to component via props

An alternative to React context: passing Redux Form data changes from container to component via props, using getFormValues and connect.

Tinkering with CartoDB to make data visualizations

Cleaning 150,000 records of messy OSHA data with OpenRefine and visualizing chemical exposure in New York State on an interactive CartoDB map.

Building a Nutrition Facts Web Component with Polymer

A walkthrough of building a reusable nutrition facts web component with Polymer at GDG DevFest, using custom elements and a service element to import JSON data.

Connecting Zendesk and Google Spreadsheets using Google Apps Script

Manage date-related deadlines with an integration between a Google Sheet and Zendesk’s ticketing system.

ControlGroup.com: Built Using Jekyll

How we rebuilt Control Group's site with Jekyll: static generation, no CMS, and the performance gains that came with it.