Domapus visualizes U.S. housing market data at the ZIP-code level.
Built with React, TypeScript, and MapLibre GL JS, it makes nationwide housing trends interactive and accessible.
- Interactive ZIP-level map updated monthly
- Metrics: median price, inventory, DOM, listings, sales, and more
- Hover tooltips, and ZIP search
- Quintile-based legend for data distribution
- Export maps to PNG or PDF with title and legend options
-
Clone the repository
git clone https://github.com/Jasperc2024/Domapus.git cd Domapus -
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:8080/Domapus/
npm run build && npm run previewsee tree.txt
| Metric | Description |
|---|---|
| Median Sale Price* | Typical price of sold homes |
| Median List Price | Typical asking price |
| Median Price per Sq Ft* | Cost per square foot |
| Homes Sold | Closed transactions |
| Pending Sales | Homes under contract |
| New Listings | Homes newly added |
| Inventory | Homes available for sale |
| Months of Supply | Time to sell all inventory at current rate |
| Median Days on Market* | Time from listing to pending |
| Sale-to-List Ratio* | Sale price Γ· asking price |
| % Sold Above List | % of homes sold above asking price |
| % Price Drops | % of listings that reduced price |
| % Off Market in 2 Weeks | % of homes selling within 14 days |
* Available as choropleth metric
Frontend: React 18, TypeScript, Vite, Tailwind CSS, shadcn/ui
Visualization: MapLibre GL JS
Data: Redfin (market), U.S. Census (ZCTA)
Data Processing: Github Action, Python
Export Tools: html2canvas, jsPDF
# Base URL for the application (set in vite.config.ts)
VITE_BASE_URL=/Domapus/
# Data source URLs (configured in components)
VITE_DATA_CDN=https://cdn.jsdelivr.net/gh/Jasperc2024/Domapus@main/public/data/zip-data.jsonThe project uses Vite with custom configuration for:
- Base path configuration for GitHub Pages
- Asset optimization and chunking
- TypeScript compilation with strict mode
- Tailwind CSS with custom design system
- Redfin real estate market data (Update monthly)
- U.S. Census ZIP Code Tabulation Areas (ZCTA)
- 100% client-side processing
- All assets served securely over HTTPS
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes with proper TypeScript types
- Test your changes:
npm run build && npm run preview - Run linting:
npm run lint - Commit your changes:
git commit -m 'Add amazing feature' - Push to your branch:
git push origin feature/amazing-feature - Open a Pull Request
- TypeScript strict mode enabled
- ESLint configuration with React and accessibility rules
- Prettier code formatting
- Component-based architecture with clear separation of concerns
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: Available in this README and inline code comments
- Issues: Report bugs and request features via GitHub Issues
- Discussions: Join the conversation in GitHub Discussions
- Email: Contact the maintainer at jasperc.wk@gmail.com
If you find Domapus useful, consider supporting its development:
- Redfin for providing comprehensive real estate data
- U.S. Census Bureau for ZIP code boundary data
- MapLibre GL JS Community for the excellent mapping library
- React & Vite Teams for the modern development experience
- shadcn for the beautiful component library
Making housing data accessible and actionable for everyone
