A data-driven website that tracks the historical prices of everyday goods. Compare current prices to historical data using official statistics rather than anecdotal evidence.
This website allows you to easily track and visualize the price trends of common goods over time. It addresses the common debate about inflation and rising costs with factual data.
Data is sourced from the Bureau of Labor Statistics (BLS), providing reliable and official price information. If you want to explore the data yourself, visit the BLS Data Query Tool.
- Historical price charts for common goods
- Categorized items (groceries, meats, produce, etc.)
- Interactive visualizations with Recharts
- Data-backed inflation tracking
- Mobile-friendly design with Tailwind CSS
- LLM-powered price analysis using Anthropic Claude
- Track everyday essentials (eggs, milk, bread, gas)
- Track meat products (beef, chicken, bacon, etc.)
- Track produce (apples, oranges, bananas, etc.)
- Organize items into categories with dedicated pages
- Add LLM cache versioning system
- Improve mobile UI/UX
- Create a Github issue or PR to contribute!
- Astro v5.7+ - Web framework
- React 19 - UI components
- TailwindCSS v4 - Styling
- Recharts - Data visualization
- Cloudflare Pages - Web hosting
- Cloudflare Workers - Data fetching
- Cloudflare R2 - Data storage/caching
- Github - Source control
- Anthropic Claude - Price analysis via LangChain
- Node.js (v18+)
- pnpm (v10+) - This project uses pnpm as its package manager
- Clone the repository
- Install dependencies:
pnpm install - Be sure to set up your environment variables in
.env.local - Start the development server:
pnpm run dev - Visit
http://localhost:3000in your browser
pnpm run build
The application uses a JAMstack approach with pre-fetched data to minimize API calls:
- A Cloudflare Worker (pog-cache repository) fetches data from the BLS API
- The data is processed and stored in Cloudflare R2 storage
- The website retrieves this cached data rather than calling the BLS API directly
- The worker runs on a scheduled basis to keep data current
- LLM analysis of price trends is cached with version control to optimize costs
src/pages/- Astro page components and routingsrc/components/- Reusable UI components (Astro and React)src/lib/- Utility functions for data processing and analysissrc/layouts/- Layout components for consistent page structuresrc/styles/- Global CSS and Tailwind configurations
Contributions are welcome! Feel free to open an issue or submit a pull request.