
What happens when you cross Argentina's national budget, 110K public contracts, and 74K campaign donations into one tool. Scraping ASP.NET ViewState, normalizing 11 years of inflation, and the long war against Vercel to make it all load on mobile.
Developer of firstcommit.io. I ship with AI and share the journey.
11 stages to follow
Paste this in your AI coding tool to build your own version, guided by the approach in this guide.
Build the project from this First Commit guide: a059c65a-6cf9-40d2-adf9-dc86ac133732Mapped Argentina's public data landscape: SITIF (national budget, JSON), COMPR.AR (procurement, ASP.NET portal), CNE (campaign donations, CSV). Got an API token from Presupuesto Abierto, wrote in a rule: don't hammer the server.
~80 messagesBuilt the terminal-aesthetic Next.js shell with Tailwind. Dark canvas, 1px borders, monospace tables, no rounded corners. Set up Supabase tables for budget snapshots, providers, and historical adjudications.
~100 messagesBuilt the cron-driven ingestion that snapshots SITIF daily. Each snapshot is immutable. The diff engine compares against yesterday and emits BOOST/HALT/RECT events so journalists can spot overnight changes.
~120 messagesThree-level navigation: treemap of jurisdictions, filterable table of programs with computed columns (gap de gestión, aumento discrecional), and per-program dossier with historical timeline. Deep-linkable URLs.
~150 messagesBuilt a resumable multi-worker scraper for the DevExpress/ViewState-heavy COMPR.AR portal. Five parallel sessions, cookie juggling, PostBack simulation. Pulled 110K adjudications from 2015-2026.
~220 messagesAdded provider profiles linking historical contracts to 2026 budget programs. Imported 74K campaign donations from CNE. Built inflation normalization from INDEC's IPC series (119 months).
~180 messagesBuilt seven insight visualizations on raw Canvas with custom hit detection: distribution histogram, fraccionamiento scatter, boxplot by procedure, before/after donation, provider×organism heatmap, cumulative timeline, co-occurrence network. No chart libraries.
~200 messagesCaught seven systemic data-quality issues: ARS/USD mixing in aggregations, tipo_procedimiento accent variants, missing inflation-adjusted totals, NULL date handling, IPC out-of-range dates, empty histogram bins, ambiguous unit labels. Fixed all of them with DB migrations and query changes.
~100 messagesSite worked locally, 500'd on production. Through five separate bugs: connection pool limits, env var trailing whitespace, Supabase REST client returning HTML, pg returning numerics as strings, pg returning dates as Date objects instead of ISO strings.
~180 messagesAudited 23 files for mobile issues: 8-9px fonts, 6-column grids on 375px screens, percentage-width treemaps, accidental chart taps. Fixed everything in parallel across pages and chart components.
~150 messagesSwitched all pages from force-dynamic to revalidate = 3600 (novedades at 1800) so the DB gets hit once per hour per page instead of every request. Added author credit and firstcommit.io link to footer.
~30 messagesNo comments yet
Developer of firstcommit.io. I ship with AI and share the journey.
11 stages to follow
Paste this in your AI coding tool to build your own version, guided by the approach in this guide.
Build the project from this First Commit guide: a059c65a-6cf9-40d2-adf9-dc86ac133732






