Show HN: A programmer's approach to finding gifts (givetheperfectgift.co)

82 points by cvanvlack ↗ HN
Hey Folks,

I’ve been really annoyed with the search part of finding gifts.

It’s hard to use keyword search for something when it’s an “I’ll know it when I see it” kind of deal.

So I thought, what if we scraped/indexed TONS of products and then just focused on removing the things we don’t want and then see what’s left to see if there’s anything cool?

I built it in Flutter so it's both iOS and Android but it could be web too.

I’ve only just started the scraping/tagging of products and if anyone has suggestions for bulk tagging images/content I would love to hear them. That’s the current bottleneck.

Any feedback would be welcome!

cvanvlack AT gmail DOT com if you want to discuss 1-on-1.

84 comments

[ 2.2 ms ] story [ 49.9 ms ] thread

  while (gift == null)
    gift = tryGetAny(giftShop, 1); // bug: programmer might never return ever
Looks very interesting might give it a try. Honestly I would start to crawl the usual suspects like Amazon. You could even use the constraints as a search term. "gift male" might net you some results to start with and you could already classify the results respectively. And then maybe use the info from these articles to crawl more sites for similar stuff.
Yeah, I am making my Amazon web crawler/scraper now. It’s the tags that are tricky.

Regarding “gift male” I am actually going in the opposite direction. I want to stay away from generic and try to go unique. For instance, a few people have put in “3D Printing” as tags for their husbands so I have been scraping ideas that might be agnostic of the 3D printer model they have. Reddit has been a huge help!

When you are getting a gift that's not for you, you're probably not into "their thing" nearly as much. So product discovery is kind of what you need.

Love the idea but would never make an account to try something like this - good luck!
Thanks for the feedback! No account creation necessary. Just an app download.

I know that with Flutter you can also make web apps so I'll see how hard it is to switch it to a web version to lower the barrier to entry even further.

Got anything for folks with app fatigue? I don't use a smartphone.
I'll play with Flutter today and see how easy/hard it would be to add web.

I know the formatting will be brutal once you switch to a desktop browser because the whole idiom for interaction changes. Maybe it won't suck too bad though...

Even on mobile, I'm not going to install an app unless I know it works well. Maybe it's possible to generate a webapp? Often, websites will offer a webapp with a funnel to try to get people to sign up for the actual app itself.

Either way, GL. Keep building!

> I know the formatting will be brutal once you switch to a desktop browser

I use Lynx as my main, bring it.

                                  &&&&&     &&&%                                
                               &&    &&&&  &&%   &&                             
                               &&&&    & &&,&   &&&                             
                                 &&&&&  .&&&.                                   
                                   &&&&    %&&&                                 
                                     &&&     &&&                                
                             &&&&&&&&&&&&&&&&&&&&&&&&&                          
                             &&&        &&&        &&&                          
                              &&&&&&&&&&&&&&&&&&&&&&&                           
                              /&&       &&&       &&                            
                              /&&       &&&       &&                            
                              /&&       &&&       &&                            
                               &&%      &&&      &&&                            
                                &&&&&&&&&&&&&&&&&&&
Love the concept.

Having ported a Flutter mobile app to web before, it was simple.

One feedback: The spacing between rows of content gets too big on my vertical pc screen. It seems to me you are trying to make one row take the whole height of the screen.

Feel free to contact me, I would love to contribute. My email is in my profile :)

(comment deleted)
Alright, now there's no account creation AND no app download.

I had hoped using Flutter would pay off!

I would only recommend trying on a mobile browser. The swiping doesn't work on desktop yet.

https://givetheperfectgift-app.web.app/

"Beets" = "what kind of friends does this guy have?" The show reference is super funny. Nice!
BEETS, BEARS, BATTLESTAR GALACTICA!!!!!
I really like this idea but I'm put off by having to enter lots of other people's personal information - particularly dates of birth - but also their interests.

Limiting the date of birth to the year of birth might help - although I guess you want to be able to remind me when it's their birthday. Perhaps just don't remind me about that - I don't need that.

Don't know if you can do this already, but being able to set a budget would be good.

Yeah the video is a little old. I got that feedback a number of times and removed/made optional anything that a user might feel uncomfortable sharing.

I have the “training” part now depends on the thumbs up/thumbs down. As you thumbs up I ask if you want to add those tags. If you thumbs down I ask if you want to stop seeing products with those tags.

My thinking was how can I train something super quick to show me cool stuff and remove crap

OK - well I gave it a try.

I want to see the cost of the gift on the image - even if it's not guaranteed to be exactly correct when I click through. I just need to know this item is $20, $200 or $2000. For me this is critical.

The one thing that caught my eye as a possible gift was out of stock when I clicked through. It would be better to avoid showing it in the first place - although I appreciate that's not an easy problem to solve.

I might actually use this app. Nice.

Yeah, I can start looking into how to pull that information too.

I know there are even broken links in there as merchants are changing their images/redirects that I haven't purged. All in time!

Thank you for taking the time!!!

Suggestion: without network access the app is blank with no messages, might want to add a note
Yeah, there are lots of places in the app where if something goes wrong, it's a failwhale.

But I figured better to get it out there and if no one cares then why worry about the failure cases?

If you want to use an app to find a gift for someone... just give them cash.
Yeah, I got sick of trading cash back and forth with people. It started to seem pointless.

Plus, I have young kids who love birthdays/Christmas and the excitement of watching them watch someone else open a gift is WAY less if it's just an envelope with cash or a gift card! Lol

There are a lot of people for whom gift receiving is a love language and cash or cash equivalents do not meet that need (either romantically or in a close-friends relationship).
I think gift giving is a wonderful time to show someone you appreciate them. I think you can show your appreciation to someone better when its evident that you spent valuable time to pick something to gift the recipient.

This may be particularly hard to gift women, but it can be done. You dont need to gift GCs to women when clothes will do. Just keep the gift receipt and include it just in case. You will get wonderful smiles when she says "I'm going to wear the X you got me today"

I follow my own advice and havent bought one in forever. At least a decade.

This has caused me to be late with at least 1 gift, because sometimes bdays creep on you at the absolutely worst time and life happens...so weight that too. Sometimes a crutch may be necessary

>....you spent valuable time to pick something to gift the recipient. This may be particularly hard to gift women, but it can be done.

Ahhh, 'gifting people'. Very American-speak.

Oooohhh, I am super curious by what you mean by this. How is gifting culture different outside of North America?
Well sorry that was not the intent. As a measure of personal growth, i've decided to spend more time for the people I love.

Some context - We make decent money, but we are distinctly middle-upper class by the standards of the avg SF/Singa/London/Dubai/NYC/Bern household. However, I've noticed (accidentally) that immediate family & friends think of us as wealthy. The word rich has been thrown around by little kids.

The most valuable resource I have now, is time. So I decided that's what I would spend for the people in my life.

RE: culture... I've been personally criticized for following the rule steadfastly. Usually this is from people that value perception by others (in particularly, gifting early or on time), vs the meaning of gifting itself. I'm not sure what is right, but there are some people out there that feel that a bday gift that is a day late is a huge insult, even if its a wonderful, well-thought out gift.

Not cultural, just personality trait.

Super interesting.

My family are farmers. I got a PhD in physics, switched to startups and have one successful exit. However family is still a BIG value for me.

I think a lot about the opportunity cost of time and I spent a lot of holidays trying to be thoughtful in the search of a good gift.

A lot of my family realizes the fortunate position we are in. So I have thought a lot about how to share generously, but also authentically, with a keen eye on the fact that time is our only non-renewable resource.

This is why I have focused on gifts as a search/efficiency problem so I can actually spend real time with the people in my life.

Thanks so much for sharing.

Go big, or go home ?

Alas, I butchered the english language - with very amusing results.

I love this article [1] about the effectiveness of gifts. Turns out, most of the time you're better off gifting cash. It's more aligned with what the priorities of the gift receivers:

- Usefulness (can I do something with it?) - Versatility (can I do a variety of things with it?) - Quality (is it well made/going to last?) - Stuff they've asked for (did I actually say I want this?)

I've been gifting cash for a little while now, and the reaction has almost always been better / more fun than with a more traditional gift. I do so this with an extra fun (retro) package though [2] which does add to the fun. (disclaimer, I own this website).

[1] https://www.willpatrick.co.uk/articles/how-to-buy-gifts-that...

[2] https://cashbox.gift

I recently googled: whats a good gift for a girl N years old. Not bad results.
That's fair! I've used Google for people who I am close to and those listicles have routinely fallen short for me.

I think this is more to try to answer questions like "What do you get for the golfer who has everything".

Then focuses on how to remove categories of items you know they have. E.g. "Golf clubs", "Golf balls", "Golf bags", "Golf Clothing".

Then, the intention is to see what's left over to try to find something unique.

Neat, but I'd never download an app for this. There appears to be zero features that require this to be an app.
I like having the option of an app. Progressive web apps are really neato
I like having an option of using a webpage... not having to install anything, and it works on a computer too.
I agree with you there. PWAs are nice because they do both things well.
All websites are mobile apps already.
Hah yes, this is true. Especially on Android.

Hoping Apple will adopt the PWA spec eventually so this becomes even more true

(comment deleted)
Agreed - I won't even try most things that are apps.
Why do you request push notification permission? I can think of no useful use cases for push notifications in your app. Also you should open links in an external browser on iOS rather than using the safari view controller, or at least provide the option to; switching apps is easy, a user interaction doing something you don't want is annoying.
The push notifications were so I can send notifications as I add products that match the tags. When someone adds something super specific, there might not be anything in the app that matches it and because we don't have any account creation, notifications were the only way I could think of to let people know of the new stuff.

Agreed on the browser side. I played with it for half a day and it was still buggy so I abandoned it in favor of other items that seemed more useful to people.

Interesting. I might suggest a (optional) section in the profile with sizes, since many of the gifts are clothing.
Love the idea!

However this will require much more integration to make sure I am showing the right size compared to just scraping. I'll put it on the roadmap!

Do you plan to open source it?

How are the data backed up? What happens if I lose my phone?

Not sure for the plans for open source.

Technically I am creating an anonymous account using Firebase. I've half built the capabilities to allow people to convert the anonymous account into a real account so that people can use the same account on multiple devices.

It took me very long to figure out what your app does. I would suggest to put the video as second section instead of a picture of beets. I got the reference later, but it took me very long time (I was not expecting it) and I only stayed because it was coming from HN so I assumed some value was there. Otherwise I would have left the site.

As others mentioned, maybe a direct free trial in the browser (even if is just an example with limited capabilities) could be great

Thanks for the website feedback. I honestly just put it there as a placeholder and was working entirely on the app. Then I realized that for showing on HN the website is the right way to go so I tossed something together.

I'll put a .gif higher up in the website flow to highlight the point of the app and show a more recent version.

Not sure if I should do a real demo or stick with the office though. It's pretty hard to beet...

Hope it works out for you, but it won't work for me.

My gifting strategy is a category in my todo lists. It usually happens that I randomly think of, see, hear about, or am otherwise made aware of something, and I think, "That is something X would never buy themselves, but would really like." Then I write it down, and as some nondenominational gift-giving event approaches, I review the list and make a choice.

This method has worked as long as I've been giving gifts, and doesn't require an account or feeding details into someone else's database.

I totally respect that.

As I have been talking to people, I have noticed people who are frequently shopping and checking out products are WAY more ahead of the game because they are exposed to more ideas.

I hate shopping so this was my way of trying to quickly get at good ideas while quickly removing bad ideas.

I've been thinking a LOT about the user data collection side. The app is pretty explicit in terms of trying to narrow in on preferences. It's kind of a requirement if you are going to help someone find a unique gift. But it still feels a too much like data harvesting. So how to strike that balance?

Right now I believe I have turned off all ad/app tracking (although I am pretty new at this so maybe I've messed something up. If you know more about this than I do and you see something wrong please let me know). As a user, I only want the information I share to be used for THIS purpose. Not to keep spamming me with more ads.

If I could figure out a way to give you more control over your own data would this still be a flop for you?

> If I could figure out a way to give you more control over your own data would this still be a flop for you?

For me? Probably not, but you shouldn't target me, I'm pretty out of the mainstream. As far as data use, I would think your best bet is plain language describing what you do with it, and of course complying with relevant law.

Clearly describing your use close to where it is entered would make you more user-respectful than probably 95% of random internet services, and I would think would satisfy nearly everyone.

It wasn't until I clickd on the video that I understood it, and this is great and seems useful as I hope to use it to solve a housegift problem I often have. Rare app install on my part.
Thank you!! There's a lot that's still clunky about it but hopefully I can make it so that it continues to earn a spot on your phone.
Ok, have now created a few profiles of people who are hard to buy for in my life, having thought about their interests when it's not urgent and saving the results is great, and while it's actually useful right now I also assume the recommendations will just improve (e.g. easy win is I was in a conversation a relatives house and found out about the mini-cult of everydaycarry.com, where these guys practically subscribe to buying this stuff)

I really like how text based the input is. As a man, I'm never going to use pinterest or instagram, whereas this is a tool. The only UX clunk for me is around entering tags and my hyper suspicions around privacy - however I really like how PII about your recipients isn't required.

This is valuable to me because my social life means I am a constant houseguest to very different people and finding house gifts is a non-trivial time demand, I also need to send thank-you gifts to volunteers and trades/services, and occasionally give staff recognition for over and above value work. These all mean I can't afford cheap things and tchotchkas, or the time searching for and filtering them. I'm hoping your app makes it easier to be thoughtful. For many years, my reference point for gifts used to be the FT's howtospendit (disclosure: i have written for them) and they may be a useful partnership, but I'd rather keep track of the people than having to know what cool things are.

This is an elegant idea. Thank you. I hope it flies for you.

Thank you so much for taking the time to write this.

I originally had generic tags that people could add but no one would ever add a unique tag. It just kept on pushing the suggestions more into the realm of the mediocre rather than into the realm of unique and interesting.

I'm still trying to find ways with the UX to convey "With this design it's not possible for the app to harvest your data".

I think all of us are DONE with tracking and ads. But giving a recommendation is almost impossible without asking about the context and using continual refinement.

I'll keep working on it!

I wonder what 30-40 something hacker news user would like, if I solely go by making generalized assumptions and stereotypes.

- EDM knife

- Alcoholic beverage of some kind

- Maybe a first edition of some book they like; Maybe a movie poster they used to own when they were in college

- Boutique mechanical keyboard

- Handmade wallet

- Semi professional/Podcasting microphone

- A bag coffee that has a novelty story attached to it

- A mug that has some kind of dad joke like humor to it

- Fountain pen and a diary (Everyone knows how much HN is into notetaking stuff!)

That's about it really. At the end of the day, give any of these stuff to anyone in HN but try to tell a story behind that. They will be happy. :)

> - EDM knife

Do you mean an EDC knife? Because EDM means electronic dance music to me …

It Splits The Air in Two with the power of the BASS DROP

IDK, an EDM Knife sounds like a cool idea.

Looking for one to add to the app now. lol
EDM KNIFE USER MANUAL

[From WEEB Corporation, the industry leader in melee weapons and cosplay supply]

Please keep all magical weapons pointed in a safe direction and out of the reach of children.

Step 1: Using aseptic technique, load the hilt chamber with concentrated liquid MDMA. Remember to wear gloves during this process!

Step 2: While the product is still sheathed, activate the EDM Knife’s special powers by performing the PLUR hand signs as if you were casting a Naruto jutsu.

The knife will begin emitting lights and a sick beat as soon as you draw it. This indicates that the weapon will now inflict a status ailment.

Step 3: Proceed to stab and/or slash your opponent(s). If you followed Steps 1 and 2 correctly, your wounded enemies will soon be rolling too hard to continue fighting.

*WEEB Corporation is not liable for any injury caused. Please contact customer support for any questions and concerns.

Here I thought they meant electric discharge machining and thought "Whoa...this person must have a realllly expensive shop in their garage."
EDM knife music is characterized by the driving 4-to-the-board beat.

Cutting board that is. Chop chop chop chop

(comment deleted)
I love this idea. I think of gift giving as a grand challenge. Two ideas:

1. Surface creators (etsy, fivrr, etc)

2. Provide reminders that take into account the lead times of the above

e.g. If someone's birthday is May 1st, on March 15th you get a notification saying, "If you want something custom from one of these creators, order within the next week!"

Lead time always trips me up.

Yeah, I'm starting to scrape Etsy (there are definitely some on there already).

Shopify stores seem like another big opporunity. It could potentially be the biggest mall in the world and yet I can't find the Shopify stores in my own area to support local.

100% agree on the reminders. I originally had the gift recipients birthday's in there but that was personally identifiable information so I stripped it. People are already too concerned about data collection. I'll likely add a "When do you want to be reminded about this gift giving date" to avoid that whole issue.

When you say "built in Flutter", does that mean there is no backend? How does it get updated with new gifts?
Tried it out using my SO as an example and immediately got some great ideas that I didn’t know existed! Thanks for sharing :)
You're welcome!

The framing I have been thinking of is search engines/Amazon are great when you have a keyword.

What seems to be missing is a product discovery engine. How do you search for something that you don't know exists?!

Very often, people give what they would like to get. If you have access to a person gift-giving history it's pretty easy to find something they like. If not... ask around.
Yeah, part of the reason I came up with this is that my family keeps asking me about gift ideas for my wife and kids.

I know what they like. I can answer that question.

What I have struggled to answer is what's out there that matches what they like.

Shameless plug: I built https://joyful.gifts as I was learning how to code to programmatically buy gifts on my behalf (as well as other people). Almost 3 years in now - surprisingly solid market of people and working well considering it was the first thing ever I built for production.
Yeah! I found your thing when I was looking for options in the gifting space.

For me it's the difference between wanting to outsource and wanting to optimize.

I was never comfortable with the outsourcing because I never felt like it would have been "from me".

Instead I wanted to find a much faster way of winnowing through a category to see if there was something that I thought the other person would like.