Sign in

Kræn Hansen 🇩🇰

@kraenhansen.dk
428 followers 273 following 598 posts

Software craftsman, interested in local-first software, databases, sync engines and (react) native. Father of three 👭🏼👶 from Denmark 🇩🇰 Building Developer Experiences @elevenlabs.io Accepts sponsorships 🐙 github.com/sponsors/kraenhansen

PostsRepliesMedia
Kræn Hansen 🇩🇰 @kraenhansen.dk · 19/09/2026
Tried agentic coding via the #claude connector in #xcode - can't say I'm impressed 🙄 Would expect editing project files as the primary use-case for choosing a built-in xcode experience over just editing source files in another editor / agent harness.
Screenshot of Xcode failing miserably at modifying project settings
000
Kræn Hansen 🇩🇰 @kraenhansen.dk · 07/09/2026
That feeling when you accept defeat and trash your starved out #sourdough. Bittersweet as it also frees up mental space and eliminates the reminder of your carelessness, every time you open the fridge to see the corpse of what you once hoped would bring your family fresh bread on a weekly basis ...
030
Kræn Hansen 🇩🇰 @kraenhansen.dk · 02/09/2026
Have a look at memtrace.io - I know they're looking for talented rust devs. They've built an embedded graph database for coding agents to query and time-travel the source graph. Let me know if you'd like an intro to the founders 👍
memtrace.io
Memtrace | Memory Layer for AI Coding Agents
Memtrace gives coding agents shared structural memory: one graph for code, time, and fleet coordination across Claude Code, Cursor, and more.
000
Kræn Hansen 🇩🇰 @kraenhansen.dk · 26/08/2026
Usually through their "packager" of choice. I've used electron.build there's also electronforge.io (and probably other newer options)
electron.build
electron-builder
A complete solution to package and build a ready-for-distribution Electron app with auto-updating support.
020
Kræn Hansen 🇩🇰 @kraenhansen.dk · 25/08/2026
For a service with very complicated entities where the schema for an "update" call would overwhelm the LLM, I'm contemplating breaking it into more focused tools for each of the less complicated parameters of that update which are arguably more focused to the "job to be done".
000
Kræn Hansen 🇩🇰 @kraenhansen.dk · 25/08/2026
@jlowin.dev reading jlowin.dev/blog/stop-co... I'm left wondering if your stance on this has changed now that harnesses enable searching these tools: platform.claude.com/docs/en/agen...
jlowin.dev
Stop Converting Your REST APIs to MCP
Your auto-generated MCP is bad, and you should feel bad.
100
Kræn Hansen 🇩🇰 @kraenhansen.dk · 25/08/2026
I've been writing #TypeScript professionally for many years now ... And I Was Today Years Old When I Realised that #TypeScript private members are class and not instance scoped 🫠
050
Kræn Hansen 🇩🇰 @kraenhansen.dk · 17/08/2026
I do this in Slack ... All the f*****g time 😭
110
Kræn Hansen 🇩🇰 @kraenhansen.dk · 12/08/2026
For anyone wanting to look at the solar #eclipse 🌑 without frying your retinas 🧿 Putting a magnifying glass in front of the #pinhole makes it bigger
060
Kræn Hansen 🇩🇰 @kraenhansen.dk · 11/08/2026
🩵 Good for you 😊 Thanks for all the fish! (I'll give it 2 weeks before you hit "git init")
000
Kræn Hansen 🇩🇰 @kraenhansen.dk · 06/08/2026
> What is happening is models are becoming so much more capable Begynder at lugte lidt af so-ein-ding. Finder det interessant at artiklen ikke nævner hvornår dette angiveligt skulle være sket 🤔
130
Kræn Hansen 🇩🇰 @kraenhansen.dk · 28/07/2026
oh my - so relatable 🙈 I made sounds (typically beatboxing or signing) as well. We have 3 kids now and it often feels like my head is exploding when we sit down to eat dinner - to the point where I'm noticing a slight hearing loss approaching 🙉
101
Kræn Hansen 🇩🇰 @kraenhansen.dk · 20/07/2026
What can possibly go wrong 🙈😅
010
Reposted by Kræn Hansen 🇩🇰
gagik @gagik.bsky.social · 12/07/2026
it’s the day to talk about the future of tech #localfirstconf
261
Reposted by Kræn Hansen 🇩🇰
gagik @gagik.bsky.social · 12/07/2026
thanks @jakelazaroff.com I can finally understand what 90% of bluesky tech discourse is about now @localfirstconf.com
Photo of a presentation about atproto
021
Kræn Hansen 🇩🇰 @kraenhansen.dk · 12/07/2026
Awesome you're going this year as well! 💙 I'm in Sweden with family - take notes 🙏
110
Kræn Hansen 🇩🇰 @kraenhansen.dk · 12/07/2026
Gonna be great I'm sure!
000
Kræn Hansen 🇩🇰 @kraenhansen.dk · 10/07/2026
I think this is super common - a sort of calibration. "Am I missing something here?" One thing to keep in mind is that this might also come across as gossiping - talking behind someone's back. Do you do anything to avoid that?
000
Kræn Hansen 🇩🇰 @kraenhansen.dk · 10/07/2026
Instead of an outright confrontation, do you think there's an option where you present your observations and ask this person to clarify their intent? And optionally offer to share how their behavior made you feel, if you think they're genuinely curious and ready for that.
000
Kræn Hansen 🇩🇰 @kraenhansen.dk · 05/07/2026
I mean, he's not wrong, but also. Async reads in a local database is codesmell to me, resolving a promise *can* be fast - when resolved in the same microtask, but how would the caller know? 🤷‍♂️ It feels like the API is leaking an assumption of its implementation 🤔
110
Kræn Hansen 🇩🇰 @kraenhansen.dk · 03/07/2026
> do you find that your user-event handling callbacks often need to *read* new data? I mean, depends on your data modeling paradigm, but when I was working on Realm we had an object model where you could create using a sync call. Pretty useful, especially when creating circular structures.
Example of creating two objects circularly referencing each other.
110
Kræn Hansen 🇩🇰 @kraenhansen.dk · 03/07/2026
Much like what you're doing here 👍 sssync.joodaloop.com/queries/ Looks great 🙂
sssync.joodaloop.com
Querying data
100
Kræn Hansen 🇩🇰 @kraenhansen.dk · 03/07/2026
But to be fair ... much of that async complexity can be hidden in a reactive pattern (like a React hook), where a read is modelled more as a subscription, which turns into an update of view when the data arrives initially and as it updates syncs in.
110
Kræn Hansen 🇩🇰 @kraenhansen.dk · 03/07/2026
Sync read + writes are on my personal list of requirements: They simplify the calling code so much 🙏 No need for optimistic updates (which might need a rollback strategy), no need for async IIFE in user-event handling callbacks, etc.
210
Kræn Hansen 🇩🇰 @kraenhansen.dk · 03/07/2026
How queryable should the client cache be in your opinion? And do you expect a synchronous or asynchronous API for data access and mutation?
100
Reposted by Kræn Hansen 🇩🇰
Callstack @callstack.com · 29/06/2026
Voice agents are more than speech in, speech out. Luke Farrell has recently talked to @kraenhansen.dk about perceived latency, turn-taking, interruption handling, and the tradeoff between speed and expressiveness. Watch their conversation ⬇️ clstk.com/4v3o7iK
clstk.com
How Voice Agents Handle Latency, Turn-Taking, and Safety With Kræn Hansen
Kræn Hansen (ElevenLabs) talks voice-agent UX, from turn-taking and safety to layered SDK design for React and React Native.
012
Kræn Hansen 🇩🇰 @kraenhansen.dk · 01/06/2026
Oh yes! This could be great for writing documentation!
020
Kræn Hansen 🇩🇰 @kraenhansen.dk · 26/05/2026
🙃 da'fuq? 🤷‍♂️ The privileges of a de facto monopoly I suppose?
010
Kræn Hansen 🇩🇰 @kraenhansen.dk · 08/05/2026
And tests are still passing? 😅 Or did you accidentally delete the costly code? 🫠
110
Kræn Hansen 🇩🇰 @kraenhansen.dk · 06/05/2026
(totally a joke - please don't actually do that)
000
Kræn Hansen 🇩🇰 @kraenhansen.dk · 06/05/2026
Agree - a cool idea indeed! Also, I'll be watching the repo for the first to create an issue on the repo asking for a popup showing the value at the cursor on hover 🍿
110
Reposted by Kræn Hansen 🇩🇰
ElevenLabs @elevenlabs.io · 05/05/2026
Voice Changer transforms any speech into a different voice while preserving the original timing, emotion, and delivery. Send an audio file to our API and get back the same performance in a new voice, ready for character work, localization, or fixing lines in post.
242
Kræn Hansen 🇩🇰 @kraenhansen.dk · 29/04/2026
Wait ... who's racing away?
100
Kræn Hansen 🇩🇰 @kraenhansen.dk · 25/04/2026
😮
010
Reposted by Kræn Hansen 🇩🇰
Tadas Petra @tadaspetra.com · 17/04/2026
We built a Lie Detector AI Agent. It listens to conversations and interrupts when it detects a lie: - A loud buzz - An angry pirate calls it out in real time Built with ElevenLabs Agents. youtu.be/SMp1M1LmYwE
youtu.be
We built a Fact Checker Agent
YouTube video by ElevenLabs Developers
231
Reposted by Kræn Hansen 🇩🇰
ElevenLabs @elevenlabs.io · 15/04/2026
Introducing ElevenLabs Devs, a new YouTube channel for AI engineers. Expect deep dives, demos, and clear explanations of key concepts across Text to Speech, Speech to Text, ElevenAgents, and broader AI systems. Subscribe: www.youtube.com/@elevenlabsd...
042
Reposted by Kræn Hansen 🇩🇰
ElevenLabs @elevenlabs.io · 10/04/2026
ElevenLabs Skills have crossed 11k downloads. Once installed, you can use them to build apps with ElevenAgents, Speech to Text, Text to Speech, music, and sound effects. Install them with: > npx skills add elevenlabs/skills
121
Kræn Hansen 🇩🇰 @kraenhansen.dk · 08/04/2026
More likely it'll simply exchange the codes for a bar of gold.
000
Kræn Hansen 🇩🇰 @kraenhansen.dk · 01/04/2026
It's pretty clever though? Without the leading 0 it's too tempting for a kid to add a leading 1 ...
220
Kræn Hansen 🇩🇰 @kraenhansen.dk · 01/04/2026
Yep, although I believe the (former) government has proposed a transition to a new 8-point scale 😅 We like to mess with these details.
000
Kræn Hansen 🇩🇰 @kraenhansen.dk · 28/03/2026
Looks interesting 👍 The RPC implementation caught my attention, it seems to be a bit raw and could easily be extended to be Promise based, but I guess that is easy for users to do as well 🤔 Is Electron in scope for this? I've seen the RPC pattern multiple times for comms between renderers and main.
110
Kræn Hansen 🇩🇰 @kraenhansen.dk · 27/03/2026
When I joined @elevenlabs.io three months ago, I didn't expect the autonomy and mandate for change to ship a major version bump in a package with 300K weekly downloads 🤯 I'm really proud of this release!
040
Reposted by Kræn Hansen 🇩🇰
Martin Kleppmann @martin.kleppmann.com · 20/03/2026
Thank you @steefjan.bsky.social for this nice write-up of my keynote at QCon London this week: www.infoq.com/news/2026/03... My slides are now up as well: speakerdeck.com/ept/mitigati...
infoq.com
QCon London 2026: Kleppmann on Mitigating Europe's Cloud Dependency with Local-First Software
Europe is completely dependent on US cloud services, Martin Kleppmann told QCon London. His fix: commoditise everything. He walked through three technologies he's helped build: multi-cloud via de fact...
15316
Kræn Hansen 🇩🇰 @kraenhansen.dk · 19/03/2026
I've always enjoyed pair programming as a way to spend time with my colleagues and collaborators, while building something useful. As assisted software engineering is moving up the chain of abstraction, I'm wondering if "Pair Planning" is going to be a thing?
120
Reposted by Kræn Hansen 🇩🇰
ElevenLabs @elevenlabs.io · 19/03/2026
11k people are using the ElevenLabs MCP server in Claude. It connects to your ElevenLabs account and lets you generate speech, sound effects, and music directly in Claude. All the friction of generating audio with ElevenLabs is gone.
173
Kræn Hansen 🇩🇰 @kraenhansen.dk · 15/03/2026
Atomic habits did it for me 💙 "You do not rise to the level of your goals, you fall to the level of your systems."
010
Kræn Hansen 🇩🇰 @kraenhansen.dk · 13/03/2026
I had this neat little idea for a great open source contribution 💙
A time-bomb triggered on the 1st of April to override the forEach method on JavaScript arrays to call the callback on the next tick, instead of synchronously.
001
Reposted by Kræn Hansen 🇩🇰
Callstack @callstack.com · 12/03/2026
If your data and language model live on the device, why should the app need a network round trip to interact with them? @psyche.social & @kraenhansen.dk talk about: 🔹 local-first software 🔹 mobile security practices like certificate pinning 🔹 voice AI and real engineering stories Listen now 🎧
232
Kræn Hansen 🇩🇰 @kraenhansen.dk · 06/03/2026
I can't find any audio capabilities in the specs, does it have onboard speaker / mic, Bluetooth or would that all have to happen through the USB-C?
010
Kræn Hansen 🇩🇰 @kraenhansen.dk · 06/03/2026
I suspect the npmx discord?
020