The empty feed problem
Cold start is the hardest UX problem in any personalized product. Here's the playbook txtfeed uses to make a brand-new user's first feed feel handcrafted.
Every personalized product faces the same first-day problem: a brand new user shows up with zero history, and the system has to decide what to show them. Get it wrong and they leave in 30 seconds. Get it right and they're hooked before they realize the algorithm is even running.
The naive answer is to show trending content. The slightly smarter answer is to ask new users to pick topics in onboarding. Both are wrong, or at least incomplete. Trending is the same for everyone, which means it's almost never optimal for anyone in particular. Topic onboarding adds a friction step that loses 30-50% of users before they see a single piece of content.
txtfeed's cold-start playbook has four layers. The first three run before the user does anything. The fourth kicks in the moment they cast their first vote.
Layer 1: Language detection. Browser Accept-Language header tells us which language to prioritize. A Spanish-speaking user shouldn't open the app to an English-only feed. This isn't personalization yet — it's just not being broken.
Layer 2: Geographic filtering. Cloudflare's geo headers tell us approximately where the user is. We weight stories from their region higher. Someone in Berlin sees German news mixed in with global tech, not just "US trending."
Layer 3: Time-of-day shaping. Local time is in the request. We show different content for morning (professional, news), afternoon (mixed), evening (lighter, discovery), and late night (long reads). This is how a good editor would do it — and it's free signal we can use without asking anything.
Layer 4: Real-time vote response. The first vote shifts the feed within seconds. Three votes calibrate it. Five votes and the algorithm knows enough to fill the next 100 cards with high-confidence picks. This is where the actual personalization happens — and the previous three layers exist to keep the user engaged long enough to cast that first vote.
The lesson is that cold start isn't one problem, it's four. Each layer carries the user a little further into the funnel, and each layer is cheap. The platforms that solve cold start well are the ones that stack signals before asking the user to do anything. The ones that fail are the ones that demand a setup step before they'll show value.
See it for yourself. No signup required.
Open txtfeed