About the project
open-news is a lightweight social news platform designed to make sharing and discovering information fast, simple, and distraction-free. Instead of long articles hidden behind ads and paywalls, open-news focuses on short, structured posts that surface quickly and stay readable.
We wanted something that feels like a mix of Twitter and Hacker News — real-time sharing, but organized around content rather than noise.
Inspiration
Most social media platforms optimize for engagement rather than clarity. Important information gets buried under clickbait, algorithms, and long comment threads.
We asked a simple question:
What if sharing news was as easy as posting a tweet, but structured enough to stay useful?
We were inspired by: • Twitter’s immediacy • Hacker News’ simplicity • Reddit’s community discovery
Our goal was to combine those ideas into a clean, open platform where content comes first and the interface stays out of the way.
What it does
open-news allows users to: • Create short news posts • View a global timeline of updates • Like posts • Visit user profiles and see their posts • Read individual articles in a distraction-free format
The platform is intentionally minimal — no heavy algorithms, no infinite complexity — just a fast stream of information.
How we built it
We split the project into two main parts:
Frontend • Angular (standalone components) • SSR-compatible routing • Shared UI components for posts and articles • Mock data fallback when backend unavailable
Backend • Django REST API • User authentication • Post storage and retrieval • Timeline and profile endpoints
Architecture
The frontend communicates with the backend using a simple REST contract:
\text{Client} \rightarrow \text{API} \rightarrow \text{Database}
We designed the frontend so it can run in two modes: • Mock mode (for development) • API mode (for real data)
This allowed parallel development without blocking each other.
⸻
Challenges we ran into
- SSR + Client data conflicts
Angular server-side rendering required careful handling of browser-only APIs like localStorage. We had to guard access using runtime checks:
\text{if } typeof(window) \neq \text{undefined}
- API contract mismatches
Frontend and backend were built in parallel, so response shapes changed often. We solved this by defining a strict shared interface early.
- Dynamic routes with prerendering
Profile routes like /u/:username caused build failures because static generation didn’t know which users existed. We learned how static and dynamic rendering interact and adjusted routing strategy.
- State management vs simplicity
We initially considered complex state libraries but decided simplicity improved reliability during a hackathon.
⸻
Accomplishments that we’re proud of • Built a full stack social platform within hackathon time constraints • Implemented SSR-safe Angular architecture • Designed a frontend that works with or without backend availability • Created a clean UI that stays fast and readable • Coordinated parallel frontend/backend development without blocking
Most importantly — the app actually works end-to-end.
What we learned • SSR changes how you think about the browser — not everything exists at runtime • API contracts matter more than frameworks • Simplicity beats cleverness in short timeframes • A small, reliable feature set is better than many broken features • Good separation of concerns lets teams work independently
We also learned that debugging integration issues takes longer than writing features.
What’s next for open-news
Planned improvements: • Following system (personalized feeds) • Comment threads • Real-time updates via WebSockets • Content ranking without engagement-bait algorithms • Mobile-first responsive UI • Moderation and reporting tools
Long term, we want open-news to become a platform where information spreads quickly but stays readable and trustworthy.
Log in or sign up for Devpost to join the conversation.