A few months ago, I was stuck in a frustrating loop. My back hurt after long workdays, and I kept buying and returning office chairs that felt fine in the showroom but became unbearable after a week. The problem wasn't the chairs themselves — it was that every "best chair" review out there was written for some generic average person, not for me.

I'm 6'0". My girlfriend is 5'2". We sit completely differently. But all the top‑10 lists and Wirecutter reviews treated us like the same person. So I went down a rabbit hole: I started reading thousands of Reddit comments from real people — short, tall, heavy, light, with back pain, tailbone pain, people who sit cross‑legged, people who recline all day. And it hit me that the best recommendations were already out there. They were just buried in threads.

So I built a tool to organize that chaos. Here's how it works and what I learned along the way.


The data: no scraping, just a lot of reading

I didn't write a scraper or use any API. I just spent weeks reading r/OfficeChairs and r/Ergonomics, collecting real quotes from real users. Every time someone said something like "I'm 5'2 and this chair hurts my thighs after an hour", I added it to a spreadsheet.

Over time, patterns emerged. For example, shorter users almost universally complained about chairs with non‑adjustable seat depth. The Herman Miller Aeron — one of the most recommended chairs on the internet — got a ton of complaints from people under 5'5" because the seat frame digs into their legs.

Taller and heavier users, on the other hand, loved the Aeron. The consensus was shockingly consistent once you filtered by body type.

This spreadsheet eventually became my chair database — about 10 chairs, each with tags for height range, weight range, pain points, sitting styles, and "community sentiment" based on how real people actually felt about them.


The algorithm: hard filters and community sentiment

Instead of a generic "best chair" ranking, I built a recommendation engine with two layers:

  • Hard filters — these automatically exclude chairs that the community has proven won't work for someone like you. If you're under 5'5" and a chair doesn't have adjustable seat depth, it's out. If you need a headrest and a chair doesn't support one, it's out. No debate.

  • Community sentiment weighting — for chairs that pass the filters, I score them based on how well they match your specific profile. Height and weight matches get the most weight. Pain point relief gets a big boost. And I add a "community sentiment" score based on what real users with similar body types have said about each chair.

The whole thing runs as a static HTML page. No backend, no database — just a JSON‑like object and some vanilla JavaScript.


The tech stack: boring but intentional

I wanted this tool to be fast, free to run, and easy to maintain. So I went with:

  • Plain HTML, CSS, and JavaScript — no frameworks, no build step
  • Cloudflare Pages for hosting — free, global CDN, automatic HTTPS
  • GitHub for version control — private repo, free
  • Cloudflare Workers + KV for storing user feedback

The whole site costs me $0/month to run. The only expense was the domain name. For a personal project that might get a few thousand visitors a month, this setup is hard to beat.


Things I got wrong (so far)

  • I underestimated mobile dropdown menus. On iOS Safari, the native <select> shows a spinner with "Done" and "Cancel" buttons in whatever language your phone is set to. If your phone is in Chinese, the tool showed Chinese prompts. I had to build a custom dropdown component in JavaScript to keep everything in English.

  • I initially wrote the "About" story like a marketing page. It felt polished and professional — and totally wrong. A friend pointed out it sounded like a startup pitch, not a person sharing a real struggle. I rewrote it in a more casual, first‑person voice, and the feedback immediately improved.

  • My first attempt at SEO was bad. I had no structured data, no sitemap, no meaningful meta descriptions. Adding JSON‑LD, a sitemap.xml, and fixing the page titles took maybe 30 minutes and made a huge difference in how Google sees the site.


What I'm doing next

The chair tool is live and working. I'm now collecting user feedback (via a simple form that stores responses in Cloudflare KV) to improve the recommendations and add more chairs.

I'm also publishing research notes on the site — basically my raw data‑digging logs, written in a casual notebook style. The first few are about tailbone pain, the Aeron vs Leap debate, and what short users actually recommend. These aren't polished articles; they're messy, honest, and built from real community feedback.

Eventually, I want to apply this same model to other "hard to choose" products — standing desks, pet food, maybe mattresses. The core idea is the same: real people already know what works. The job is just to organize what they've said.


Try it (and tell me what sucks)

The tool is live at truechoose.com. It's completely free, no ads, no sign‑up.

If you try it and something feels off — a bad recommendation, a confusing question, a weird UI quirk — I'd genuinely love to hear about it. This is a one‑person project, and every piece of feedback helps me make it better.

You can also check out my research notes at truechoose.com/notes if you're curious about the raw data behind the recommendations.


Have you built a recommendation tool or worked with messy community data? I'd love to hear your approach — drop a comment below.