Sign in

{PuruVijay}.svelte

@puruvj.dev
1.7K followers 419 following 484 posts

compressionist, performance freak. @sveltejs team. 9 years experience. Thrice Conference Speaker ex-@stackblitz. ❤️🎸 Hans Zimmer. CodeFu: github.com/puruvj

PostsRepliesMedia
{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/2026
ogygia — 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/2026
Re-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/2026
shipped 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/2025
What a trek!
020
{PuruVijay}.svelte @puruvj.dev · 17/12/2025
Neotraverse: Zero dependency tiny alternative to the bloated traverse! Recently hit 2M downloads/week 🤯
100
{PuruVijay}.svelte @puruvj.dev · 17/12/2025
Personal 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/2025
This week in Svelte: Introducing Neodrag v3 www.youtube.com/watch?v=Ia8N...
110
{PuruVijay}.svelte @puruvj.dev · 17/12/2025
Svelte Summit 2022 Sweden: Moving a library from react to svelte: www.youtube.com/watch?v=pJcb...
120
{PuruVijay}.svelte @puruvj.dev · 17/12/2025
React India 2024: www.youtube.com/watch?v=qZsK...
110
{PuruVijay}.svelte @puruvj.dev · 17/12/2025
Web 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/2025
v4 @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/2025
Optimized 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/2025
Few 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/2025
Effect-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/2025
OK wow I like this pattern: Niceties of recursion without the stack overflow
161
{PuruVijay}.svelte @puruvj.dev · 11/07/2025
Interesting lens pattern for deep immutable state updates!
031
{PuruVijay}.svelte @puruvj.dev · 11/07/2025
Whoa!!! 48M total npm downloads of my packages till date 🤯🤯🤯
060
{PuruVijay}.svelte @puruvj.dev · 09/07/2025
And we just hit 2200 🥳🥳🥳 That's +400 in just 10 days. We're so back!
170
{PuruVijay}.svelte @puruvj.dev · 08/07/2025
You can use emojis as import aliases. Here's a snippet from macos-web. app
271
{PuruVijay}.svelte @puruvj.dev · 07/07/2025
I love Claude 🔥
020
{PuruVijay}.svelte @puruvj.dev · 03/07/2025
Question: 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 · 03/07/2025
2.1k stars 🔥🔥🔥. +250 in just a week 🤩
020
{PuruVijay}.svelte @puruvj.dev · 28/06/2025
Them: Svelte signals are nice but I like Solid and Angular's more expressive syntax. Me: Umm...
1140
{PuruVijay}.svelte @puruvj.dev · 28/06/2025
Inner workings of liquid glass
010
{PuruVijay}.svelte @puruvj.dev · 28/06/2025
Wait... 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 · 28/06/2025
And here's what it compiles to:
170
{PuruVijay}.svelte @puruvj.dev · 28/06/2025
Same component in Svelte 5:
160
{PuruVijay}.svelte @puruvj.dev · 28/06/2025
Svelte 4 compiled that into THIS monstrosity:
150
{PuruVijay}.svelte @puruvj.dev · 28/06/2025
First, let's look at Svelte 4. This innocent code:
140
{PuruVijay}.svelte @puruvj.dev · 28/06/2025
Wooohooooo!!! Reached 2K stars 😁
0110
{PuruVijay}.svelte @puruvj.dev · 26/06/2025
I had so muchhhhh fun working on these micro interactions and aesthetic!! Upcoming neodrag docs preview!
031
{PuruVijay}.svelte @puruvj.dev · 26/06/2025
Try it:
100
{PuruVijay}.svelte @puruvj.dev · 26/06/2025
Migrating 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/2025
Writing 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/2025
Framework 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/2025
Here's how the plugin composition works: Stack behaviors together. Each plugin focuses on one thing.
110
{PuruVijay}.svelte @puruvj.dev · 26/06/2025
Only 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/2025
Neodrag 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/2025
Writing 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
{PuruVijay}.svelte @puruvj.dev · 23/06/2025
Preparing for the launch
010