Thiago's Avatar

Thiago

@thiagolino8

Full-Stack Dev πŸ’» | Tech enthusiast πŸš€ | Curious mind πŸ’‘ Exploring innovation, digital culture, and the future of tech 🌐 Here to connect, learn, and share insights ✨ https://www.linkedin.com/in/thiago-lino-gomes-5812581bb https://github.com/thiagolino8

31
Followers
66
Following
209
Posts
07.09.2024
Joined
Posts Following

Latest posts by Thiago @thiagolino8

Post image

I had already dedicated a lot of time trying to achieve the most optimized bundle size possible (when I took over the app, the main chunk was over 1MB)
The latest vite beta update simply reduced the size of the largest chunk by more than 30%
Kudos to the @vite.dev team and everyone involved

23.02.2026 16:32 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

Based on this post, I decided to create a minimal version of the @tanstack.com query that would meet my needs in @svelte.dev
Since Svelte already has asynchronous state-based UI management, all I personally need is a promise manager and cache
Resulting size is also nice
svelte.dev/playground/9...

16.02.2026 22:10 πŸ‘ 3 πŸ” 2 πŸ’¬ 1 πŸ“Œ 0
Only Svelte supports Custom Select! 🀯 #sveltejs #javascript
Only Svelte supports Custom Select! 🀯 #sveltejs #javascript YouTube video by Svelte Society

Svelte is the first framework to let you use CUSTOM <select> elements. How about that?

REPL: www.sveltelab.dev/k486rw4vl693...
Video: youtube.com/shorts/sdCfj...

19.01.2026 20:10 πŸ‘ 41 πŸ” 5 πŸ’¬ 0 πŸ“Œ 2

That would be a shame
It may not be the best abstraction for React, but it's great for other frameworks that work directly with promises, such as Svelte and Solid
I'm also curious as to why it wouldn't be the best abstraction for React

29.12.2025 17:40 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Teachers of good programming practices promote β€œrefactoring” but in reality programming is a race. Those who write a pattern FIRST get praise while those who refactor AFTER have to defend why they didn’t follow the established pattern. No wonder code quality is so terrible across the industry.

29.12.2025 16:26 πŸ‘ 3 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0
Preview
Hello world β€’ Playground β€’ Svelte Web development for the rest of us

But what I'm really enjoying is the new flow that's becoming the standard among signal based frameworks to "handle" asynchronous state for you
svelte.dev/playground/h...

26.12.2025 19:06 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Creating a state within a derivation is a great pattern.
I first discovered this pattern with Angular, then I found out it was a common pattern for signal based frameworks
Signals give you an ergonomics and composition power that hooks can't achieve

26.12.2025 19:06 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

But for this you can't declare the promise in the same suspense scope where it's used, and therefore in real apps you need an external cache
So in the end the answer to asynchronous state in React remains react query

25.12.2025 03:22 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Limber Β» Playground and REPL Limber is a playground and REPL for various web technologies, such as Svelte, Vue, Mermaid, Ember, React, and more. It also demonstrates how documentation can have live islands of different frameworks...

But without the cleanup of useEffect you can't handle race conditions
What the React team wants is for you to use the promise in a use hook and recreate the promise instead of recreating the value, thus ignoring obsolete derivations
share.glimdown.com/pPeDHRh.SgiI...

25.12.2025 03:22 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Limber Β» Playground and REPL Limber is a playground and REPL for various web technologies, such as Svelte, Vue, Mermaid, Ember, React, and more. It also demonstrates how documentation can have live islands of different frameworks...

This way you don't have reactivity in the fetch
You can achieve this by using a comparison state and modifying the state during render
share.glimdown.com/9ZbC95JQRsSo...

25.12.2025 03:22 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

React hooks need a special name because they work in a special way, with different rules than a regular js function

01.12.2025 19:13 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I've seen some people calling them spells
But I don't think there's a need for a special name

01.12.2025 19:11 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
Fine-grained everything <p>Modern frameworks like Svelte are fast thanks to signal‑based fine‑grained reactivity, but performance is more than 60fps. This talk covers new approaches to build fast, reliable, data‑efficient ap...

A couple of weeks ago at @perfnow.nl I gave a talk called "Fine-grained everything". It's about @svelte.dev (obviously), and the new frontiers of framework-land, but it's also about some stubborn misconceptions in web performance circles

Gift link: conffab.com/presentation...

13.11.2025 21:03 πŸ‘ 145 πŸ” 21 πŸ’¬ 5 πŸ“Œ 4

Using a second comparative state is still not very intuitive today, but before batched updates, it also created extra re-renders
Before useEffectEvent, useRef + useEffect was the only way to use functions with unstable references in another useEffect
Optimistic state, asynchronous state, and so on

06.11.2025 22:10 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

In the case of React, there's also the historical factor that for a long time, useEffect was the only way to achieve many things
Before useSyncExternalStore, it was the only way to sync with external state

06.11.2025 22:10 πŸ‘ 2 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0

I think useEffect gets a bad rep because of the re-rendering model
In any framework, changing state within an effect is suboptimal
In React, even when it doesn't create an infinite loop, it's still a ticking time bomb waiting to explode your app's performance by creating additional rendering cycles.

06.11.2025 19:03 πŸ‘ 5 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image

In V5, they started using "runes," which are special operators used by the compiler
Operators like `import()` or `super()`, which look like functions, are, as far as TS is concerned, just functions but they have their own specific usage rules
This is what MDN calls a function-like expression

04.11.2025 13:41 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Svelte components β€’ Docs β€’ Svelte Svelte components β€’ Svelte documentation

Svelte v3/4 used labels to indicate derivations and effects
v4.svelte.dev/docs/svelte-...

04.11.2025 13:35 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
Labeled statement - JavaScript | MDN A labeled statement is any statement that is prefixed with an identifier. You can jump to this label using a break or continue statement nested within the labeled statement.

developer.mozilla.org/en-US/docs/W...

04.11.2025 13:33 πŸ‘ 3 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0

another async feature: out-of-order rendering. this means a component can begin rendering children while it's awaiting data. demo stolen from @ryansolid.bsky.social β€” these components should render in 3 seconds, but they only take 1: svelte.dev/playground/2...

28.10.2025 21:02 πŸ‘ 101 πŸ” 11 πŸ’¬ 4 πŸ“Œ 1

Bundling is such an underused feature of server dev. It can easily reduce cold start times by 30-40%.

Maybe it's because most backend deps are still stuck with commonjs.

28.10.2025 11:51 πŸ‘ 21 πŸ” 2 πŸ’¬ 7 πŸ“Œ 0
Preview
Remote functions β€’ SvelteKit Docs Remote functions β€’ SvelteKit documentation

I don't know about other frameworks, but Svelte has pretty good first party support for handling forms
svelte.dev/docs/kit/rem...

27.10.2025 20:58 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
React Playground URL-based React Playground. Craft, experiment, and collaborate with ease using our sandbox. Build, test, and share your concepts hassle-free. No need for sign-in: your creations are stored directly in...

If I understand correctly, this only occurs if you use resetQueries and the reseted query doesn't have an initialData (which doesn't make sense since the purpose of resetQueries is to reset to the initial value)
But even in this case, useDeferredValue can be used to avoid displaying the fallback

23.10.2025 14:02 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

I have about 67 uses of useSuspenseQuery in my main app All used within custom hooks that are mostly used more than once
So in total, there are at least 100 different uses of useSuspenseQuery
It's an app with a lot of data updates and derivations
Nowhere is there any fallback after the initial load

23.10.2025 13:02 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

The thread was about react.transition vs react.useTransition
React-query had very little to do with the problem
So much so that it was necessary to use both to reproduce the issue.
bsky.app/profile/rick...

23.10.2025 13:02 πŸ‘ 1 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0

You need to indicate the transition in the data that will result in the creation of the new promise, not in the promise itself.
Using useDeferredValue in the query parameters has been working for me, no fallbacks after the initial load.

23.10.2025 12:12 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Doesn't react-query have the useSuspenseQuery hook?
Additionally, it is possible to take the promise from the query and use "use" directly

23.10.2025 11:44 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I mean, you can abstract

function getLinkProps(href) {
return {
href,
class: {
active: page.url.pathname === href
}
}
}

<a {...getLinkProps('/some/path')} />

But in the end it's just a matter of preference

21.10.2025 03:23 πŸ‘ 3 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0

Attachments are already reactive, so you don't need the effect
Personally I prefer using the new built-in clsx in the class prop instead of toggling class imperatively, to remove the need for :global

21.10.2025 03:02 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image

It gets even simpler with async svelte
Bonus: no flickering on mount

20.10.2025 01:24 πŸ‘ 5 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0