Free online calculators for everyday math problems. Making boring math easy.
A network of highly specific, niche calculators designed to capture long-tail search traffic and provide genuine value to users searching for specific calculation solutions.
This project implements a collection of SEO-optimized calculators targeting specific user needs:
- Freelance Day Rate Calculator - Compare freelance rates to salaried positions
- Wedding Alcohol Estimator - Calculate alcohol quantities for events
- Hourly to Annual Salary Converter - Convert hourly rates with tax adjustments
- Savings Goal Calculator - Plan savings with inflation adjustment
- Side Hustle Profitability Calculator - Analyze side business viability
| Technology | Purpose |
|---|---|
| Astro | Static site generation, SEO optimization |
| React | Interactive calculator components |
| Tailwind CSS | Utility-first styling |
| TypeScript | Type safety |
| Vercel | Hosting & deployment |
- Node.js 18.x or higher
- npm 9.x or higher
# Clone the repository
git clone https://github.com/yourusername/boring-math-calculators.git
# Navigate to project directory
cd boring-math-calculators
# Install dependencies
npm install
# Start development server
npm run devThe site will be available at http://localhost:4321
| Command | Action |
|---|---|
npm run dev |
Start development server at localhost:4321 |
npm run build |
Build production site to ./dist/ |
npm run preview |
Preview production build locally |
npm run astro |
Run Astro CLI commands |
boring-math-calculators/
├── src/
│ ├── layouts/
│ │ ├── BaseLayout.astro # Global layout (header, footer, SEO)
│ │ └── CalculatorLayout.astro # Calculator page layout
│ │
│ ├── components/
│ │ ├── common/ # Shared UI components
│ │ │ ├── Header.astro
│ │ │ ├── Footer.astro
│ │ │ └── SEOHead.astro
│ │ │
│ │ └── calculators/ # Calculator components
│ │ ├── shared/ # Reusable calculator parts
│ │ │ ├── InputField.astro
│ │ │ ├── ResultDisplay.astro
│ │ │ └── CalculatorCard.astro
│ │ │
│ │ └── FreelanceDayRate/ # Individual calculator
│ │ ├── FreelanceDayRateCalculator.tsx
│ │ ├── calculations.ts
│ │ └── types.ts
│ │
│ ├── pages/
│ │ ├── index.astro # Homepage
│ │ └── calculators/ # Calculator pages
│ │ └── freelance-day-rate-calculator.astro
│ │
│ ├── styles/
│ │ └── global.css # Global styles + Tailwind
│ │
│ └── utils/ # Utility functions
│ ├── formatters.ts
│ └── validators.ts
│
├── public/ # Static assets
│ ├── favicon.svg
│ └── robots.txt
│
├── docs/ # Documentation
│ ├── SPEC.md # Project specifications
│ ├── DESIGN.md # Design system
│ ├── ADDING_CALCULATORS.md # How to add calculators
│ ├── SEO_CHECKLIST.md # SEO checklist
│ └── MONETIZATION.md # Monetization guide
│
├── astro.config.mjs # Astro configuration
├── tailwind.config.mjs # Tailwind configuration
├── tsconfig.json # TypeScript configuration
└── package.json
See docs/ADDING_CALCULATORS.md for a step-by-step guide on creating new calculators.
Quick summary:
- Research long-tail keyword (< 200 monthly searches)
- Create calculator folder in
src/components/calculators/ - Implement
types.ts,calculations.ts, andCalculator.tsx - Create page in
src/pages/calculators/ - Write SEO content (300-500 words + 5-10 FAQs)
- Test and deploy
| Document | Description |
|---|---|
| SPEC.md | Complete project specifications |
| DESIGN.md | Design system and visual guidelines |
| ADDING_CALCULATORS.md | How to create new calculators |
| SEO_CHECKLIST.md | Pre-launch SEO checklist |
| MONETIZATION.md | AdSense and affiliate setup |
Our design is built on principles of trust and clarity:
- Color: Blue-dominant palette for trust (used by 70%+ of financial institutions)
- Typography: Inter font with tabular lining figures for numbers
- Layout: Mobile-first, single-column calculator inputs
- Accessibility: WCAG 2.1 AA compliant
See docs/DESIGN.md for the complete design system.
| Metric | Target |
|---|---|
| Lighthouse Performance | 90+ |
| First Contentful Paint | < 1.0s |
| Largest Contentful Paint | < 2.0s |
| Cumulative Layout Shift | < 0.1 |
# Install Vercel CLI
npm install -g vercel
# Login to Vercel
vercel login
# Deploy
vercel --prodThe site auto-deploys on push to main branch when connected to Vercel.
| Variable | Required | Description |
|---|---|---|
PUBLIC_SITE_URL |
Yes | Production URL for sitemap |
PUBLIC_GA_ID |
No | Google Analytics 4 ID |
PUBLIC_ADSENSE_ID |
No | AdSense publisher ID |
- Fork the repository
- Create a feature branch (
git checkout -b feature/new-calculator) - Commit your changes (
git commit -m 'feat: add new calculator') - Push to the branch (
git push origin feature/new-calculator) - Open a Pull Request
<type>(<scope>): <subject>
Types: feat, fix, docs, style, refactor, test, chore
MIT License - See LICENSE for details.
- Astro - The web framework
- Tailwind CSS - Styling framework
- Heroicons - Icon library
- Inter Font - Typography
Built with Astro and deployed on Vercel.