Hi, I'm Jahid π AI software engineer with 7+ years building web apps, SaaS and headless CMS sites.
I work mostly with LLM APIs, Python, Next.js and Craft CMS. I'll share what I learn here, daily.
Say hi if you build in the same space.
#buildinpublic#AI#CraftCMS
Opinion: the hard part of an AI feature isn't the prompt. It's deciding what the product does when the model is wrong.
Before writing the prompt, write the failure path: what the user sees, how they fix it, and what you log.
#AI#buildinpublic#LLM
@platypii A gateway holds every provider key, so one bad release has a huge blast radius. Verified core logic helps, but I'd still pin deps with lockfile hashes, scope keys per app, and allow egress only to provider domains. Which properties did you prove: routing, key isolation?
Opinion: on a headless CMS build, editors judge the whole project by the preview button, not your Lighthouse score.
If draft preview is slow or broken, the build failed for them, however fast production is.
Build preview first, not last.
#CraftCMS#NextJS#headless
@reeceroskam Good reason to validate tool args again after the call, against your full original schema (Zod or Pydantic). Then a dropped constraint becomes a caught error you can retry, not quietly bad data. Which ones got lost most: pattern, min/max, or nested stuff?
LLM fallback tip: only switch providers on errors that could succeed elsewhere: timeouts, 429, 5xx (and Anthropic's 529 "overloaded").
A 400 means your request is wrong. Falling back just fails 3 times, slower, and hides the real bug.
#AI#LLM#buildinpublic
@jdpruettt Agreed, and it's why price per token is the wrong metric. Every extra round trip re-sends the growing context, so a model that serializes 20 tool calls can cost more than one that batches them in 5. Track cost per completed task, retries included.
π Boost performance in Freeform for CraftCMS by caching forms! Reduce load times and improve efficiency while keeping your forms dynamic.
Learn how to implement form caching:
https://t.co/3PQwlTQrXm