@emilkowalski: Few tricks to make your app feel more native on mobile

Emil Kowalski
@emilkowalski
Few tricks to make your app feel more native on mobile
💬 12 · 🔁 54 · ❤️ 1.4K · 👁 33.7K
7:15 PM · Aug 11, 2026 · View on X
Replies (25)

alain @alainkbuilds
Some really handy ones in there. One really common source of confusion/frustration:
Problem:
position: sticky; stops working. It does not stick.
Solution:
A parent element is hiding or managing overflow. The container is not big enough. The sticky element is stretched.

Sam Gates @samjarvisgates
these are great. would add this too:
| Fixed bottom bar floats mid-page on iOS | `visualViewport` resize/scroll → `translateY` the diff |

Shafic Zziwa @shaficzziwa_
Thank you for this. I love and admire your work.

Oleg Kais @oleg_kai
long press is the giveaway every time. native does nothing, web quietly offers to copy the button label.

Kaan Can Guven @kaanbuildsai
Hover states and touch targets in the same list is the whole signal.

ronish @ronish1o
me and my agents love emil kowalski

Vinay Varma @roronoazoro_189
You keep doing such great work. Thanks for these.

John Wei @makatack_
polish compounds

Aabis @aabis_nasir
love this, so useful

Nicolas @nicolvsmvrx
Perfect timing, deep in the mobile version of a trading terminal right now.

Pratik @PratikPKataria
Amazing 🤩

Cluster Protocol @ClusterProtocol
wrapping hover states in pointer media queries prevents sticky hover bugs on touch screens

Emil Kowalski @emilkowalski
Few tricks to make your app feel more native on mobile

shadcn @shadcn
I just open sourced a minimal chatbot template.
This brings together everything we've been doing the past weeks: new components, shadcn/typeset, shadcn/react, tool calling, HITL with questionnaire, message parts. Deploys one click to @vercel AI Gateway.

Zach Moskow @zachmoskow
OpenRouter collected over $50M in FEES in the past year. Today that changes.
Thanks to @theinformation for breaking our news.
As of this morning, @concentrateai has removed all service and credit card fees and is the first and only AI Gateway to do so.
Unlike @vercel, we don’t
▶

DHH @dhh
Three months of work. A (literal) thousand PRs. One incredible Quattro! Almost there. https://github.com/basecamp/omarchy/pull/6231…

dax @thdxr
kit is working on getting opencode2 running in a durable object
we need this ourselves so we can bring our beloved slackbot to all of you
the setup is nice esp since opencode already uses sqlite

Guillermo Rauch @rauchg
If you’re not reading the code, whether explicitly or through agentic inquiry, one or more of these is true:
○ You’re a beginner
○ Software is throwaway
○ You’re prototyping
○ You have no users / revenue
○ You’re taking on debt & risk
○ Your problems are basic
And btw.

Kartik @1kartikkabadi1
The cache hit rates in Pi are absolutely insane. 99.5% 😭
how tf is this possible. what a madman @badlogicgames

Tanner Linsley @tannerlinsley
"TanStack Charts is my new favorite charting library!"

ReUI @reui_io
Awesome work! Any plans to add D3js like visualizations ?

Tanner Linsley @tannerlinsley
WDYM?

Theo - t3.gg @theo
Hot take: Meta's new Muse Spark and Muse Code stuff is actually pretty good, and Spark 1.2 going open weight is awesome
▶

Arun @hiarun02
BREAKING: Anthropic may be quietly removing Claude’s weekly usage limits.

Aaron Francis reposted @mitchellh
There are competitors that try to compete by tearing others down and there are competitors that compete by building themselves up. The former group is always a bunch of clowns and a huge red flag. The latter gets my respect. (This isn't a subtweet to anyone)
Comments (0)
No comments yet