Tomasz Gil
banner
tomaszgil.me
Tomasz Gil
@tomaszgil.me
Senior Software Engineer @ OpenSpace. I help product teams build quality software and lead engineering efforts.

tomaszgil.me
Pinned
I’m starting a short series on offline support in web apps. 📴

First post breaks down two client-only approaches: Foreground Queue vs. Background Sync. Same problem, very different UX and trade-offs. More in the article.

blog.tomaszgil.me/offline-supp...
Offline Support in Web Apps: Foreground Queue vs. Background Sync
Offline support in web applications has been on my mind a lot lately. I’m working on adding it to one of the projects I contribute to, and I quickly learned there's a lot of complexity to this topic. Deciding how to approach this can be challenging, ...
blog.tomaszgil.me
I’m starting a short series on offline support in web apps. 📴

First post breaks down two client-only approaches: Foreground Queue vs. Background Sync. Same problem, very different UX and trade-offs. More in the article.

blog.tomaszgil.me/offline-supp...
Offline Support in Web Apps: Foreground Queue vs. Background Sync
Offline support in web applications has been on my mind a lot lately. I’m working on adding it to one of the projects I contribute to, and I quickly learned there's a lot of complexity to this topic. Deciding how to approach this can be challenging, ...
blog.tomaszgil.me
December 29, 2025 at 11:57 AM
I haven't been paying too much attention to what's going on in the CSS world recent, but there's so much good stuff, especially around floating elements (popovers and dialogs). 👀

chrome.dev/css-wrapped-...
CSS Wrapped 2025
Sculpt dynamic interfaces, stretch your imagination, and play with these 22 powerful new CSS features that landed in Chrome this year.
chrome.dev
December 29, 2025 at 10:53 AM
GitHub Wrapped 2025 🎉
December 27, 2025 at 11:22 AM
It’s December 12th and I already maxed out my included-request usage for the month in Cursor. 🙃
December 12, 2025 at 11:52 AM
If you're on React 19, upgrade.

react.dev/blog/2025/12...
Critical Security Vulnerability in React Server Components – React
The library for web and native user interfaces
react.dev
December 9, 2025 at 7:57 AM
Reposted by Tomasz Gil
🆕 Knip for Editors

Trust me, I've poured in A Ton of Love ✂️

This isn't just a plugin to show unused exports. It offers a unique way to view & navigate your code and connect the dots. Feels like there's so much potential here.

Excited for you to try out the preview! 🙏

github.com/webpro-nl/kn...
November 28, 2025 at 1:50 PM
Reposted by Tomasz Gil
📚 I haven’t written much at all about the “front of the front-end” on my blog, but since I’m now working on the design engineering team @sentry.io and also maintained the design-system at adverity for some time, I have opinions there as well 😬:
Tooltip Components Should Not Exist
A look at why tooltip components are often the wrong abstraction in design systems, leading to accessibility issues, misuse, and inconsistent user experiences.
tkdodo.eu
November 17, 2025 at 6:23 PM
Some quick observations after trying out Claude Code (CLI) for a couple tasks. 👀

Overall verdict: results were fine — good enough for day-to-day feature work. But nothing noticeably better than what the underlying model already gives you.
November 16, 2025 at 7:33 AM
If you enjoy reading dev content 👇

New starter pack from @brittanyellich.com
Are we still doing starter packs?

Put this one together because I love seeing things that lovely folks write on the internet, and I'm sure there are more people to meet and add to this list.

go.bsky.app/AnM2t7r
November 15, 2025 at 9:12 PM
Cursor 2.0 is out. 👀

The most interesting bits to me:
- Multi-agent support
- Proprietary model (Composer)
- Built-in browser
- Voice mode

cursor.com/changelog/2-0
New Coding Model and Agent Interface · Cursor
Built to make you extraordinarily productive, Cursor is the best way to code with AI.
cursor.com
October 30, 2025 at 9:41 AM
I fixed some typos in the code.

I commited it with the following message: "Fix types". 🙃
October 8, 2025 at 7:31 AM
Reposted by Tomasz Gil
📚 As promised, a quick writeup on how syncing state - even if it’s between server and client state - can be avoided if we’d just derive state instead:
Deriving Client State from Server State
How to use derived state in React to keep client state and server data aligned without manual sync or effects.
tkdodo.eu
September 1, 2025 at 1:17 PM
Reposted by Tomasz Gil
I want as many developers as possible to experience the joy of refactoring their code when they have a good test suite by their side.

It's infectious. You'd want that feeling all the time.
September 1, 2025 at 6:07 PM
💡 TIL: Zustand has an in-built middleware to persist the store (by default in local storage).

See me remove all useLocalStorage hooks tomorrow. 👀
September 1, 2025 at 7:22 PM
Today, I one-shot prompted a small web application, front-end and back-end included.

The interface has to be reworked entirely and the backend reviewed, but it's functional. You can call me a full-stack engineer, I suppose. 🤷
August 30, 2025 at 3:32 PM
I’ve been experimenting with Cursor Background Agents for a new project.

Biggest takeaways: start with clear repo rules, write prompts that force planning & checks, run agents one-at-a-time early.

Background agents give me ~50% of a feature. More in the article.

blog.tomaszgil.me/enhancing-so...
Enhancing Software Engineering Workflow with Cursor Background Agents
Over the past few weeks, I’ve been experimenting with AI—especially Cursor Background Agents—to support my engineering work in a new web application we’re building. Below are some observations and tips that have helped me get better results. Rules On...
blog.tomaszgil.me
August 21, 2025 at 6:49 AM
New article in the works. ✍️
August 17, 2025 at 10:23 AM
Major changes at GitHub. 👀
github.blog/news-insight...
Auf Wiedersehen, GitHub ♥️
I am stepping down as GitHub CEO to build my next adventure. GitHub is thriving and has a bright future ahead.
github.blog
August 15, 2025 at 4:12 PM
Introducing GPT-5
YouTube video by OpenAI
www.youtube.com
August 7, 2025 at 6:01 PM
Reposted by Tomasz Gil
📚 Whenever I see useCallback, I wonder: why do we need it here? And a lot of the times, when I look deeper, I see that it actually doesn’t do anything. I think a lot of code-bases would be better of just not memoizing at all - and then let the compiler do it for you:
The Useless useCallback
Why most memoization is downright useless...
tkdodo.eu
July 28, 2025 at 4:22 PM
Setting up a brand new app is both so exciting and taxing. 🥵

My brain no longer shuts off after work recently. I'm still building, just in my head.
July 31, 2025 at 6:00 PM
You know what AI can't do? Auth.
July 28, 2025 at 7:26 PM
It's done.
July 26, 2025 at 10:07 AM
Reposted by Tomasz Gil
How it feels to ask for approvals on your PR
squidward from spongebob squarepants is sitting in a cardboard box holding a cup
ALT: squidward from spongebob squarepants is sitting in a cardboard box holding a cup
media.tenor.com
July 23, 2025 at 4:17 PM