Blog
Engineering notes
Decisions, trade-offs, and the bugs that don't make it into a case study — written from projects we've actually shipped.
Four themes, one widget: keeping CSS from fighting itself
Notes from building a streaming widget system with four structurally different visual presets — and the specificity bug that almost broke all of them at once.
Don't trust the client: verifying LINE LIFF logins server-side
Building auth for a LINE Mini App means the login token arrives from inside a platform you don't control. Here's the verification step that's easy to skip and shouldn't be.
Three roles, one codebase: what actually breaks in role-based access control
Building a visa-processing platform for customers, staff, and admins in a single app surfaced the access-control bugs that don't show up until real users with real permissions collide.
Designing a store that can disappear on command
A feature flag that truly removes a storefront — not just hides it — and a cache that fails without taking the page down with it. Two small reliability patterns from a real ecommerce build.