{PuruVijay}.svelte @puruvj.dev · 06/08/2026🧭 <OgygiaRouter /> SPA body swap + head merge. View Transitions on. $app/navigation still works. • data-ogygia-persist — chrome survives swaps • Kit-style link prefetch • Adopt one route at a time next to Kit pages 120
{PuruVijay}.svelte @puruvj.dev · 06/08/2026🔌 Data stays Kit • +page.server props → islands (devalue) • classic form actions — zero JS • remotes: query, command, query.live, query.batch, form() Real Kit wire codec — not a reimplementation. 130
{PuruVijay}.svelte @puruvj.dev · 06/08/2026🌊 Lakes hydrate: 'none' freezes a subtree inside an island. Markup stays; that subtree’s JS never ships. Remount: cache, empty, or SWR. An island inside a lake wakes up again. 120
{PuruVijay}.svelte @puruvj.dev · 06/08/2026🛰️ Server islands defer = fallback HTML, then a signed fetch for real markup. Component JS never ships. Same schedules: load (w/ preload), idle, visible, media. Cookie-aware — the hole sees a real request. 120
{PuruVijay}.svelte @puruvj.dev · 06/08/2026🏝️ Client islands Static hydrate / preset. JS when you say so: • load — on connect • idle — requestIdleCallback • visible — IntersectionObserver • media — e.g. mobile-only drawers Props via devalue. Nesting works. 130
{PuruVijay}.svelte @puruvj.dev · 06/08/2026ogygia — SSR islands for SvelteKit. Plus lakes. No Kit patches. csr=false. Mark the interactive bits; the rest stays server HTML. Runtime ≈ 7.6 KB min+brotli (CE + optional SPA router). 🏝️ Client islands · 🛰️ Server islands · 🌊 Lakes · 🔌 Remotes & forms · 🧭 SPA router ogygia.puruvj.dev 1211
{PuruVijay}.svelte @puruvj.dev · 10/06/2026Re-designing neodrag v3 for an AI-first world, its almost done. And yep, its now DnDnSnR now, not just Drag, or DragnDrop. Highly integrated and composable. Ah and did I mention...CRDT friendly too? 010
{PuruVijay}.svelte @puruvj.dev · 18/05/2026shipped bundle-roast → e18e integration today. every package now gets badged against the community catalog. 🚩 flagged offenders, ✅ endorsed swaps. conflict-of-interest disclosure: yes, neotraverse is in the catalog. yes, i wrote it. yes, that's why i had to ship the chart. bundle-roast.puruvj.dev 111
{PuruVijay}.svelte @puruvj.dev · 06/03/2026🚀 Introducing aibind — AI SDK bindings for every JS framework ⚡ Reactive streaming 🌿 Branching chat history 🤖 Agents & tool calling 🔄 Model switching & racing 📝 Streaming markdown 💾 Durable streams SvelteKit · Next.js · Nuxt · SolidStart · TanStack · React Router 3113
{PuruVijay}.svelte @puruvj.dev · 17/12/2025Neotraverse: Zero dependency tiny alternative to the bloated traverse! Recently hit 2M downloads/week 🤯 100
{PuruVijay}.svelte @puruvj.dev · 17/12/2025Personal projects: macOS Web is my personal project I did out of boredom from bedrest after my accident, and it turned out to be quite a headline! Simulates macOS initial UI to perfection visually. React -> Preact -> Svelte. 150KB to just 30KB. www.puruvj.dev/blog/macos-r... 110
{PuruVijay}.svelte @puruvj.dev · 17/12/2025This week in Svelte: Introducing Neodrag v3 www.youtube.com/watch?v=Ia8N... 110
{PuruVijay}.svelte @puruvj.dev · 17/12/2025Svelte Summit 2022 Sweden: Moving a library from react to svelte: www.youtube.com/watch?v=pJcb... 120
{PuruVijay}.svelte @puruvj.dev · 17/12/2025Web Publisher for @stackblitz.com. One click documentation improvement pages. 120
{PuruVijay}.svelte @puruvj.dev · 17/12/2025@viteconf.org 2022 site for @stackblitz.com. Joint effort with the amazing @patak.dev, this conference brought together the vast Vite ecosystem into what we jokingly called as United Nations of Web frameworks. Fun fact: Everytime ViteConf gets over, the confetti used is by yours truly! 130
{PuruVijay}.svelte @puruvj.dev · 17/12/2025v4 @svelte.dev docs revamp: The site was due for an design refresh and update. I led the charge in modernising, unifying and simplifying the 3 major svelte organisation sites, other two being kit.svelte.dev and learn.svelte.dev And dark mode too 🌙 Before: After: 120
{PuruVijay}.svelte @puruvj.dev · 17/12/2025Optimized the spacetimedb.com website from 5MB+ JavaScript to just 100KB+, Server-side rendered and helluva lot faster! Also did work on SpacetimeDB TypeScript SDK and Bitcraft website while at 120
{PuruVijay}.svelte @puruvj.dev · 17/12/2025Few folks reached out to me asking why I've been dead over here for so long, no updates on side projects and all. And the answer is that I have been working on a single side project, the most important one of my life: Me! Down from 91kg to 72kg (-19kg) in last 3 months, completed a 12000ft... 4360
{PuruVijay}.svelte @puruvj.dev · 14/07/2025✨ Introducing svelte-interval-rune ✨ 🔥Reactive Durations: Dynamically change interval timings 🧘Simple, intuitive, clean 🗑️Automatic Cleanup: No memory leak 🦥Lazy Initialization: Intervals only created on .current 🤌Tiny: Only 203B min+br www.npmjs.com/package/svel... 1244
{PuruVijay}.svelte @puruvj.dev · 13/07/2025Effect-free reactive Interval utility in svelte 5! You can also have it attached to a state variable, un-attach and reattach at any point! 140
{PuruVijay}.svelte @puruvj.dev · 11/07/2025OK wow I like this pattern: Niceties of recursion without the stack overflow 161
{PuruVijay}.svelte @puruvj.dev · 11/07/2025Interesting lens pattern for deep immutable state updates! 031
{PuruVijay}.svelte @puruvj.dev · 11/07/2025Whoa!!! 48M total npm downloads of my packages till date 🤯🤯🤯 060
{PuruVijay}.svelte @puruvj.dev · 09/07/2025And we just hit 2200 🥳🥳🥳 That's +400 in just 10 days. We're so back! 170
{PuruVijay}.svelte @puruvj.dev · 08/07/2025You can use emojis as import aliases. Here's a snippet from macos-web. app 271
{PuruVijay}.svelte @puruvj.dev · 03/07/2025Question: What are your favorite drag and drop libraries, and what are your biggest beef with them? React, Svelte, Vue, Angular, Vanilla, whatever comes to your mind More responses could mean a kickass library later this year 👀👀 341
{PuruVijay}.svelte @puruvj.dev · 28/06/2025Them: Svelte signals are nice but I like Solid and Angular's more expressive syntax. Me: Umm... 1140
{PuruVijay}.svelte @puruvj.dev · 28/06/2025Wait... that's actually readable! Notice: $.state() - creates reactive state $.set() - updates state $.get() - reads state $.template_effect() - reactive scope This is the SAME *visual* pattern as React's useState, Solid's createSignal, Angular's signals! 170
{PuruVijay}.svelte @puruvj.dev · 26/06/2025I had so muchhhhh fun working on these micro interactions and aesthetic!! Upcoming neodrag docs preview! 031
{PuruVijay}.svelte @puruvj.dev · 26/06/2025Migrating from v2: Most of it is converting options to plugins. Reactivity is now manual instead of automatic - better performance, more predictable. 100
{PuruVijay}.svelte @puruvj.dev · 26/06/2025Writing custom plugins: Plugin API is straightforward. Hook into the drag lifecycle, modify the context. 15 lines gets you magnetic snapping. 100
{PuruVijay}.svelte @puruvj.dev · 26/06/2025Framework support: Svelte, React, Vue, SolidJS, Vanilla JS Same plugin system across all of them. Core is a peer dependency so it's deduplicated properly in meta-frameworks. 110
{PuruVijay}.svelte @puruvj.dev · 26/06/2025Here's how the plugin composition works: Stack behaviors together. Each plugin focuses on one thing. 110
{PuruVijay}.svelte @puruvj.dev · 26/06/2025Only pay for(in bytes) what you use: Basic dragging is small. Each plugin adds only its own weight. Import just what you use instead of paying for the whole library upfront. 100
{PuruVijay}.svelte @puruvj.dev · 26/06/2025Neodrag v3 Alpha is out! Complete rewrite from the ground up. 🏳️🌈 Multi-framework adapters ⚡ Event delegation (3 listeners total vs 3 per element) 🧩 Plugin-based architecture 📦 Tree-shakable 🛡️ Error isolation Thread below 👇 5479
{PuruVijay}.svelte @puruvj.dev · 26/06/2025@neoconfetti/react which barely got 200 downloads per week suddenly hit 300k a week 🤯 🤯🤯🤯🤯🤯 WTH HAPPENED HERE???? 130
{PuruVijay}.svelte @puruvj.dev · 25/06/2025Writing tests is a pain but seeing this run after a big change is a huge satisfaction 191
{PuruVijay}.svelte @puruvj.dev · 24/06/2025🚨RE-CREATE YOUR IFRAMES🚨 TIL that if you have an iframe on a page, you navigate to another page where the iframe's URL is changed, hitting the BROWSER BACK BUTTON will first navigate the iframe back, not the page 🤯🤯 It makes the page appear broken, as if nothing happened. 000