Netto

Designing the AI layer inside a social feed

Type: Personal experiment · 0→1 solo build · Timeline: 3–4 days · Stack: Vanilla JS · Claude API · Netlify · Role: Product design, AI interaction design, build

Weather app image
Weather app image
Weather app image
Weather app image

THE QUESTION

Doomscrolling guilt isn't about wasted time. It's about the gap between watching someone build something, run something, become something — and closing the app with nothing to show for it.

That's not a content problem. That's a design problem. And nobody had tried to fix it from the inside.

THE AI DESIGN DECISIONS

This is where the real work was.

Where the agent lives My first instinct was a floating button. I killed it immediately. A floating CTA on a video feed is an interrupt — which is exactly the dynamic I was trying to break. The agent lives in the footer nav, centre position. Always present, never intrusive. You find it when you're ready.


When it activates I landed on 8 seconds. Not from data — from instinct. Under 5 seconds you're still scanning. At 8 seconds you've made a micro-commitment to the content. That's the signal. After 8 seconds, the agent pulses once. Nothing more until you tap.


What it says One punchy observation. One hook question. Two sentences maximum. 160 token limit. The agent should feel like a direct friend texting you about something you both just watched — not a coach, not a summary generator. I rewrote the system prompt seven times until it consistently produced the right register. The difference between "That bit about building in public being performance anxiety in disguise — did that land for you?" and "Great video! Here are 3 key takeaways" is the entire product.


One agent, five threads The agent maintains five separate topic threads tied to content categories. A single conversation thread gets polluted fast — mixed context makes the AI worse and makes the user feel like they're starting over. Separate threads let the agent build context within a topic. A small architectural decision with a big effect on how intelligent the agent feels.

WHAT IT TAUGHT ME

Designing the AI's voice is a UX problem, not a copywriting one. The agent's register isn't a style choice — it's a functional decision. The wrong tone breaks the emotional promise of the whole product.


The threshold is the product. The 8-second activation wasn't a technical parameter — it was the core design decision. It represents a micro-commitment signal. That framing would be the foundation of any future iteration.


Familiarity is a feature. I made Netto look like a social app deliberately. A radically different UI creates friction before the agent can prove its value. If the feed feels like something you already know, you'll stay long enough to find what's different.

WHY IT WOULDN'T WORK AT SCALE?

The switching problem is brutal — people don't leave Instagram because something better exists. The business model fights the product promise — "give something back" and ad revenue are philosophically opposed.


The agent has to be right far more than it's wrong — one bad initiation and users turn it off permanently. And a well-resourced competitor could ship this as a feature inside an existing platform within a product cycle.

WHAT THIS WAS

A proof of concept for a real problem. I built Netto to answer a question I couldn't stop asking — and to learn what it actually feels like to design the AI layer of a product, not just the interface around it.

Three days of building taught me more about AI interaction design than anything I'd read about it.

Get in touch

jain.tanisha23@gmail.com

All rights reserved, ©2026

Get in touch

jain.tanisha23@gmail.com

All rights reserved, ©2026

Get in touch

jain.tanisha23@gmail.com

All rights reserved, ©2026