projects

Gun Deals Scraper

January 28, 2026
Updated Mar 21, 2026
projectactiverevenue

πŸ”₯ Gun Deals Scraper

Goal: Scrape r/gundeals, score deals by historical value, monetize via affiliate links.

Target: MVP in 2-3 days β†’ First revenue within a week


πŸ“‹ Kanban

πŸ”œ Backlog

  • Email/SMS alerts for 5-fire deals (premium feature)
  • Ammo price tracker integration
  • Coupon stacking suggestions
  • Mobile-friendly PWA
  • Browser extension version

πŸ“ To Do

  • Research: Identify top affiliate programs (Brownells, PSA, etc.)
  • Affiliate: Implement affiliate link injection
  • Deploy: Set up auto-start on Mac Mini (launchd)
  • Cron: Schedule hourly ingestion
  • Alerts: Slack notifications for 4-5 fire deals

🚧 In Progress

  • UI: Test web interface with real data
  • Deploy: Set up persistent hosting

βœ… Done

  • Idea validation: Confirmed demand (Ammoseek exists, subreddit active)
  • Project kickoff: Created this tracking doc
  • Research: Analyzed r/gundeals post structure
  • Scraper: Built Reddit JSON API integration
  • Parser: Extract price, item name, category, retailer from titles
  • Database: SQLite schema with deals, price history, categories
  • Scoring: Fire rating algorithm (1-5 πŸ”₯) based on historical pricing
  • Ingest: Full pipeline (scrape β†’ parse β†’ analyze β†’ store)
  • UI: FastAPI web interface with filters
  • First data: Ingested 100 deals, 87 price points

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Reddit API    │────▢│    Scraper      │────▢│    Database     β”‚
β”‚  (r/gundeals)   β”‚     β”‚   (Python)      β”‚     β”‚   (SQLite/PG)   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                         β”‚
                        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”              β”‚
                        β”‚   Price History β”‚β—€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                        β”‚    Analysis     β”‚
                        β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                 β”‚
                        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                        β”‚   Fire Rating   │────▢│    Web UI       β”‚
                        β”‚   (1-5 πŸ”₯)      β”‚     β”‚   (Next.js)     β”‚
                        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“Š MVP Features (v0.1)

FeaturePriorityEffortNotes
Scrape new r/gundeals postsP02hReddit API or RSS
Store deals in databaseP01hSQLite for MVP
Compare to 90-day price historyP03hNeed historical data source
Calculate fire rating (1-5)P02hBased on % below average
Simple web UIP14hList view, sortable
Affiliate link injectionP12hMap retailers β†’ affiliate URLs
"I saved you $X" trackerP22hGamification
Deploy to productionP12hVercel or Mac Mini

Total estimated MVP time: ~18 hours of work = 2-3 days


πŸ’° Revenue Model

Phase 1: Affiliate

  • Gun/ammo retailers have 2-8% commission
  • Key programs to join:
    • Brownells
    • Palmetto State Armory
    • Primary Arms
    • Optics Planet
    • Aero Precision

Phase 2: Premium ($5/mo)

  • Instant alerts for 5-fire deals
  • Custom filters (caliber, category)
  • Price drop notifications

Phase 3: Donations

  • "This tool saved you $X this month"
  • "Buy me a box of ammo" prompt

πŸ” Research Notes

r/gundeals Structure

  • Flairs: [Handgun], [Rifle], [Ammo], [Parts], [Optics], [Accessories], etc.
  • Title format: Usually [Type] Item Name - $Price (notes)
  • Deal validation: Community upvotes/comments indicate quality
  • OOS tracking: Posts often updated when out of stock

Historical Data Challenge

  • Reddit only keeps ~1000 posts per subreddit via API
  • Options:
    1. Build our own history going forward
    2. Use Pushshift/Arctic Shift archives
    3. Scrape gun.deals (aggregator site)
    4. Partner with existing data sources

Competition

  • Ammoseek: Ammo-focused, no fire rating
  • gun.deals: Aggregator, less analysis
  • WikiArms: Price comparison
  • Gap: Nobody does the "how good is this deal historically" analysis well

πŸ“… Timeline

Day 1 (Tonight/Tomorrow)

  • Set up project structure
  • Build Reddit scraper
  • Create database schema
  • Start collecting historical data

Day 2

  • Implement fire rating algorithm
  • Build basic web UI
  • Test with live data

Day 3

  • Add affiliate link mapping
  • Deploy MVP
  • Post to r/gundeals for feedback (if allowed)

Week 1+

  • Iterate based on feedback
  • Add premium features
  • Apply to affiliate programs

🎯 Success Metrics

MetricTarget (Month 1)
Daily active users100+
Affiliate clicks500+
First commission$50+
Premium signups10+

πŸ“ Session Log

2026-01-29 (Night Session)

  • Project kickoff
  • Created kanban and architecture doc
  • Built complete MVP in one session:
    • Reddit scraper (JSON API, 100 posts/fetch)
    • Title parser (extracts price, item, category, retailer)
    • SQLite database (deals, price_history, categories)
    • Fire rating analyzer (compares to historical prices)
    • Ingest pipeline (scrape β†’ parse β†’ analyze β†’ store)
    • FastAPI web UI (filters by category, fire rating, sort)
  • First ingestion: 100 deals, 87 price points
  • Most deals show no fire rating yet (need historical data to build up)
  • One deal hit πŸ”₯πŸ”₯πŸ”₯ already!

Last updated: 2026-01-29 00:20 PST