Back to Blogs
EngineeringClient PerformanceConversation RoomReading ClientUX

When One Tap Has to Open Two Pages

By Anvith Shetty, Founding Member – Philonet.ai

Anvith Shetty
Anvith Shetty
Founding Member – Philonet.ai
August 2, 20266 min read
When One Tap Has to Open Two Pages

When we talk about making an open feel fast, the conversation usually goes to the backend. That matters, but it is not the whole story.

This post is about the client. The choices between a thumb on a card and the first honest pixels decide whether dual open feels slow even when the server is fine.

On our feed, a card is a thought, research, spotlight, ... about an article. In Philonet a feed tap often opens two pages together.

  • the conversation room, where every conversation is a deeply researched post - having both live and static elements to it.
  • the reading client, a heavier page with context, insights, structure, and detail you can quote back into the room. This client is more alive than most reading sessions where you can feel the people interacting with it live along with you.

Two pages. Two definitions of ready. One gesture. The backend can shrink the wait. The client stages it.

What others optimize for

Most social platforms (Reddit, X, Instagram) open one page family, a post, maybe with comments. Reddit’s listings default to limit 25 (max 100). Comment trees arrive truncated and expand on demand. Their iOS client has been seen warming on-screen post details (and comments for the first post) before the tap.

Substack is closer in spirit (a real article) but lighter. One reading open, not a live room beside it on the same tap. We take the social playbook for the room. We still stage the heavier reader next to it.

Why waiting for “done” fails

Jakob Nielsen’s limits (from Miller) still hold. ~0.1s feels instant, ~1s keeps thought in flow, ~10s is about the attention ceiling. Past one second people notice the machine. A blank pause is the worst version. The reason for the delay does not matter to them. Progressive structure beats a spinner that only says “still waiting.”

So we do not wait for both pages to finish. We load in variation. Something true first, denser layers while attention is already moving. Two clocks we refuse to merge.

  1. Room. Land on the card you meant, thread starting
  2. Reader. Honest article body, insights after

Card blurbs are often only a few hundred characters. Treating them as the article makes the reader clock lie. Holding the room for every insight makes the room clock pay for the reader’s weight.

What the client does today (cost effective for an early stage)

Deep reader enrichment costs real money, and opening two pages on one tap makes it easy to fetch more than you need. At our stage we keep that under control on the client. We warm what the next tap is likely to need, instead of precomputing everything up front the way a much larger feed product might.

Feed
10 thoughts/page (experimental up to 20). List SWR ~5 min
Visibility warm
~200px early. Route chunk, conversation details (5 min stale), first 20 replies (jump_to_latest, 60s stale), reader JS once
Concurrency
Max 3 warms. Press prioritizes that card to the front of the queue
Room seed
Parent snapshot from the card (session storage) for sync first paint
Click
Open reading client immediately (metadata only). Soft-nav into the room so both pages overlap
Body honesty
Trust preload/cache only if body ≥ 1200 chars. Else article API (≥ 80 useful) or summarise stream. Blurbs never win
Reader beats
Shell → real body → research/insights (not on the critical path for first paragraph)
Live
Socket join after paint (join timeout 10s). Heartbeats ~25s. Paint first, liveness second
Seen
1500ms continuous visibility before ranking “seen”

That is cost-effective. Warm the probable tap, not every heavy reader path on screen. It does not replace a fast API. It decides whether the same network budget feels like progress or a stall.

Anvith Shetty

Written by Anvith Shetty

Founding Member – Philonet.ai

Connect on LinkedIn

Ready to join the thinking revolution?

Join the waitlist