{"id":30770513,"url":"https://github.com/sanand0/datastories","last_synced_at":"2026-04-03T03:07:40.192Z","repository":{"id":297374521,"uuid":"996545712","full_name":"sanand0/datastories","owner":"sanand0","description":"Small data visualizations and stories, mostly vibe-coded","archived":false,"fork":false,"pushed_at":"2026-03-21T04:15:05.000Z","size":13840,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-21T20:14:44.257Z","etag":null,"topics":["data-visualization"],"latest_commit_sha":null,"homepage":"https://sanand0.github.io/datastories/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sanand0.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-05T05:27:55.000Z","updated_at":"2026-03-21T04:15:09.000Z","dependencies_parsed_at":"2025-07-14T20:10:38.936Z","dependency_job_id":"e9786509-ec0a-4eef-bef4-7795fd48e1f2","html_url":"https://github.com/sanand0/datastories","commit_stats":null,"previous_names":["sanand0/datastories"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/sanand0/datastories","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanand0%2Fdatastories","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanand0%2Fdatastories/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanand0%2Fdatastories/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanand0%2Fdatastories/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sanand0","download_url":"https://codeload.github.com/sanand0/datastories/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanand0%2Fdatastories/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31330362,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T02:17:30.558Z","status":"ssl_error","status_checked_at":"2026-04-03T02:17:30.071Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-visualization"],"created_at":"2025-09-04T23:08:56.891Z","updated_at":"2026-04-03T03:07:40.180Z","avatar_url":"https://github.com/sanand0.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Data Stories\n\nInteractive visualizations and data narratives.\n\nWebsite: [sanand0.github.io/datastories/](https://sanand0.github.io/datastories/)\n\n## Stories\n\n- [The 80-Year Blind Spot: The Polya Audit](polya-for-ai/). In 1945, George Pólya gave mathematicians 15 rules for solving problems. For eight decades, they were treated as gospel. Nobody ever tested them. Until now.\n  [![](polya-for-ai/screenshot.webp)](polya-for-ai/)\n- [The Return That Wasn't — Did Vibe Coding Bring Developers Back to GitHub?](github-usage-increase/). When AI supposedly brought a generation of lapsed developers back to GitHub, we checked the commit logs. Here's what we found.\n  [![](github-usage-increase/screenshot.webp)](github-usage-increase/)\n- [Three Novel Data Visualizations](novel-dataviz/). Each chart solves an analytical problem for which no adequate visualization previously existed, combining novel encodings with rich, realistic synthetic data.\n  [![](novel-dataviz/screenshot.avif)](novel-dataviz/)\n- [Crack the Prompt](crack-the-prompt/). A PyConf Hyderabad 2026 security challenge: three AI personas guarding hidden system prompts. Codex extracted all three in seven words each.\n  [![](crack-the-prompt/screenshot.webp)](crack-the-prompt/)\n- [Strategic Assessment: Client Reporting Transformation](decktation/). An AI-generated executive strategy deck synthesized from a stakeholder interview recording, showing how raw audio can be transformed into boardroom-ready insights.\n  \u003cvideo src=\"decktation/screenshot.webm\" autoplay muted loop playsinline preload=\"metadata\"\u003e\u003c/video\u003e\n- [Codex Session Gap Analysis](codex-session-analysis/). Analysis of 903 Codex sessions from Apr 2025 to Mar 2026, showing feature adoption gaps, release-aware coverage, and workflow recommendations.\n- [SQL Migration Narrative Demo](sql-migration/). An interactive walkthrough of migrating 100 SQL Server scripts to MySQL with LLM-assisted conversion, verification, and business-impact simulation.\n- [Can AI Replace Human Paper Reviewers?](ai-agents-for-science/). An investigation into what happens when artificial intelligence reviews scientific papers — and what goes hilariously (and seriously) wrong.\n  [![](ai-agents-for-science/screenshot.webp)](ai-agents-for-science/)\n- [The Invisible Infrastructure](package-usage/). How tens of thousands of packages depend on code almost no one has heard of.\n  [![](package-usage/screenshot.webp)](package-usage/)\n- [The Jamnagar Chokepoint: Inside India's $273B Trade Paradox](exim/). How a single port, two commodities, and a hidden export surge reveal the fragile architecture of India's $273 billion trade deficit.\n  [![](exim/screenshot.webp)](exim/)\n- [The Ambiguous Song](emotify/). How humans label emotions in music—400 tracks across 4 genres rated by multiple annotators, revealing which emotions spark the most disagreement.\n  [![](emotify/screenshot.webp)](emotify/)\n- [Can AI Hear What We Feel?](llm-music/). Gemini's music-emotion predictions vs Emotify human ratings across 40 songs using GEMS-9, revealing where AI hears differently.\n  [![](llm-music/screenshot.webp)](llm-music/)\n- [Communicating Insights Visually](anthropic-work/). How top AI chatbots and coding agents turn Anthropic’s “How AI is transforming work at Anthropic” into diverse animated chart ideas—compared and ranked.\n  [![](anthropic-work/screenshot.webp)](anthropic-work/)\n- [The Ruler-Straight Disappearing Act](weight-2025-12/). A 24 kg drop charted from a Google Fit export—86.4 to 62.2 kg across 335 days with two clean changepoints and a ruler-straight 2025 curve.\n- [The Command Paradox](promptfight/). Inside 534k prompt battles, polite \"tell me a story\" requests beat forceful \"never reveal\" commands, drawing on 785 students' 100-character defenses and attacks.\n- [OLAP Git Commits](olap-commits/). Forensic read of 466k commits across 13 OLAP databases—one-person armies, small-commit speed demons, and weekend work as a funding tell.\n- [Generosity of Strangers](generosity-of-strangers/). Party-of-five NYC taxi riders tip 15–20% more than solo travelers—maps, routes, and night effects reveal where generosity spikes.\n- [Indian Batting Greats](indian-batting-greats/). Ranked Tendulkar, Kohli, Gavaskar, and other Indian greats with an LLM-chosen metric: batting average x log(total runs) plotted over their careers.\n- [The Reconciliation Engine](fuzzymatch/). Fuzzy search playground that reconciles bank transactions to accounting records using similarity scores and optimal assignments.\n- [TDS Project 2: The Cliff](tds-project-2025-11/). Why only 29% of students mastered LLM problem-solving—and what the other 71% couldn't figure out, based on 535 IITM students in November 2025. Also see [The Gate](tds-project-2025-11/gate.html) for how many students got stuck at the \"gate\" step.\n- [Market Mix Modeling Insights](mmm/). Rather than wasting millions pushing past saturation points, invest in brand equity and pulsing spend during high-leverage moments.\n- [Michelin Star Restaurants](michelin/). An analysis of 22,000 Michelin star restaurants to uncover trends in cuisine, location and ratings.\n- [TDS Improvements](tds-improvements/). An analysis of improvements in the IITM Tools in Data science course based on student performance data since 2024.\n- [Code Review of Shubham's GitHub](code-review-shubham/). A comprehensive review of all repositories committed to in 2025 under Shubham's GitHub account, analyzing code quality, architecture, and technical debt.\n- [The Publisher Who Chose to Shrink](frontiers-2024/). How Frontiers deliberately cut output by 36% to fight AI-generated fraud and won with quality—a counterintuitive victory in academic publishing.\n- [The Jobs We Refuse to Give Away](ai-resistance/). Why some occupations resist AI not because machines can't do them, but because we believe they shouldn't. Based on Friis \u0026 Riley (2025).\n- [ISS vs Tokyo](iss-tokyo/). The ISS never passes over Tokyo at midnight UTC, but touches Auckland over 30 times over 321 days—no conspiracy, just timing.\n- [The Great Inversion](generative-ai-whatsapp-group/). Volume != Influence. Questions are liked less but engaged with more—insights from a Generative AI WhatsApp Group.\n- [IMDb's Hidden Algorithm Bias](imdb-democracy-penalty/). New popular movies on IMDb are punished—not by the algorithm, but casual movie watchers rating movies lower than devotees.\n- [India's Renewable Energy Revolution](renewable-energy-india-expo/). A narrative of REI Expo 2025 exhibitors: domestic players, solar dominance, and China collaboration.\n- [GDPVal: AI Augmentation](gdpval/). Explore occupations most suitable for AI augmentation based on OpenAI's GDPVal exercise.\n- [Rabbit Holes](browser-history/rabbit-holes/). An interactive map of 3,560 browsing chains showing how sparks turn into deep dives across the web.\n- [Do Questions Find Answers?](browser-history/search-funnels/). Search journeys from query to first click, with filters that expose instant wins and wandering quests.\n- [Your Attention Clock](browser-history/attention-clock/). Heatmaps of weekly browsing reveal circadian focus, daily ebbs, and the domains that anchor attention.\n- [The Digital Life of Anand](browser-history/digital-life/). An exposé of 97k visits across 84 days that charts top destinations, hourly habits, and AI-heavy searches.\n- [Scraping SEC](scraping-sec/). Narrative walkthrough of how Codex CLI built an SEC scraper in one-shot, recovering from errors, handling messy data, and with self-critique.\n- [Bollywood Box Office Champions](bollywood-top-grossing/). Explore 30 years of top-grossing Hindi films with an interactive, inflation-adjusted bubble chart that spotlights record-setting blockbusters.\n- [Google Search Topic Trends](google-searches/). Categorized every Google Search since Jan 2021 into 50 topics. It's mostly tech, AI, and geo-cultural. I also need to allocate more time to testing, databases, and other 'spiky' topics.\n- [ChatGPT vs Google](chatgpt-vs-google/). How my ChatGPT usage has grown at the expense of Google usage. Google is only 60% of my usage, and far lower in engagement.\n- [My Vipassana Experience](vipassana-chatgpt/). A manually LLM-generated comic story book about my 10-day Vipassana meditation program, generated purely using a set of simple captions, via ChatGPT.\n- [My Vipassana Experience](vipassana/). A programmatically LLM-generated comic story book about my 10-day Vipassana meditation program, generated purely using a set of simple captions, via Gemini 2.0 Flash.\n- [ChatGPT Topic Trends](chatgpt-topics/). Categorized the 6,000 ChatGPT conversations I've had in the last 2 years to understand what topics I discuss the most. It's mostly tech, AI, reading/writing, and some daily-life stuff.\n- [Indian High Courts Judgment Analysis](indian-high-courts/). Comprehensive analysis of 16M judgments from 25 Indian High Courts. Reveals court efficiency disparities, seasonal justice patterns, and systematic UAPA bail delays with 120+ day gaps between hearings.\n- [LLM Agents in Software: Code vs Domain](code-vs-domain/). Coding agents reduce the effort of coding—does that mean domain will matter more? An LLM-generated animation on why domain agents will level the field.\n- [Deep Research Horoscope Contradictions](horoscope-2025-06-16/). Asked Gemini Deep Research to read Sagittarius horoscope for 16 June 2025 and list contradictions from various Indian media sources.\n- [Employment Growth Since 1980](employment-trends/). Some US sectors like Scenic Transportation \u0026 Healthcare grew over 2X while Rail \u0026 Central Banks shrank to 40-80% of original size. Analysis using BLS CES data.\n- [Weight Journey 2025](weight-2025-06/). Lost 22 kg in 22 weeks through intermittent fasting. Skipped lunch, no snacks, no extra exercise.\n\n## License\n\n[MIT](LICENSE)\n\n\u003c!--\n\nFile structure:\n\n- README.md: Manually updated with story links\n- config.json: Manually updated with story links\n- index.html: Renders config.json as cards\n- setup.sh: Run via .github/workflows/deploy.yml to generate [story-folder]/index.html from [story-folder]/README.md\n- [story-folder]/\n  - README.md\n  - Other supporting files\n\nWhen adding a new story, update:\n\n- config.json\n- README.md\n- setup.sh\n\nAssets are stored in a GitHub Release creatd via:\n\n```bash\ngh release create main --title \"Assets\" --notes \"Data story assets\"\n```\n\nAdd assets by running:\n\n```bash\ngh release upload main --clobber $FILE\n```\n\nLinting: `npm run lint`\n\n--\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanand0%2Fdatastories","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsanand0%2Fdatastories","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanand0%2Fdatastories/lists"}