Shreyah
Prasad

Tangent Reader

2026 · Reading tool

Tangent Reader

Go down every rabbit hole without losing your place. A chat that branches instead of scrolling. Ask Claude about any sentence you're reading, then go deeper from any point in the answer.

● live · open source

The problem

Ask Claude or ChatGPT about something you're reading and the answer lands in one long chat. A few follow-ups later the thread has drifted, and you've lost the paragraph you started on.

What it does

  • Tap any sentence to ask Claude about it. The answer stays tied to that sentence.
  • Tap a sentence in the answer to go deeper. The session forms a tree you can see on a map.
  • Every place has its own address, so the browser's Back button walks you home.

How it's built

  • Local-first, with your own API key. The page calls Anthropic straight from the browser, and your reading stays in IndexedDB on your device. There are no accounts and no server that holds keys.
  • A key in the page makes script injection the main threat. So the page has a strict Content Security Policy and shows everything as text, and the end-to-end tests run every flow under that real policy.
  • One Cloudflare Worker serves the page and fetches links. It refuses private addresses after DNS and after every redirect.
  • The article is the cached prefix of every call, kept for an hour. With pauses between questions, an hour of reading costs about a quarter of what the 5-minute cache would.
  • It has 400+ unit tests, Playwright tests on an iPhone screen, and prompt-injection evals against the real API.
  • React
  • TypeScript
  • Tailwind
  • IndexedDB
  • Cloudflare Workers
  • Claude API
  • Vitest
  • Playwright
Fieldnotes

2026 · Real estate

Fieldnotes

Turns a recorded real estate showing into structured claims, like preferences, budgets and follow-ups. Each claim is checked against the transcript, and the agent approves the exact note before it is exported for the CRM.

private

The problem

Real estate agents run showing after showing, often with a different client at each. The agent I'm building this for put it simply: by evening, it's hard to remember who said what. Whatever they recall is what goes into the CRM that runs their follow-ups. Fieldnotes pulls those details from the recording instead, keeps only what traces back to it, and labels anything the agent adds.

Why showings are different

A showing has several speakers, so each statement is tied to a role: Client, Client 2, Client 3, the agent or Other. Each recording covers one property. Under Fair Housing rules, protected-class details are kept out of the CRM by default.

What it does

  • Upload the showing recording, pick the client and the property, and confirm who each speaker is. Claims are saved to the selected client, and a second or third client's comments stay separately attributed.
  • Review claims for that property: preferences, budgets, timelines and proposed follow-ups, each linked to the moment in the transcript it came from. Claims the agent adds are labeled as the agent's, not the client's.
  • Approve the claims, pick Zoho or Follow Up Boss, and download the note request formatted for that CRM's Notes API. Nothing is sent.

How it's built

  • The model proposes typed claims. The server checks that each one quotes a full turn from the transcript, keeps qualifiers and negation, and names the speaker and the property. The model can't mark its own claims as supported.
  • Budgets and dates go through a strict parser. Relative dates such as "in 3 days" resolve from the confirmed capture time, and anything ambiguous stays unknown.
  • The preview stores the exact request with a hash tied to the transcript, the context and the checked claims. Any edit means a recheck and a new preview.
  • A cautious policy check blocks protected-class content from the final note. It reduces risk and is not legal advice.
  • An opt-in local model path runs Qwen3 4B on Ollama, pinned by digest, on loopback only with cloud turned off. Postgres keeps tenants apart with row-level security.
  • Python
  • FastAPI
  • Postgres
  • React
  • TypeScript
  • Ollama
  • Docker
  • Playwright
Career Kit

2026 · Job search

Career Kit

Your job search in one place you message from your phone. It tracks roles, todos and the people helping you, and tailors a resume and cover letter to each role from facts you've confirmed.

● live · open source

The problem

Looking for a job while working full time is a second job. Every role wants its own resume and cover letter, every application needs a follow-up, and the people who could refer you get lost in your texts.

What it does

  • Tell Claude what happened, from your phone: "Add this job," "I applied to Acme today," "Had coffee with Sam, she offered to refer me." It adds the role, moves its status and links the referral.
  • Networking gets its own page: who you've talked to, what they said and when to follow up. Referrals are often the fastest way into a job.
  • Say "interview me for my resume" and it asks about your work, saving each answer with its source. Drafts for a role use only those facts, and you approve each one as the PDF you'd send.

How it's built

  • Runs on your own computer. Your data lives in one folder there and is never in git. What Claude reads to help you goes to Anthropic, as in any Claude Code session.
  • Reads and writes are split. One read API has no write routes, and each SQLite database has one writer process, the only thing that can change it. A bug in the page can't change data, and a bug in one writer can't touch the other's database.
  • Every change is all or nothing, with a backup just before it. Retries carry an idempotency key so a save happens once, edits from a stale screen are refused, and deleting hides a row so it can come back.
  • Claude reads text you didn't write, like a job posting, and that text could try to get your files sent elsewhere. A hook checks every command first and refuses any curl that reaches anything but Career Kit's own servers on 127.0.0.1. Tailscale lets only allowlisted logins reach the page from a phone.
  • pytest, Vitest and Playwright run in CI. The drafting skills have their own tests: a scripted owner talks to Claude on made-up data, then scripted checks and an LLM judge score the drafts.
  • Python
  • FastAPI
  • SQLite
  • React
  • TypeScript
  • Claude Code
  • Typst
  • Playwright
Tapout
The Tapout setup wizard with iPhone picked and the first step open

2026 · Focus

Tapout

Tap the fridge to lock your apps. A setup guide for a do-it-yourself Brick: one NFC sticker and a free, open-source app on iPhone or Android.

● live · open source

The problem

People are addicted to their phones, and apps are designed to keep them there with features like endless scrolling. Brick, a device that's trending right now, locks your distracting apps until you tap it again. This guide turns that into a craft project you build yourself.

What it does

  • Stick one NFC tag somewhere away from your desk, like the fridge. Tap your phone on it to lock the apps you picked.
  • Tap it again to unlock them, so getting your apps back means walking to it.
  • The setup wizard has six steps, from buying the right tag to testing it. It uses Foqos on iPhone (iOS 17.6+) or Lock on Android (Android 13+).
  • HTML
  • CSS
  • JavaScript
  • NFC
  • GitHub Pages