Field notes
Short write-ups of problems I hit while building, and the fix. Each one cost an afternoon.
-
iOS Safari won't animate transforms inside an SVG
Problem A transform animation on an element inside an SVG never moves on iOS Safari, while every other browser plays it.
Fix Animate a wrapper outside the SVG, or animate an SVG attribute instead of a CSS transform.
Ansarr's waitlist: the padlock never swung shut
SMIL's animateTransform works too
-
Tailwind v4 silently drops utilities it has no token for
Problem A class with no matching token compiles to nothing. There is no warning, and the page just looks wrong.
Fix Search the built CSS for the class name. If it is missing, the token is missing.
Meerakl: 21 places, unnoticed for months
check the build, not the source
-
A Capacitor Android app needs two permissions for the microphone
Problem Access is refused even after the user allows it, because the web permission and the Android permission are separate.
Fix Declare RECORD_AUDIO in the manifest and request it from the native side before the web side asks.
Ansarr: voice answers
and MODIFY_AUDIO_SETTINGS, or it's still no
-
Recorded WebM audio that won't play back
Problem A WebM blob recorded in the browser plays in some browsers and not others, and seeking fails everywhere.
Fix Decode it with the Web Audio API and play the buffer, rather than handing the blob to an audio element.
Ansarr's voice check
no duration in the file: that's why
-
Supabase queries do nothing until you await them
Problem A fire-and-forget insert never fires, because the query builder is lazy and only runs when awaited.
Fix Always await the query, or call then on it. Lint for unawaited builders.
Ansarr: the unread badge never cleared
never void it
Essays
Longer pieces on design, building and running a company.
- Credibility first: the system behind AnsarrHow the design system behind Ansarr works, what came from my earlier systems, and what was new.
- Designing both sides of a marketplaceCustomer mode and operator mode across Zart, Everything African and Ansarr.
- Designing as the ownerWhy I retired Meerakl's messaging, and why I built Ansarr as my live website inside a native shell.