Firstly, congrats on the launch. Designing and implementing a new concept from scratch, by yourself, is definitely fraught with difficulties. It's hard to know if what you're designing is "right" and if you're implementing "the right way". Sticking with it for an entire year and actually launching is definitely something you should feel good about.

I think this is a great idea, and for a first version the execution is actually quite good. Once I figured it out, I enjoyed using it and flew through all of the cards. I looked at a lot of matches and even sent a few messages. Overall, I can see myself coming back for random chats from time to time.

Here is my feedback, in order of what I perceive to be most important.

1. It was not at all obvious to me how to swipe. I tried swiping the card but it didn't move. So I clicked the arrows. Since I "agreed" with the first 4 or so cards, I did not realize the arrows were to go back and forth. (In fact, I would not have ever expected back and forward to be an option). Then I realized that the "help button" thing was actually how to slide, and I got it from there.

I suggest you make the slider thing look "slideable" and obvious that left is disagree (red), right is agree (green). Right now, it definitely is easy to see it as a "help" button.

I also suggest you make the card navigation arrows not ambiguous -- I think it is fair to say people will assume they mean "agree" and "disagree" rather than "next" and "prev". Either provide context so that it's obvious what they do, or use words "next", "prev".

Here is a crappy mock-up that hopefully shows what I mean: https://jsbin.com/wekuzebasu/ - In this shows progress and is obvious what next/prev do, and (for me at least) it is much more obvious what the call to action is, and how to operate it. (You could replace "|||" with "<->", or show arrows next to the slider circle for even more emphasis).

2. I really love the "percent" agree/disagree. I think that's way better than just "yes/no" and it greatly increases my confidence that I'll get better results.

3. I think your initial card set is actually quite good. There are a few where it is ambiguous of "left" and "right" mean. Agree / Disagree?Like / Dislike? Support / Don't support? Care / Don't care?

4. If I were you, it would be very easy for me to worry about spam/abuse/gaming of this. But, honestly, your biggest problem will be overcoming the network effect to get a critical mass of users to make this better. If for an average user there are more similar people, and they are closer, it becomes much more compelling for more users to join -- leading a virtuous cycle. If you want this to catch on, your #1 concern should be getting the most users in the least amount of time.

Handling spam/abuse is a problem you want to have, and I'd put it off until it's necessary and/or until it's clear it is slowing user growth.

5. I've read all of your comments, and I think you're making some very good decisions and are putting a lot of thought into this. I hope you stick with it.

6. The clustering is good and does provide some level of "privacy" -- though for my "similar" people I often do not see any clusters at all. Anyway, this seems like the type of app where I want people to know my opinion on stuff, and if there's a question for which I want my opinion to be unknown, I'll just skip it.

-----

Now a question regarding the matching. Is there a difference between "unanswered", "skipped", "0% (as opposed to -X% or +X%)" ? Consider these cases:

1) I don't care about a card. This is distinct from being "0%" -- I don't want this card counted towards producing my matches. If someone is 100% or -100% on it, don't penalize the similarity.

2) I am neutral about a card, but I do care if somebody is +/- on it. Do consider this in similarity.

3) I have not answered a card. This should not count towards similarity.

4) I previously had an opinion on a card, but now I don't care. How do I "reset" it?

Depending on how this is handled, you'll need to change the UI to make it more clear. Eg, you may need a "skip" button.