Indian Startup Files is a free, no-fluff home for deep-dive case studies on Indian startups — their rise, fall, pivots, and the lessons in between — paired with a live community "Debate Room" where readers vote on the decisions that shaped these companies.
Built solo. Zero budget. Runs entirely on free-tier infra.
🔗 Live Site: https://divyansh1920.github.io/IndianStartupFiles/index.html
- Brand-themed case studies — every individual post (Byju's, Zepto, Mamaearth, and growing) is styled in that startup's own brand colors for an immersive, distinct read
- Searchable case study library — real-time search, category filters, and sort by Latest / Most Viewed / Most Liked
- Live engagement, no backend server — views, likes, and dislikes are tracked in real time via Supabase, with zero server cost
- Audio Debate Room — a custom-built HTML5 podcast-style player with episode navigation, speed control, and live community voting bars
- Reading experience extras — sticky table of contents, scroll progress bar, animated stat counters, fade-in transitions
- Fully responsive — clean breakpoints down to mobile, no layout shift, no frameworks bloating load time
- Frontend: HTML5, CSS3 (custom properties, Grid/Flexbox) — vanilla, no framework, no build step
- Backend: Supabase (Postgres + RPC functions) for views, likes, dislikes, and debate votes
- Fonts: Space Grotesk · DM Sans · Playfair Display (Google Fonts)
- Hosting: GitHub Pages
IndianStartupFiles/
├── index.html # Homepage
├── blogs.html # Case studies listing + search/filter/sort
├── supabase-stats.js # Shared Supabase client (views/likes/votes)
├── blogspost/
│ ├── byjus_collapse_blog_page.html
│ ├── zepto_blog_page.html
│ └── mamaearth_blog_page.html
└── debates/
└── indian_startup_files_debates_page.html # Audio Debate Room
Paths are absolute (
/IndianStartupFiles/...) in nested pages. If your repo name differs, update those paths or switch to relative ones.
The frontend expects this schema. Set it up in your own Supabase project before deploying:
Table — article_stats
| column | type | notes |
|---|---|---|
| slug | text | primary key |
| views | int4 | default 0 |
| likes | int4 | default 0 |
| dislikes | int4 | default 0 |
RPC functions (Postgres functions, exposed via PostgREST):
increment_view(p_slug text)add_like(p_slug text)/remove_like(p_slug text)add_dislike(p_slug text)/remove_dislike(p_slug text)cast_debate_vote(p_debate_id int, p_side text)→{ a, b, total }get_debate_votes(p_debate_id int)→{ a, b, total }get_total_votes()→int
Enable Row Level Security on article_stats with policies allowing anon select/update through the RPCs only — don't expose raw table writes to the anon key.
git clone https://github.com/your-username/IndianStartupFiles.git
cd IndianStartupFiles
npx serve .- Create a free Supabase project, set up the schema above
- Drop your Project URL + anon key into
supabase-stats.js - Serve locally with a static server (opening via
file://breaks the Supabasefetchcalls — usenpx serve, VS Code Live Server, or similar) - Push to GitHub → Settings → Pages → deploy from branch
- Duplicate an existing file in
blogspost/, rename it to match your new startup's slug - Update the
SLUGconstant inside the file's<script>so stats track correctly - Re-theme the CSS variables (
--p,--g, etc.) to the startup's brand colors - Add a matching entry to the
BLOGSarray inblogs.html—slugmust match the filename - Commit, push, done
- Comment system per article
- More sectors / case studies (Paytm, OYO, CRED, Nykaa already stubbed in)
- Newsletter signup
- Dark mode
No license attached yet. Add a LICENSE file (MIT recommended) if you want others to fork or reuse the code.
Built solo by Divyansh — zero budget, hosted free, forever.
Connect: https://www.linkedin.com/in/div-2019/ · divjain19@gmail.com