Inspiration
I kept seeing the same thing around me. My peers scroll past headlines about interest rates, tariffs, inflation and wars without really knowing what they mean. Adults struggle too. Many issues feel too complex to connect to daily life, so people stop trying.
Most news assumes you already know the basics. What's missing is the middle step: what actually happened, how it works, and why it should matter to you personally. I built Plainly to fill that gap and help people understand the world they live in.
What it does
Plainly explains the news that moves your money in plain English.
- Live feed. Stories from about a dozen major outlets, rewritten as short cards and refreshed every few minutes. Each card links to the original article.
- Deep dives. Open any story to get the ideas underneath it, not just a summary. For inflation, that means demand-pull versus cost-push, why it is happening, and how it reaches your rent, loans and savings, with worked examples in simple numbers. A follow-up box lets you ask anything that is still unclear.
- Your situation. Tell Plainly whether you rent or own, what debts and savings you have, and what work you do. Every deep dive then opens with how that story could affect you specifically.
- Daily brief. A three-minute read of the day's biggest stories, with links to the sources.
- Saved and For you. Save articles to build a library. Plainly learns which topics you care about and ranks your feed to match.
- Paste anything. Drop in a headline, an article or a link and get the same deep dive.
How I built it
- Frontend: Next.js 14 (App Router), TypeScript and Tailwind
- Backend: FastAPI (Python) that pulls RSS feeds, calls Claude, and refreshes itself on a loop
- Auth and database: Supabase (Postgres) with JWT verification on the backend
- AI: the Claude API, using forced tool calls so every explanation comes back as structured data
- Hosting: Vercel for the frontend and Railway for the backend
Cost shaped the design. Each new story gets a cheap short card. The full deep dive is written only the first time someone opens it, then cached for everyone. Personalized impact is cached per user and story.
Challenges
- Accuracy. Explaining news simply risks inventing details. The AI may use standard economics to explain how things work, but facts about the specific event must come only from the source text, and anything missing is listed under "Not in the story".
- Sites that block bots. Some publishers refuse automatic reading, so links from them fail. Plainly now says why and asks for the pasted text instead.
- Keeping it advice-free. Personalized impact is written as information about what a story could mean, never as instructions to buy, sell or borrow.
- Keeping the feed fresh cheaply. Balancing refresh speed against API cost led to the two-tier design above.
What I learned
Simple is harder than detailed. The hardest part was not generating text, it was deciding what a beginner needs to know first, and what to leave out.
What's next
- A geopolitics topic that always ties world events back to prices, jobs and markets
- A personal glossary built from the terms in your saved articles
- A chat that answers using only your saved library
- A weekly email digest of the topics you follow
Built With
- anthropic
- claude-api
- fastapi
- nextjs
- postgresql
- python
- railway
- react
- rss
- supabase
- tailwindcss
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.