Ask HN: Review My (Common Lisp backed) Startup
postabon.com
postabon.com
The basic idea is that we want to help you find and share discounts near you. The video (click 'Watch a Video' on the left) will help explain the concept/history if you're interested.
Our iPhone app's release is pending Apple approval (hopefully just a few more days ...).
HN contributed to this in a very real way. Two years ago when I started visiting HN I had no intention of ever trying my hand at a startup. But being surrounded (at least online ...) by the entrepreneurial spirit here really inspired me.
The Lisp thing isn't actually a selling point - I just thought that the crowd here might find it interesting. If there is demand, I'd be happy to write some blog posts on the how/why of some of our architectural decisions. We're using a 'NoSQL' key-value (with btree indexing) persistence layer too :-D
The lack of real persistence in Redis (up until recently, of course) prevented me from using it. If I were to go with something else - Cassandra seems really interesting (I think I saw a cl-thrift somewhere ...). But, elephant/bdb for now ...
Nothing like having a flat text file on a remote box, good for your sleep at night.
I wasn't familiar with beanstalkd, but it seems interesting. I already have an asynchronous thread-pool based job queue built on the back end that could work well for something like that ...
-Why Lisp
-Overall architecture
-Deployment Specifics (libraries, source control, control scripts, etc). This stuff is pretty annoying to figure out on your own - I was lucky enough to learn in person from a great Lisp hacker at a previous job.
Is there anything else you'd be interested in?
If I were you, I'd be thinking a lot about how to take advantage of game dynamics. If Foursquare can do that about going places, surely you can do it about finding great deals, which is inherently competitive to begin with. I'm not fond of shopping, but even I will boast about great deals when I find them. If you can get that right... wow.
How do you prevent people from posting fake deals? Is there a way for others to validate? Would it be useful for people to post not just new deals, but confirmation of deals they benefited from? That would have two advantages: 1. you'd get people participating both ways; 2. you'd get validating information about what the really good deals are. If I post something lots of people benefit from, that should earn me status.
You need to have a blog. Tell stories. True stories about deals users have found would be good. Also, a personal touch can be a big deal: consider taking the "Team" thing off the bottom of the About page and put it in its own place where you introduce yourselves. As a user, if I feel a personal connection to the people behind a site, I'm automatically more sympathetic.
The Community page doesn't draw me in. It looks like a database report right now. That page is a chance to get people to participate, so you want it to be warm and inviting. Also, it's hard to react positively to something one doesn't understand, so getting the key information across in the first 10 seconds is critical.
Don't bother putting up messages like "nothing in your location, redirecting to New York". It's obvious that you're redirecting me to NYC anyway, and a message box just irritates the pig. (Maybe put this information in some text on the actual page?) Also, when I load the page in FF I'm getting a status box overlay that says "Detecting your location" that takes a long time to go away and blocks my use of the site (plus is ugly). Drop that. You don't want any barrier to entry at that moment. People can bail on you in less than a second.
If I were you I would pay super-close attention to the psychology of how people are using the site. If you find a dynamic that works, this could be killer. It's not obvious that appealing to people's altruism ("good deed", "karma", etc.) is the right approach. Competitive shopping can be vicious! Think about that question, "What's your deadly sin?" It may not be so much greed (saving money) as vanity (winning status).
I'm afraid I don't like the name. First, it reminds me of Cinnabon. Second, American names with French roots are good for a fancy, specialty vibe (e.g. gourmet, luxury), or conveying effete sophistication, but that may not be what you want.
Summary: you guys could be on to something. Best of luck and keep us all posted about how it goes!
Firefox does this cool wifi scanning thing to get the most accurate location. It's really accurate (and I cache it, so I only have to do it once), but I don't think there's any way around taking a few seconds to determine your location.
Good point about the psychology. I was worried that playing up the competitive aspect could annoy users ("You want me to compete for your benefit?!") and was trying to walk a bit of a fine line ... I think I'll be a bit more comfortable with that approach after we get some regular users and see how they use the site.
Agreed that you definitely want to be careful about acting on any psychological theories up front. Observation of real users is the ticket.
It's like the recommendation to not use custom UI. Same reason, nobody likes to learn something just to be able to use your site. It raises the cost of entry for new users, and hardly provides any benefit, not even for you (Brand ? Stop kidding).
Thanks
'shop. save. share' doesn't tell me enough right off the bat. Maybe users who aren't logged in should get a 15-word blurb ("Postabon allows you to find and share deals. Check out the (link)introduction video.(/link)")
I didn't notice the introduction video side-tab until my third glance back at your site- most new users are going to totally miss that.
The 'about' page had more words than my eyes were comfortable with. Cut the word count in order to space the text out more. And some hyphens show up as em-dashes in firefox, not sure what the deal is there.
The site navigation links at the top of the page have very small hit-boxes and provide no indication that they're click-able (other than the mouse cursor changing.) Its harder than it should be to click these items.
The "Category Filter" and "Hide Result List" links are even more confusing since they display a text input cursor instead of a link cursor. This problem is also present on the result title links.
If some startup would actually make anything, literally anything that was global, I'm sure it would get a segment of a market that nobody's utilizing.
edit: And a Javascript alertbox letting you know you're going to see new york instead... That's not helpful.
How would you prefer we degrade if there is no content in your area?
You're a Lisp shop, there should be a continuation/condition-system based error handling mechanism that teleports the user to NYC. NewLisp has a WITH-NEW-JERSEY macro.
If there's nothing in the detected area, can you move to the closest bon instead?
If I'm going to be showing deals not near you, I'd rather be showing great deals from 200 miles away than poor ones from 50 miles away.
In steady state, we'd definitely do some sort of 'show nearest deal' instead though ...
This one actually has a reason: it takes a lot of effort to contact small business and get offers from them. Remember, once Postabon catches on it can rely on users uploading offers, but right now, at the start, smanek has to do it all by himself.
See https://developer.mozilla.org/en/using_geolocation for some details
Looks well polished. Try to let business owners upload their own offers, that will make it easier for you; instead of hunting for bargains or waiting for users, you can just buy a mailing database and do a blast to those who care (or scrape the contact emails from Google Local, like I did.)
Also, try to define "bon's" somewhere; does it stand for bonus or coupon? The tag line could explain "shop. save. share <whatever it is we're sharing>"
One more thing, spill the beans on the architecture ;-) what do you have behind nginx? Hunchentoot? The html source doesn't look like cl-who, it has comments, perhaps a template system of sorts.
I already have most of your site's functionality somewhere in my private repo, and I am sure many people do too. It's a pity we all have to write it from scratch.
Cheers and good luck! :-)
I second the request for architecture info.
But the short version is nginx reverse proxy into hunchentoot, with elephant (and a BerkeleyDB datastore).
Edi Weitz's html-template for html (I personally love cl-who/parenscript, but I could imagine working with front end devs who don't know Lisp - and it seemed like it might be easier for them this way). The HTML is basically purely static - and everything is pulled in with AJAX (well, technically JSON, not XML). I've done some fun things to hunchentoot's sessions so they are completely stateless and, in the future, I could imagine just moving the entire site (html, css, js, etc) to some fast static file CDN, and just load balancing asynchronous API requests across a few Lisp servers. But that's a ways down the line ...
After selecting a deal on the map, drag-scrolling the map deselects it. This is especially annoying when the description text is bigger that the map view (e.g. "3 Day Bloomingdale Holiday Sale").
It was hard for me to notice the "Search Bons" button because of the way the page is laid out. The map / sidebar visually separates the page into parts, and having the search components span across those two parts feels a bit awkward. I suggest you add a separator under the search stuff, or move the categories/button to the left part of the page, under the two text fields.
I noticed on the "more info" page, you have a "save bon" link. Do you plan to have this link accessible on the main page as well?
This is just an idea, but it seems very fitting to have the results list scroll up/down when clicking next/previous.
Overall, I really like the idea, and I think it's pretty well executed. I think it has great potential once it gets more content. Time to start scraping :)
Also, I had no idea what the site was about at first. I had to actually search the site a bit to even figure out what was happening.
In regards to the idea, I think it is a decent idea, but this seems like a feature that may be best featured within another web application. After this is perfected, I can see the potential for a company purchasing it if only for integration within their own products; however, it does not seem like it has much potential value until you add a bit more to it. It needs to be tweaked slightly. I would continue focusing on the core concept just a tad longer before moving on to additional features.
We also added some intro words up top.
We have a pretty easy to use API that might be integrated with Centrl/Loopt/etc at some point in the future. But, I'd argue that the fact that retailmenot/slickdeals/fatwallet/etc are independent sites validates the 'deal finding' model and suggest we could surive individually as a niche site.
I'll have to put a filter in for that (and scrub the existing data).
Thanks for the heads up - I wasn't aware of that.
(interesting article I found in the course of looking stuff up: http://stackoverflow.com/questions/911587/iconv-gives-illega...)
It would be nice to see a "More..." or "All..." option to see more than just the top 25 users, in case someone wanted to see where they fell for instance.
Also, the user pages: the URL has some GET information that seems sorta odd... like the latitude and longitude to some location (theirs? mine? not sure) and a "comingfrom=..." field that seems to change nothing when modified. Not sure if you care at all about those things, but just seemed like weird information to be passing via GET on every page
As you seem to have guessed, comingfrom is useless now. Just a remnant of an earlier iteration. I'll get rid of it ASAP. You pass (your) latitude and longitude to every page so I can (possibly in the future) customize pages for you based on where you are. Looking up lat/long take forever - so I just do it once when you visit the site for the first time and cache the results (and pass them around as GET parameters). It may make more sense to send them as HTTP headers (via cookies) though ...
That's my first interaction with the site, after opening it in a background tab: it created a focus-stealing window to inform me that it couldn't help me.
My suggestions may have already been previously suggested, but here they are - Instead of saying "No deals around you, defaulting to NYC", you may want to look into something that implies that Postabon is on a nationwide rollout or that it's only available in NYC at this point. I'm in Chicagoland , and from the current message, I would just assume that Postabon is a failure in Chicago. Just a thought -- You may even want to embed (in the text of the webpage) something that asks the user to submit an email and/or state their location (pulldown of major metropolitan areas) if they are interested in receiving an email when Postabon launches in their area. - Make the deals = bon equation even more obvious so that there's no way the user can miss it. I'm using Chrome, and the text blurb explanation isn't very catchy
It’s been dormant for a few months now, after I realized people wouldn’t just magically start posting sales for the benefit of random strangers, especially when practically no one knows the site exists :) Marketing isn’t my strength, I sort of lose interest after the build phase. You guys have taken it further than me, with a much more polished iPhone app and the whole karma thing - kudos.
I am pretty certain that the idea has merit - everyone I’ve talked to about it were excited and said that they would use such a site, and probably pay for an iPhone app, but getting content has proven to be difficult. I haven’t given up on it yet, and I intend to give it a fresh go very soon, with a slightly different approach. I’m sure there’s room for both of us.
Basically, I only have space for a lot of info about 9 deals - and I chose to display the 'best' 9. So when the viewport moves it checks if something better has appeared (or if one of the old best has disappeared). Deals out of the top 9 are noted by small 'dots' which you can click for more info. (Or you can paginate through results ...).
I think that those dots may not be large/noticeable enough though ... Thanks for the heads up.
Clozure CL and CLISP are pretty solid as well, although the latter might have performance issues.
CLISP was just too slow for my taste though ...
In the short term, I just want to get users and work the kinks out of the user side of things though.