Pinned
Yann Leflour
Yann Leflour
@yleflour.me
Engineer and maker at 💜 Exploring software craftsmanship with AI
81 followers225 following172 posts
While we keep trashing on slop code, let's remember that this is the experience plenty users still have to deal with Sure LLMs can't do everything, but today's models are likely to spot these issues & display proper errors without extra instructions
I have found the Worst Website in the World. It is the official Indian Railways ticket booking site. After the 96 step sign up process, it randomly throws you out; it requires repeated entry of information it already has, and occasionally throws useless error messages. Wanted 2 seats, now have 4.
That was my main pain point of 2024. I kept developping custom tools to fill in the gap and try to consolidate into a product Every new model/harness update filled part of the gap and made my tools obsolete I quit trying to improve the "code writing" part around that time
a weird inversion with LLMs is the models improve faster than the tinkerers when i see people with custom workflows and setups they're all addressing problems that don't exist anymore the person naively using vanilla codex is more likely to be experiencing state of the art
Superpowers is an amazing piece of engineering It may seem like a simple brainstorm / plan / execute worflow, but the execution is top notch If you care about software craftsmanship, then it's a must have in your toolset The output's quality for each step is unparalled github.com/obra/superp...
3. I've invested in learning how to use this tool in my field of expertise. Holy cow, it's transformational but will be a plague for human intent, knowledge, and creativity.
There are basically only two positions in the debate about AI. 1. I’ve barely invested any time in learning how to use it effectively. AI sucks. 2. I’ve invested in learning how to use this tool. Holy cow, it’s transformational. Position #1 has lower barriers to entry.
If you are tired as me of working with native path and fs libraries in NodeJS, you might like my www.npmjs.com/package/@sy... NPM package. A library to finally turn verbose JS filesystem code into elegant one-liners
LLMs have helped me build dozens of libraries I've always wanted in Javascript My favorite one is www.npmjs.com/package/@sy... The concept is simple, what if you could write clean template strings in JS ? I've been using it for clean error formating, LLM messages, and more
If you're building LLM based products, check out napkin.ai Blending pre-made templates with LLM formatting may seem like a straightforward idea but they've executed it really well with a clean UX And if you need to fill a presentation with corporate BS, just ask it to generate the text as well 😅
I've used vibe coding (AI codes without you reviewing) to build a visualizer for a graph with Cline Would never trust a core product or mission critical system coded like this People are mistaking vibe coding and vibe engineering youtube.com/shorts/1_rSr...
Wow, @harper.lol's workflow is incredibly efficient with gemini 2 flash thinking and its massive context I used to build custom backends to iterate on ideas step by step. Now I just need the LLM We're truly shifting from coding LLMs to engineering ones harper.blog/2025/02/16/m...
Finally! Our React Native London talk with @fab-ber.bsky.social on AI assisted migrations is available online Discover how we achieved a 9 months migration in just 4 months by combining solid engineering expertise with a custom AI workflow www.youtube.com/watch?v=sz_S...
This also means that Deepseek R1 will be a potential attack vector. Willingly put inside a state system Imagine if they trained the model to act maliciously when it figures out that it's being used inside a targeted infrastructure I wonder what it could realistically achieve
India lauds Chinese AI lab DeepSeek, plans to host its models on local servers. The approval to allow DeepSeek to be hosted in India appears contingent on the platform storing and processing all Indian users’ data domestically, in line with India’s strict data localization requirements.
Yann Leflour reposted
You should try it on aistudio.google.com This type of model will likely be my go to for high level agentic systems
@vercel.com's AI SDK is amazing to work with But I don't get why I had to implement a middleware to add the last message from the prompt to the result if its role is "assistant" Should be a default behavior Anyway, if you need it it's "includeAssistantMessage" in @synstack/llm/middleware
Works with streaming as well by the way www.npmjs.com/package/@sy...
Finally released @synstack/synscript v2 with the #llm package migrated to @vercel.com's AI SDK 🎉 The Llm library is now a chainable, immutable, and type-safe wrapper over the ai sdk If you want to improve your prompting DevX in Typescript, look no further github.com/pAIrprogio/...
4️⃣ Prompt chaining Because prompt scripting is mostly async, I disliked writing await and Promise.all to whenever working on message arrays So, the message() param can be a Promise<Array<Message>> or an Array<Promise<Message>>, making it simpler and cleaner to build out your prompt and chain agents
There are more libraries I've built @ www.npmjs.com/org/synstack Make sure to check out "@synstack/fs" which the other one I'm most proud of I've been using them over the last 6 months to help teams succesfully triple their velocity during software migrations and they'll keep on getting better
Finally released @synstack/synscript v2 with the #llm package migrated to @vercel.com's AI SDK 🎉 The Llm library is now a chainable, immutable, and type-safe wrapper over the ai sdk If you want to improve your prompting DevX in Typescript, look no further github.com/pAIrprogio/...
2️⃣ Type safety There's type safety at every level: 🔶 Tool definitions, filters, & outputs 🔶 Calling the llm with missing required parameters will trigger a TS error 🔶 Message template string values are type-safe as well Even my test coverage is mostly type testing for now github.com/pAIrprogio/...
3️⃣ Template strings I hate the base JS template string because it breaks indentation So I wrote a separate library to fix that. 🔶 Trims text and removes extra indentation 🔶 Auto-resolves promises 🔶 Arrays to separate lines 🔶 Propagates nested indentation github.com/pAIrprogio/...
Finally released @synstack/synscript v2 with the #llm package migrated to @vercel.com's AI SDK 🎉 The Llm library is now a chainable, immutable, and type-safe wrapper over the ai sdk If you want to improve your prompting DevX in Typescript, look no further github.com/pAIrprogio/...
1️⃣ Immutability + Chaining I've always been a fan of superagent's clean immutable and chainable API allowing me to build upon a base instance of query github.com/ladjs/super... This was my target to replicate, but for LLMs and most of my libraries published under @synstack operate that way
Finally released @synstack/synscript v2 with the #llm package migrated to @vercel.com's AI SDK 🎉 The Llm library is now a chainable, immutable, and type-safe wrapper over the ai sdk If you want to improve your prompting DevX in Typescript, look no further github.com/pAIrprogio/...
For v1, I wrote my own abstraction layer While I love the chainable + immutable + string-templates + type-safety combo, writing my own adapters was too time consuming So after using @mattpocock.com Evalite, I decided to keep my approach but switch the engine to Vercel's sdk as a peer dependency