<YC />

Notes & Essays

Practical notes on React, Next.js, Vue, product UI, and shipping reliable software across health-tech and logistics.

Featured

Next.js & Security· SEP 2026· 5 min read
AI ships code faster — and regressions too. A practical Testing Trophy for a Next.js App Router blog: Vitest for lib logic, Playwright for list → detail → 404.

More writing

21 posts
Before Ask Yeremia on /lab went public, I worried about stolen API keys, runaway bills, and visitors sweet-talking the model past its rules — here is the four-part checklist I actually ran.
Read article
Retrieve top-k facts, refuse below 0.6 without calling the LLM, otherwise answer from a grounded prompt with citations — plus model fallback when backoff on one flash model is not enough.
Read article
Embeddings turn text into 3072-number vectors of meaning. Cosine similarity scored two coffee sentences at 0.801 and an unrelated sentence at 0.526 — far from zero.
Read article
ChatGPT is an app. The API is for programs: a streaming TypeScript call with @google/genai, a backoff retry for 503 and 429, and an API key that stays out of git.
Read article
Seven facts embedded once, ranked by cosine similarity. Mazecare ranked first on a healthcare résumé question without the word health — FHIR and clinical notes were enough. KiriminAja at 0.627 is the warning. Rendang topped out at 0.550.
Read article
An LLM is a next-token predictor. Tokens set cost and limits, sampling and temperature change how varied the wording is, and a sourced answer is retrieval before generation.
Read article
Working implementations of debounce, abortable fetch, backoff polling, and windowed lists — plus the JavaScript event loop and React engine that decide whether those patterns actually hold.
Read article
5 min read
Forget the engine. Picture a search box and a 2,000-row list. Fiber is why the letters can appear now while the slow list is allowed to catch up.
Read article
A home-only overlay, sessionStorage (not localStorage), useSyncExternalStore, and Motion's AnimatePresence — with the hero painted underneath so LCP is not gated on the intro.
Read article
A 91 mobile score was LCP, not a missing sitemap. How this Next.js portfolio split Motion, labs, and the mobile sheet — and the traps that look like dead code but aren’t.
Read article
XSS, cookies, CSRF, CORS, CSP, and lockfiles — what React and Vue already escape, where v-html and dangerouslySetInnerHTML still bite, and how that maps onto App Router and Nuxt.
Read article
7 min read
Call stack, microtasks, closures, this, and prototypes — then the TypeScript you use every day: narrowing and discriminated unions. Why it behaves that way, not just the syntax.
Read article
6 min read
A custom font is a family name plus real files for each weight. The browser only uses bold, medium, or italic if you registered those faces — usually as WOFF2 via @font-face.
Read article
5 min read
Share state across related UI pieces without prop wiring — and when a single component or shadcn is still the better choice.
Read article
2 min read
Both run after render, but timing decides whether the user sees a flicker. Start with useEffect; reach for useLayoutEffect only when you must measure or sync layout before paint.
Read article
3 min read
Reconciliation is how React compares the next UI tree with the previous one so it can update the real DOM as little as possible.
Read article
3 min read
Re-renders are normal. Unnecessary ones usually come from unstable props, broad state, or overused context — fix the cause before sprinkling memo everywhere.
Read article
3 min read
Controlled inputs keep form data in React state. Uncontrolled inputs keep it in the DOM. Prefer controlled for app forms; use uncontrolled for simple cases and file inputs.
Read article
3 min read
memo caches a component, useMemo caches a value, useCallback caches a function. Use them together when prop identity matters — not on every line of code.
Read article
Learning in public: Hermes Agent on Biznet GIO Cloud, DeepSeek API, Discord gateway live (checkpoint + /sethome) — stack, install path, and what part 2 will harden.
Read article
Stay in the loop

Follow new posts

No marketing newsletter. Grab the RSS feed for occasional notes on frontend craft, APIs, and shipping product UI — or email me directly.

No trackers · occasional updates only/feed.xml
Open to opportunities

Want to talk about a role or a product problem?

Open for Software Engineer roles (frontend-heavy) — full-time or contract. Reach out by email or LinkedIn (WhatsApp works too).