My Reddit-based Chair Recommendation Tool
The Data Strategy
I skipped the APIs and scrapers and went for a manual deep dive into r/OfficeChairs and r/Ergonomics. I spent weeks logging specific user quotes into a spreadsheet. The patterns were immediate: shorter users consistently flagged the Herman Miller Aeron for its seat frame digging into their legs, while taller users praised it.
I turned this into a structured database of about 10 chairs, tagging each with:
- Height and weight ranges
- Specific pain points (tailbone, lower back)
- Sitting styles (cross-legged, reclining)
- Community sentiment scores
The Logic
I avoided a "top 10" ranking in favor of a two-layer filtering system. First, the tool applies hard filters. If you are under 5'5" and a chair lacks adjustable seat depth, it's automatically disqualified.
Second, it uses community sentiment weighting. For chairs that pass the hard filters, I score them based on how closely your profile matches the successful users in my database. Height and weight matches carry the most weight, followed by specific pain point relief.
Technical Deployment
I kept the stack intentionally "boring" to ensure it stayed free and fast. This is a real-world example of a lightweight AI workflow for data organization without needing a heavy backend.
- Frontend: Vanilla HTML, CSS, and JavaScript (no frameworks)
- Hosting: Cloudflare Pages
- Version Control: GitHub
- Data Storage: Cloudflare Workers + KV for feedback
The entire operation costs $0/month outside of the domain name.
Lessons Learned
The biggest headache wasn't the logic, but the UI. I initially used native HTML select menus, but iOS Safari renders those with system-language prompts (e.g., "Done" or "Cancel" in the user's native tongue). To keep the experience consistent, I had to scrap the native elements and build a custom JavaScript dropdown.
I also learned that "professional" copywriting kills trust. My first version of the "About" page sounded like a corporate pitch. I had to rewrite it to sound like a human sharing a struggle to actually get people to use the tool.