221 comments

[ 5.3 ms ] story [ 440 ms ] thread
rock & roll!!!!!!!!
Congrats on the launch, guys! We've tried it and love it.
I love this idea, and the pricing seems spot-on.

However, it's not obvious if this is Ruby-only or not? I don't use Ruby, so that's kind of a big deal.

(comment deleted)
I had the same question as we do mostly PHP; I'm guessing it just uses Ruby as the host software.

I installed the Gem and was able to acquire a URL but kept getting an error:

An error has occurred: {"stack":"Error: socket hang up\n at Socket.<anonymous> (http.js:1271:45)\n at Socket.emit (events.js:64:17)\n at Array.0 (net.js:825:12)\n at EventEmitter._tickCallback (node.js:126:26)","message":"socket hang up"}

Hey crikli, could you send an email to support@showoff.io with any extra details that seem relevant? We'd love to track this down!
You need to have some server listening on your local machine at whatever port you are creating the tunnel for.

If you just wanted to test it out you could start something like "python -m SimpleHTTPServer" and then "show 8000", which will serve files from your local machine at your showoff url (I might recommend running the server in an empty directory).

Right you are; I did that and was able to see a bunch of stuff I'd not want to share over the web. :)

Sheesh. Ruby runs over 3000, if you're not running the ruby server on 3000 there's not going to be anything listening.

Facepalm.

A pedantic correction: Rails runs its server on port 3000 by default; Ruby is the language Rails was written in.
Instead of giving this error, there needs to be a message that explicitly tells the user what's wrong. Something like:

"Woops, you said your server was running on port <port>. Is it?"

you have to leave the 'show' program running or you get that error - leave your terminal window open, don't control-c out of it once you've started it, and it will work fine. I had the same issue :)
I was going to say that the day pass pricing is right on but if it was me, I'd want to do price testing on the monthly pass because it seems to inexpensive.

I'd also consider a "Enterprise plan" which is monthly plan with possibly some restrictions based on IP or with password protection etc.

We wrote the showoff client in Ruby. It's a light wrapper around SSH that helps manage accounts, SSH keys, &c.

Since Showoff is basically a fancy SSH tunnel, it should work with any kind of webserver. If there's enough interest, we'll probably bundle up client software in ways that don't depend on `gem install`.

This looks like a slick expansion of the idea here https://github.com/progrium/localtunnel/ Will be sure to kick the tires with a side project or two.
Why would i use this over a VPS? A VPS is a similar price and has similar functionality, but doesn't pose a security risk to my home workstation and comes with a slew of other benefits.

The tech looks reasonably cool, but what is the use case?

EDIT: Your site also makes it sound like it is HTTP(S) only. If it's not, you might want to clarify that.

Hey mtogo, good question.

We often develop sites on our laptops. The more complicated sites are, the more there is to sync around (databases, dependencies to install, version control commits, &c). Showoff is a quick way for us to get feedback from clients or each other without adding overhead to our development process.

Ah, that makes sense. Thanks.
Funny, I thought you mentioned the VPS because you could still reverse tunnel and share the app in your laptop without deploying. I was going to say that it's still a good idea since the day pass is just $1.

p.s. surprised they didn't go for 99 cents

The main page seems focused on simplicity and short sentences. I think they thought that $0.99 would have looked too noisy compared to $1.

It's possible that they are also pandering to people like me who dislike prices written in that way. I am annoyed by the chore of mentally adding one to every price ending in 99 cents, and I respect sellers who write prices like that less.

(comment deleted)
No, you can reverse tunnel through a VPS and get the same effect, but you're paying 2-5x as much for virtually the same thing (unless you already have a VPS).
I work remotely 100% of the time (and not always in the same location). The use case for me is to quickly show a feature to coworkers without having to commit/push to a remote server. Especially if the feature needs immediate feedback and is not completely baked/finished.
You can still just use an SSH tunnel on your VPS... no committing/pushing required.
Can you explain how? I am a newbie to web development. I have been making sites locally on my machine and using heroku to deploy online. I am thinking of getting VPS hosting.
In the simplest case, something like:

ssh -R8000:127.0.0.1:80 my.vps.com

This will forward all connections to http://my.vps.com:8000/ to port 80 on your local machine.

Adjust ports as necessary.

Then you also have the VPS where you can actually host a copy of your app - but that's off-topic.

Good point about the HTTP/HTTPS we will get that clarified on the website.
Thanks for bringing HTTPS up, that's another good use-case for Showoff. If you're developing a web app that needs to be tested with HTTPS and don't want to mess with creating a self-signed cert, Showoff can help you out.

It's also really nice for testing web hooks or API callback URLs against a local web server (e.g. ecommerce sites with IPN, &c). If you sign up for an unlimited account, you can choose a permanent URL to use for your tunnel (e.g. "my-name.showoff.io").

The latter feature is a pretty big deal, imo.

Working independently on a project or projects with distinct clients who either need or want to give input/feedback on feature development can be greatly alleviated: work up a quick prototype, show off from my local dev machine (never have to touch a server), call/IM my-name.showoff.io, and they get to see it right away, in the same medium they will eventually be using it. This is so much nicer than sending a wireframe or design of a feature.

The long-term benefit is that the my-name.showoff.io URL can be pretty easy to recall & reuse for any number of clients & features.

A surprising number of web developers don't have a VPS.
Happiness, is a warm socket.
I don't understand why it says "laptop". Why not my desktop machine?
We wanted to make it super clear that the primary use case is local development. By saying laptop it removed any ambiguity that it might be a production deployment tool.
Text is hard to read. I'm still not exactly sure why I would use this over a VPS (maybe it's for devs who don't use VPS/EC2 as their dev machine?)

Is this for live demos or for sharing documents? If the former, why wouldn't I just turn on apache and give them my IP?

Because "show 3000" is much easier than setting up apache, turning on apache, forwarding ports, and giving them your IP.
Ah, gotcha. So the product that is being sold is simplicity. Are you the creator? If so, I would suggest:

- more contrast between text and background

- explain who the intended user is (web dev w/o strong LAMP background. I would find it easier to turn all that stuff on than to try to use a new product, and it's not worth even $1 to me to do that... so I'm clearly not your target customer)

- explain what your value prop is (it's not "Now You Can Share!", it's, "Now You Can Share With One Click"). The way it's explained, it feels like a new capability...

edit, formatting.

Well, to be fair, and this is personal opinion, Showoff has little to do with whether or not a developer has a strong LAMP background (or .NET, or Haskell, or insert-your-favorite-stack here). And yet it has everything to do with whether or not a developer has a strong LAMP/whatever background. Showoff is not intended to replace your stack--at all. In fact, this product came from a strong server-side background. If you find it easier to set up Apache & MySQL & DNS records and all that to show a client/person a development site/feature you are working on locally (that has not yet been moved to a server), that's fine. Slightly masochistic, but still fine.

It's just that's more than most of us, as well as most of the devs we know, want to have to do to share local projects-still-in-development with our teams and clients.

Example use cases:

CASE ONE. You are working on a new site or feature for a Django/Ruby/.NET site on your local box. You've been banging away at it for the last couple hours, and are trying to explain it to your client, coworker, boss, or friend. You have it running locally just fine, are playing with it at http://localhost:1234/ and it looks pretty good. Everything's in good shape to show off your great new thing. If only they could both see it & interact with it, they'd be able to try it out and let you know what they think. How are you going to do this?

-Option 1: Leverage your strong LAMP/whatever background & ssh to your development server, get all your proj files up-to-date, migrate/upgrade a db schema, restart your instance, test everything out to make sure there were no unforeseen impacts from the change before you let anyone else see it (you don't want them to hit the page & get a 500 (you do test before you let anyone try a new feature, right?)), then paste the URL to your client, coworker, boss, or friend.

-Option 2: switch to a shell & execute `show 8000`, then paste the URL to your client, coworker, boss, or friend.

CASE TWO. You are updating a site that's been around for a long time and is already live on the web. Some important changes and new features have been requested & you've been banging 'em out for a couple hours (or days). You need to get them before your client, coworkers, boss, or friend before they are live on the site. You currently have everything running locally at http://localhost:1234/ and it looks good to you. Maybe you have a few questions about whether you're on the right tracks. What'd be really nice is if you could put up what you have, let your client, coworkers, boss, or friend check it out, and maybe go thru a few page refreshes rapidly to see some other options (especially helpful with CSS changes/fixes).

-Option 1: Leverage your strong LAMP/whatever background & ssh to your development server, get all your proj files up-to-date (including making sure the dev site is exactly identical to the live site and then apply your changes), migrate/upgrade a db, restart your instance, test everything out to make sure there were no unforeseen impacts from the change before you let anyone else see it (you don't want them to hit the page & get a 500 (you do test before you let anyone try a new feature, right?)), then paste the URL to your client, coworker, boss, or friend. Time to try the next change? Repeat all over again.

-Option 2: switch to a shell; execute `show 8000`; paste the URL to your client, coworker, boss, or friend. Time to try the next change? Usually just a quick local Save action away & asking them to refresh.

If anything, you might even argue that the people who have a strong LAMP/whatever background are exactly the target customer for Showoff -- they're the only ones who can read Option 1 and groan in disgust at doing all that just to try out a pending feature/fix.

The value prop isn't merely "Now You Can Share With One Click" (and not just because there is no clicking involved) ;). It's that and m...

Sure, and I didn't mean to appear like I was stating the service was useless. It obviously has use -- it is a cheap shortcut that will reduce a very obvious pain point. An excellent business idea.

All I was saying is two-part:

1) the marketing copy on the landing page needs some work. the design needs some work as well. The main message was unclear to me

2) this product isn't for everyone. E.g., I do all my dev work on virtual machines. One of my colleagues has a custom deployment script. Many people use continuous deployment.

I guess all I'm suggesting is that the creator move to market themselves to a certain segment of the population. I'm not in that segment, but it was difficult for me to determine that. I suspect it's because the copywriter is loathe to exclude a possible customer. In my opinion, the "grab at everyone" approach hurts more than it helps. Go specific!

And finally, not everyone has Ruby running. I've never installed a gem in my life. Which would I rather do: something that I have done a million times and have partially/fully automated (depl to internet), or try to setup a ruby system?

If you're on osX there's no "setup a ruby system" you type a one line command and then you can use "show". You might have to use the full path to `show` to get it to execute depending on how it installed. You don't need to know anything about ruby -- I've never touched ruby and I was up and running in less then 60 seconds.
Fair enough. Again, I was just trying to analyze their landing page copy from the point of view of a potential customer. I am not a potential customer.

But for people without any Ruby experience, you don't know that fact ahead of time. All you see is the unknown ruby command. And my impression (as a non-user of ruby) is that it's hard to get going. So a potential customer may see these issues as a hurdle to jump.

For me these tools are much more promising than simply showing your work to your boss. It could even become a solution to get around censorship. Imagine you plug a p2p share on it with all the wikileaks docs, and other do the same...
Awesome. I'm definitely a potential paying customer.

Two suggestions and a question:

* How about a free trial for unlimited access or some other kind of cancellation guarantee?

* Minor one, but the dark contrast on your website UI is about equivalent to the background on a typical lightbox...i.e. it reads "disabled" to me on first glance.

One question:

I assume I could map a CNAME record to the showoff URL? (So cookies work, etc.)

We're going to add CNAME support soon. Thanks for the feedback about the color scheme.

If you sign up for an unlimited account and you're _really_ unhappy, send an email to support@showoff.io and we can talk about a refund :)

Cool good to know. :) Less a matter of the money, more a matter of wanting to easily play around with the "full strength" version to see if it really works for me.

I happen to be working on an account/authentication service right now, so being able to rig it with a working domain name (via CNAME) so cookies work with my app is definitely big on my list.

Team payment options would be good too - $25/M 7 user option or something.
Contrast could be better but I like the layout and fonts. Simple.
I second the dark contrast point. My first reaction on the site was "omg, what can I do to put some color and some life here".

I even tried playing with the bookmarks on the top right corner to see if they would light up the site.

I kept expecting a bright background image to load, or a dynamic popup to appear. Even fully loaded, the page looks incomplete.
I just did a quick article on the design: Showoff.io feedback and design impressions - http://nerdr.com/startup-showoff-io-first-impressions-and-fe...
Why the "Average user asks:" critique when the target audience (as you acknowledge below) is clearly technical. Anybody with networking experience, ie. setting up a web-server (even for local dev) will know what localhost is (they type it in their address bar to access the "local" server)...etc
I've been using OS X too long, since I instinctually thought the website was grey out / not active.
i'll chime in as somebody who likes it.
It looks like something designed for 3D and film production. Such an interface has very little contrast and color so it doesn't interfere with the perceived color and intensity of the image.
This is very similar to my http://pagekite.net/, which offers both free trials and CNAME records already.

They're out-marketing me, I guess. It looks nicely done!

It's not obvious by looking at the pagekite homepage what the product does. Lots of focus on the benefits, but as a developer, I'd rather just know what it does and how to use it

I would even suggest taking inspiration from the clearly annotated three-panel diagram on the showoff.io homepage - very clear and simple. I am guessing that pagekite might offer more functionality than this, but again, I am having trouble figuring that out.

Best of luck!

Yes, we have been struggling with a focus problem. We're techies (and our tech is good), not marketing gurus. :-)

Thanks!

I absolutely understand. I'm not a marketing person either, but I have some experience in usability research, and I think you will get as much value from testing the homepage with a few fresh faces as you would from a marketing project. There is an interesting crossover between usability and product marketing when it comes to homepages and messaging. If you haven't already, I highly recommend Steve Krug's new book "Rocket surgery made easy", which is focused on guerilla usability testing. Usability testing is classically about identifying problems/improvements to a UI, but you can quite easily use the same techniques to test your homepage and figure out whether people understand the product and whether the homepage encourages them to try it out, etc. Have fun!
(comment deleted)
Thanks for sharing.

Here is some honest critique for you: It's about more than marketing. Where they are blowing you guys away is usability -- partly in the product itself, but more on the website.

In less than 100 words I know: a) exactly what showoff does, and b) exactly how to get it up and running.

Compare that to your Quick Start guide: https://pagekite.net/support/quickstart/

I mean, my eyes just glaze over when I see that. Get me running and get out of my way. As someone else in the thread said, don't waste my time selling me "benefits" -- that's what enterprise salespeople do to enterprise buyers.

Also, I like that you have a free trial, but when are you going to tell me how much it costs? And do I really need to complete an optional survey and check a terms of service box?

Sorry if I sound like I'm being hard on you guys, but even though I don't know you at all I'm confident you're capable of more. :) Don't fall back on the "we're not good at marketing" excuse. Spend a lot of time thinking about how you can simplify, simplify, simplify, simplify every single aspect of the interaction on your website and your product itself.

I'll keep my eye on your product though. Thanks.

Thanks for the feedback! We are working on all of these things - we've been iterating from 'geeks only' to 'polished product' and just aren't all the way there yet.
It's hard work hey ;)
Usability and quickstarts/documentation ARE marketing.
Indeed they are!

Our problem is we have a highly technical, generic tool and we've found it really hard to write docs that are easy to understand and a product description that resonates with people.

It's quite eye-opening to see how someone with a relatively small subset of our features can completely wow everyone by very clearly presenting just one use-case. Simplicity really seems to be key, at least to getting this kind of attention.

As a bit of meta-commentary, I have to say: it's exchanges like the one's between you and jsdalton and you and pakeha that make me love HN. It's pretty rare to see such honest conversation and useful, constructive criticism both given and then accepted in the spirit it was given. Thanks to all of you.
You need a picture. Two screenshots with a lightning-bolt-style network connection between them, maybe.

Take a look at "How We Increased Conversions By 25% (Again) With Our Latest Redesign (carwoo.com)" http://news.ycombinator.com/item?id=2420447

You have a whole wall of words about features, but I can't judge in 5 seconds what it does and if i'm interested. Switch to user stories.

Agreed, I really want more pictures myself. It'll happen!
I just use dyndns.org. free and easy to use and update
Yes indeed, not as easy as "show 80" though
nope, easier - I have the following aliased as 'ddu':

    lynx -dump -auth=user:mypass "http://members.dyndns.org/nic/update?hostname=myhost.dyndns.org
I have 'ddd' set it to a random IP, so that I can determine when it is active and not have to deal with random proxy scans etc.

If you aren't UNIXy you can use one of the dozens of update clients:

http://www.dyndns.com/support/clients/

dyndns is just one provider. you could host it yourself. There are dozens of routers and clients that support DDNS protocol, no need to reinvent things.

DynDNS works, but not if you're behind a NAT or firewall that you have no control over (e.g. a coffee shop).
At first I thought this was Ruby based since it was installed via gem, but at the footer it says it is built using Node.js. This is a fine example of the power of Node.js as well as the versatility.

On a side note, this reminds me that isaacs (creator of npm) has pushed npm to be for development and not for deploying to end users. Hence using gem instead of npm.

We're planning to make more "normal" installation scenarios if we see good interest. Using gem was a quick way for us to get the idea out.
I like the idea, and had you not have used Node.js I was going to spend a few hours and create a clone using Node.js since it would be that easy. Mind you not that easy if I were to match your level of service and the site. Hope it has a lot of success.
Node is a network library and you can easily create a TCP server. That s all. On the other hand ruby is great for writing scripts and nice DSLs so the whole concept is implemented very nicely.
Node.js is more than a network library, but you are right it is easy to create a TCP server. I have created many scripts using Node.js and I am not the only one.
Man, the whole site was a pleasant experience to browse. I was browsing it because it was just fun to.

The idea is perfect and I encounter this problem daily and always too lazy to bother setting up a dynamic dns.

Signing up for an unlimited plan right now.

Well done.

Wow that's brilliant. I'm definetley a potential paying customer. That's cheaper than spinning up an Amazon EC2 micro instance to develop on at $5 a month.

I'm not a big fan of dark gray background with darker gray text though.

Fortunately sites you create and 'showoff' don't need to use the showoff.io stylesheet :)
The advantage of Amazon EC2 is that it doesn't go down when your laptop turns off.
Conversely, the advantage of Showoff and its kind is that it does go down when my laptop turns off.
Why is your site so pretty? I feel lucky when I style a <ul> enough to not make me gag.
I've got MAMP Pro running on my notebook and have a half-dozen "local" urls ( only valid URLS for me ) - is there a way to point this service at those URLS in addition to localhost?
Yup, try using something like `show --host=mysite.local 80`.
When I see new projects and ideas that take off, my response is usually a curmudgeonly observation about how stupid and pointless it is or how it's so obvious and trivial that I can't believe anyone would waste their time making it.

This is not one of those. This is one of those cases where I'm not a bit jealous because something so obvious or inane or dumb took off and became Twitter, but because it's just so damn fantastic. This is one of those things that is so elegant and smart that it makes me feel like a complete idiot.

This is going to do very well.

well, it's trivial after reading ssh's man page. though the execution is nice and everything is packaged that relatively tech un-savvy users can make use of it.
Absolutley. This is a non-obvious but simple idea executed well and the creator deserves to make buckets of money.
I feel that localtunnel was also executed quite well, is free and open source, and has been around for a while now: https://github.com/progrium/localtunnel

Where are my buckets of money? Oh yeah, I don't care.

Oh but I detect that you care. Well, the difference between this and an obscure open source project buried on git hub is for a starter to at least have a web-site at localtunnel.com!
I care about my work and it being used and contributed to if people are interested in it. I don't care about money, which is why it's open source and run as a free service. My code is MIT and I would love it if people took my code and made a pay-for service like this with it... but instead, they (to be fair, probably unknowingly) duplicate effort and obscure my work.

If a fancy website is all I need, I guess that's what I'll be doing this weekend. And I guess SSL and CNAME support...

Don't be some negative about it.

On a positive note, this is the first time I thought about doing something like this, and it's also the first time I heard about your project.

I'll try it out, thanks!

I don't think there was ever an intention to obscure work, maliciously or otherwise. This project started because developers started developing, not googling or searching github. 

To be fair, the "fancy website" is a byproduct of designers who like to make stuff look good, and the rest of Showoff's team caring very much about not just making stuff that works (of which they make a lot, much of which is hidden away in obscurity), but about making it easy for people to use who wouldn't perhaps take on the task themselves—and I don't think there is anything at all wrong with that.

However, I don't think it is fair to imply creating this tool (and its website) was a product of caring about money, or duplicating and obscuring your (or anyone else's) efforts. It is like many other ideas out there that came from a real need, hacking it together, and then asking if people might find it useful enough to pay for it. That's not a reason to disparage or diminish a job well done.

In the end, it looks like Showoff's also brought attention to your project, pagekite, and plenty of other ways people have shared to do the same thing. Today was the first time I'd heard of localtunnel, but I've done this same bit of showing off localhost before for clients and coworkers on my own--and it's a bit like splitting hairs to call it duplication. Hackers hack. It's what we do. I definitely like open sourcing when it makes sense. But I also like to eat and have a roof over my head. Open source does not hold a monopoly on good intentions.

I totally agree, this thread is probably the best exposure any of our projects (I'm the PageKite guy) could ask for.

The idea is clearly communicated, pros and cons and alternatives discussed... and now it's a tiny bit easier to explain to people what we are doing.

Hats off to the Showoff team for a job well done! :-)

You're both right. However, if I didn't complain as much, my project probably wouldn't have doubled in GitHub watches. ;)

It's great to have the idea validated, especially since mine and showoff.io's user experience are nearly identical. And this will force me to make a pretty homepage and add features.

So now that I've complained, I don't think I can complain much more.

I guess I can't blame you for philosophical differences. Personally, I do a lot of research before investing my time in building something. Not only do I try to avoid NIH, but I prefer investing my time in clever and useful things not done before -- I tend to think I'm good at producing novel things. I suppose others doing something similar a year later and getting more attention comes with the territory.

Now... open source vs commercial, that's a whole different discussion (although probably not what you'd expect).

NIH is a willful decision to create something that already exists and is fully known to all interested parties, but summarily rejected on the basis that it is ... wait for it ... Not Invented Here. Sometimes, an identical result issues from identical circumstances wholly independently and honestly--leaving the world with nearly identical objects that attempt to solve an identical problem in an identical way.

Casually suggesting NIH can be an insult to the intellectual & creative abilities of a team. Sometimes it is warranted. Other times, it is not. I believe most guys and gals in the developer community are astute enough to ferret out NIH and ignore it.

P.S. On the other hand, you have a very impressive set of github repos. Kudos. You have successfully made me both care and jealous that I never get around to open-sourcing anything because I never feel like any side project is perfect enough to let others see (and because most of what I work on is closed-source for clients). Sad.

Sorry to bring up NIH so willy-nilly. Ultimately, you guys did an inspiring job and from what I can tell of implementation you did it even more elegantly than I did.

The whole simultaneous invention thing is really interesting to me. It was covered in two great books, What Technology Wants and Where Good Ideas Come From. Both seem to imply that the more utility something has in the "adjacent possible", the more likely it will be invented by many people in roughly the same time period. This actually quite frustrates me about technology! What's worse is that this phenomenon will only increase over time. And because it's about utility (never mind the illusion of unique "UX" of products now), there is little room for expression or creating something unique to you that matters.

(comment deleted)
It doesn't matter what you do -- writing, design, code, philosophy, advocacy, lemonade -- if you want it to get out there, if you want people to use it, you have to market. It doesn't matter whether you're "selling" in the sense of exchanging money or not.

Marketing is critical. And marketing isn't just telling people about it, or advertising. Marketing is making a site that is attractive (to the audience), giving your project a name that is easy to understand and remember, and easy to google for, and making it easy to use, to install, work with it, share it, troubleshoot it, making it easy to find help, easy to find other people who use it in a community. Marketing means making it clear as hell what the user gets out of your "product," and keeping the focus on the user at all times.

These are all relative, depending on your audience. (Ex: Lots of developer types actively enjoy the simplest possible visual design, and enjoy the thrill of conquering something that's a little bit technically hard. But not all. And none of them enjoy searching & searching and being unable to find the thing.)

If you don't to make money off your work, great. But if you want people to use it, you have to market it, that's just the way it works. It's not good enough to simply make something you want to make and stick it out there. Just being "free" and "open" isn't enough.

If more open source developers would take the time to learn how to effectively promote their own work, the world would be a better place. But sadly, because most OSS developers belong to a group that considers marketing "evil," and has a chip-on-the-shoulder reaction to the idea that marketing is required for even free-as-in-beer projects, it won't happen.

I completely understand. Unfortunately, I'm too busy building cool shit to market it like crazy. I look for clever ways to market, like getting my company to promote it or including it in presentations.

I know it's human nature to like prettier things, I'm just surprised when localtunnel was posted on Hacker News originally, it did not get as much attention as showoff.io and it does the EXACT same thing. I guess I'm disappointed in the community for that?

let's not get carried away - a great idea, but not exactly defensible technology, so "a small pile of money" may be more appropriate.
Sorry, I don't quite get this. Why can't I just grab my public IP address from Whatismyip.com, and check the Web Sharing option under System Preferences on my Mac? (For Linux, simply fire up Apache; my guess is that most Linux users know how to do that).
Often times you are behind a firewall and this isn't a viable option. It's also easier to remember a domain name rather than an IP address.
"Simply fire up Apache" is a bit of an oxymoron.
/etc/init.d/httpd start

Though the real challenge this product solves is in getting around firewall restrictions. Let's say you're at the airport on free wifi. How are you going to share localhost then?

python -m 'SimpleHTTPServer' 8080
service httpd start
You'll often have NAT to deal with as well, and have to set up explicit port forwards to your local device (and give it a static IP address) in your routers.
I'm inclined to agree, currently I have ssh setup on my home machine and use dyndns which is free and pretty simple. Setting up a server would be equally simple for the technically inclined.
You could do that, including figuring out your NAT/Firewall, how to proxy through apache to your app and have to worry about security. Or, you could just do this:

  show 3100
I dunno, I'm a busy dude and my time isn't free. So I'd rather pay $5 a month to have someone figure this out for me and let me spend time leveraging it to build cool stuff of my own.
Err... what? If you're even a half-serious developer, you're going to have a static IP or something like dyndns. You're also going to have your own domain, VPN, and port forwarding. Setting this up on your own network is trivial. You can use it no matter where you are, so long as you have internet. Just buy a cheapo router that supports DD-WRT, set up dyndns, and you're good to go. Seriously.

I get it that some people aren't great at networking, but all this stuff is really basic. Not that hard to learn.

DynDNS is a bitch, but I usually just setup an SSH tunnel between my box and one of my cloud servers to show off my localhost over any kind of shitty connection.

Even works at Starbucks, which I don't think DynDNS does.

This app is really neat, though. Creating an SSH tunnel is trivial once you learn how it works, but before, it seems insurmountably complicated. This service makes it super easy.

Oh, and using the same trick in reverse, I get to use Netflix, Hulu, Pandora etc. when I'm out of the country. Or just protect my privacy from Coffee shops.

>If you're even a half-serious developer, you're going to have a static IP or something like dyndns. You're also going to have your own domain, VPN, and port forwarding. Setting this up on your own network is trivial. You can use it no matter where you are, so long as you have internet. Just buy a cheapo router that supports DD-WRT, set up dyndns, and you're good to go.

Um,

Assume none of the above - and instead assume that I am a designer with a local copy of the new t-shirt site im making for my hipster clients - and I am working from the local Java Jungle, not behind my 'cheapo dd-wrt + dyndns +blah blah blah'

I want to show them a latest rev and get feed back.

Use this, and its no problem. Yours is doable, non-trivial and zero elegance.

email it to them?

call me oldschool, I know...

So, like, the cheapo dd-wrt router is always on, always connected to the internet, at your home/office. You set up your domain to point to it. You VPN to it from your Java Jungle. On Windows/Mac it's a simple as clicking a few buttons. On Linux, a single command at the prompt. That's it. You're done. The router routes the traffic to your lappie via the VPN.

On top of that, you're using your own domain, which is more professional in my humble opinion. It's lappie.yourdomain.com and not lappie.theirdomain.com ... oh yeah, and it's free. Just get one of your nerd friends to set it up. Once it's up, it'll run forever.

This is all true, and I am sure a lot of us on HN do such things. But a fresh designer type prolly hasn't/won't.

There is nothing wrong with your method, except that it is longer than "Step one."

Wow. I'm glad you said that. I've got experience with networks, but I can't design or code (I have utilized plenty of templates, libraries, and shell scripts written by others, but I'm not much of a creator). I simply looked over this segment of the populace. It's still a niche, and any criticism I've leveled in this thread is in the hope that they create better clients or an API for their service to make it more accessible, as it is too technocal still to make a difference outside of semi-technical people.

This could be a great step forward in helping peopole understand, and take responsibility for their online presence.

I'm sort of shocked that most web developers don't have at least one small virtual node somewhere out in the real world where they can demo things and/or forward ports.......

But that's just me.

If it's a static site, copy it into your dropbox public directory and share the public link.
Is anyone making sites where this would work, for money?
No way. Having your own static IP can get very expensive. Dyndns is a horrific pita. Fiddling with routers is annoying. No serious developer is judged by a client on any of these things. And none I have ever worked with as an indie developer (like an $8 billion/yr company who depends on software I built every day) would ever care or even ask about any of those things. One's professionalism is not determined by these things. I made a lot of money as a serious developer without any client caring or knowing if I had a domain, static IP, etc. But I made stuff work, and that's all that ever matters.
I get a block of 8 static IPs included with my service. Then again, I have an office and it's a business class connection. I pay $75 per month and get 25 down / 5 up.
I have 0 static IPs (that I am aware of) included with my service. Then again, I have a residential line and it's a fiber optic connection. I'm a bit cheap, so I pay $70 per month and get 50 down / 50 up.

:)

The usability of the payments form is poor. It doesn't state which fields are required (if it's all of them, it should say so at the top). I understand not remembering the credit card number or CVN between requests, but it also forgets the expiry date, and the country. I had to resubmit several times because of this. Fortunately in my case I had the patience to go through it regardless, but given the amount of research indicating people's willingness to drop out of payment processes halfway through, this is something really worth fixing.
Thanks for the feedback! We'll tweak the payment form to make it more usable.
Is there any chance we'll be able to pay using Bitcoins or PayPal (preferably both)?

I don't have a credit card, so can't try it.

One note about the setup. When you have multiple ssh keys available, the "pick one" menu looks like this:

Choose the public key you'd like to use:

[0] id_dsa.pub

[1] id_rsa.pub

[q] Quit

This should start with 1, not 0.

Considering the likely audience, starting with 0 seems adequate. (see http://en.wikipedia.org/wiki/Zero-based_numbering)
True, but when using numbers to make a menu selection, it makes more sense to start numbering at 1, because of the way number keys are arranged across the top of the keyboard. It's slightly less intuitive to have the key corresponding to the first menu option positioned far to the right of the subsequent options.
Good point about the positions of the keys.

In fact, I had never thought that one could argue that the '0' key should be to the left of the '1' key… keyboards predate computers, so I see why this is not the case, but it could be argued.

Yes, I think I understand why it starts with 0. However, this is about context. When I am coding, I know indexes start with 0. When I am picking from a list of items in a menu, the context is starting from one.

When you go to a restaurant and you order the first thing on the menu, you don't say "I'd like to have the zeroth item" do you?

If you have a public facing server then this can be had for free:

  ssh -nNT -R 8080:localhost:3000 myserver.com
Et voilà, myserver.com:8080 now points to localhost:3000.
Do you accept upvotes as currency? I was thinking that ssh should be able to do this.
Yup, this is basically what showoff is doing. Showoff is nice because it gives you:

* HTTPS * Works without access to public-facing server. * Pretty URL * Eventually will support more stuff besides just port-forwarding :)

Ah, that last bit sounds good - look forward to it... :)
There's this bit about the 'show' command on your computer. I'm wondering if that's a bash script, or a standalone bit of software to forward data to their servers?
`show` is just the command that sets up the ssh tunnel. Doesn't forward data or anything like that.

EDIT: It's not a bash script. It's a Ruby wrapper.

And there's still that ugly port number in the URL. Vast majority of clients would neither like nor understand this -- most of them don't even know what a port number is.

EDIT: Also, Showoff isn't suggesting it's doing something you couldn't do before. It just does it in a simpler & pain-free way.

Set up an Apache mod_proxy from port 8080 on your server's localhost to a vhost at showoff.yourdomain.com.

You'll have to make sure to build your app to not make any assumptions about where it's running (ex: links to "http://localhost:3000/path), but you should be doing that anyway.

Yep, that's definitely possible. And yet, again, you have to "setup" something. It's totally okay to do things that way. Two thoughts:

You have to have Apache setup (which, when developing a new project, you may likely not have even reached that point).

You can also save your current file by going to File > Save. But Ctrl/Cmd+S is easier (and probably what you use every day).

> You have to have Apache setup (which, when developing a new project, you may likely not have even reached that point).

Showoff project is definitely cool, but instead of apache, nginx installs in one command and can easily proxy like this with about 10 lines of easily googled config using 1/10 of the resources on a simple prgmr account or the like.

Absolutely. The win here is that you get to stop at "installs in one command". No googling. No configuration. Job is done; share your URL.
With just the most minuscule bit of initial setup a simple bash function using just SSH can replicate all of the functionality (and more) of showoff.io, with just as much ease ('show 3000 subdomain') but hopefully the upcoming features will make it a more viable proposition... :)

Then again, I'm quite happy with a VPS setup since I get all of the extra benefits of having the server around...

Hmm I've been using the following: https://gist.github.com/932137 for some time now - it's just a bash function which lets me type:

$ show 3000 test

and get http://test.tekacs.com/ -> port 3000 on my computer using just SSH, assuming you have root access to the server (which you would need to set up forwarding on port 80 anyway...)

$ ssh -tR 1080:127.0.0.1:$1 vps "sudo ssh -Nl \$USER -L $REMOTE:80:127.0.0.1:1080 localhost"

being the functional line...

I came in here to start a sentence like " I dont want to be a dick, but..." and you've answered. Thanks.

Showoff is a great idea though, best of luck!!

It's a bit like saying: if you have a private server you can use: git push blah instead of using DropBox. (This doesn not invalidate your point; far from it, I'm just saying that because it's somewhat trivial for us geek doesn't mean it's not something that other folks would pay for.
What non-technical person runs a server on their laptop?
(comment deleted)
Ever heard of Skype? Bittorrent?

Servers are awesome. :-)

Neither of those are technically servers, and both do NAT traversal on their own.
And if you need a public facing server, teensy VPNs can be had for $5/mo.
I am not picky about design. But please change the colors. There is not enough contrast. I am really making an effort to read just because everybody says it is worth it.
Very nice tool. I expect to use it, and happily pay for it.

I like subtle, minimalist design, and the look grabbed me. But I also have somewhat diminished vision, and I had to blow the page up a lot to read it.

I was looking for exactly this service a few weeks ago and would be a paying customer, but I develop on Windows.

A future market, if you're interested.

Check out http://pagekite.net/ , it's Python and it runs on Windows just fine. We are working on a user-friendly installer and GUI, but if you're a developer you don't need that. :-)
+1 for this. Saw a talk on pagekite earlier this year and it looks very cool and a good alternative to this service.
Hmm, I also think you need a new name. 'Showoff' says exactly what it does, lets you 'showoff' your work. What's a pagekite? (reminds of the 'mint' vs that unpronouncablely named finance site naming issue).

I'm an ops guy, lets say I want to give access to my next generation product to a usability lab for feedback. Can you imagine what that whole experience would feel like?

I'll want some reporting of when the site was used and what was done.

I'll want full cookie transparency so that the user experience will be 'real' but not require the developers to do anything special to get there.

I'll want to know that I can turn it off pretty much instantly if I think there is a problem.

That is perhaps a product that is orthogonal to the 'put a demo page up' kind of thing though.

Regarding the name, I actually think PageKite is an excellent name and we are lucky to have it. It's googlable, we got the .com for cheap, it's a strong trademark. If I draw you a picture of your site flying like a kite in the clouds, connected by a string to your laptop, you'll find the name is a perfect fit... :-)

Admittedly, I do need to get that picture drawn.

Regarding the technical side, you do get all those things. Some you get by collecting your own server logs, some (like cookie transparency and instant-off) you get through the nature of the system itself.

But if focusing on the website demo market, then making things easier by adding reports etc. would probably make sense at some point.

Thanks for your comments!

HerraBRE you need to internalize this:

"Some you get by collecting your own server logs, ..."

When I say 'internalize' I mean you need to shift your perspective mentally from 'techie' to 'customer.'

Anything you can do for the customer, by default, you should do for the customer. A successful product starts "click here", "use now". Leave the 'collect your own logs' as a thing you can do if you want to, but not you have to. And don't get hung up on this exact feature request, it is a mindset for every single feature.

You have no less than 10 comments in this single submission, and in seven of them you are explaining why someone who is a potential customer is wrong about what they are asking for. That is a pretty strong signal, and one you ignore at your peril.

"You have no less than 10 comments in this single submission, and in seven of them you are explaining why someone who is a potential customer is wrong about what they are asking for."

Really? I thought I was saying we were was working on all these things, that it was a work in progress, and I appreciated the feedback. I'm honestly quite confused that you got that out of my comments.

I may have misunderstood your question here, I thought you were asking whether you could accomplish something using PageKite, but perhaps you were being more hypothetical about the desires and first impressions of a potential customer?

Ok, here is a concrete example of a communication style that I'm talking about.

I wrote: "Hmm, I also think you need a new name. 'Showoff' says exactly what it does, lets you 'showoff' your work. What's a pagekite? (reminds of the 'mint' vs that unpronouncablely named finance site naming issue)."

That is feedback from a potential customer that I, as the customer, don't get any sense of what your product is about from the name. I cite by inference a great postmortem written up about the 'Mint' startup, and had you searched for 'mint postmortem' you could have come up with the link [1] below. The alternative to Mint was a website called Wesabe. Both Mint and Wesabe did personal finance, Wesabe was in some ways technically 'superior' to Mint and yet Mint "won."

So you have this bit of feedback on how the name you've chosen isn't helping your product get any visibility and you respond like this:

"Regarding the name, I actually think PageKite is an excellent name and we are lucky to have it. It's googlable, we got the .com for cheap, it's a strong trademark. If I draw you a picture of your site flying like a kite in the clouds, connected by a string to your laptop, you'll find the name is a perfect fit... :-)"

You tell me, your potential customer, that I am wrong in thinking your name doesn't tell me what I need to know about your site. And you go on to tell me how all it would take would be some graphic, which you don't have time to draw right now, of a kite made out of a web page flying in some clouds attached to your laptop to make it obvious.

Your name is a 'visual pun' which you no doubt find exceptionally clever, you know "in the cloud", "easy as flying a kite". Except that nobody types into a search engine "How can I make my web site look like a kite?" but they just might type in "How can I show off my web site?" Search engines are stupid, they will give lots of positive ranking love to the word 'showoff' is in the URL to showoff.io and zero ranking love to a site named 'pagekite'.

You added "we got the .com for cheap" which should be a clue. If you read the Mint postmortem Kagan says, "The site was originally called mymint.com. I was initially against buying Mint.com but Aaron / Anton spent months acquiring the domain. This may seem inconsequential, but would you feel more comfortable entering your bank details on Wesabe.com or Mint.com?"

Do you see the difference in thinking there? One person thinking 'well we already have the domain, so we'll go with that' and the other saying "I'm going to ask my customer to come to this site, what would they be more comfortable with?"

When I look back at your responses in this thread it is clear you are passionate about this project of yours and that is great. There have been a number of comments offering you feedback on both your product and your presentation. In nearly every case your response to that feedback is a combination of "thank you for sharing, this is what you (the commenter) missed about that particular feature and why ours is better."

When you responded as you did about the name I just thought to myself, "Here is a brilliant guy who is going to be frustrated at how little traction his project gets until he can move himself mentally to a place where he can internalize the feedback and act on it."

Its only an observation, I probably should have kept it to myself, and I have no doubt created more problems than good at this point. I'll go back to reading now.

[1] http://okdork.com/2010/10/14/how-mint-beat-wesabe/

How many web-based products do you use whose name directly describes their functionality?
It worked for me on Windows.

The only tough part is getting it to find your ssh-keys. I did this by running it inside git bash, which as a Windows user you might have anyway if you've installed msysgit. Of course cygwin would also probably work. ssh-keygen to make your keys, and then run your server and then show.

I couldn't figure out how to get the -i command to work properly so it found your ssh keys, maybe I should try that again and see if you can do everything with PuTTYgen for a 'true' windows solution.

I love it and I'll probably buy a few day passes here and there.

I also think Fortune 500 security teams are going to be blacklisting this domain soon just to keep their devs from opening holes in the firewall.

At the corporates I've worked at, this product would have been preemptively blocked anyway because it relies on an outbound ssh connection through the external firewall, which wouldn't have been allowed. I'm not sure if that's standard practice at other SuperGloboCorp organizations.
At Citrix say allow outbound ssh, but not, say, telnet.
This looks awesome. I would not use something like this because I have lots of ways to make it happen without paying extra (as in I already have a bunch of servers I can use for ssh tunneling). However, I can see how you would get a bunch of dedicated users. Good luck.

My only question is: won't this service be completely obsoleted by IPv6? I already use IPv6 instead of having to VPN into a NAT'ed office from my NAT'ed home. Just giving someone who has IPv6 connectivity a URL that uses one of my IPv6 addresses will accomplish something similar, will it not?

Not really.

Just because you have an IPv6 address doesn't mean you won't be trapped behind a firewall that blocks incoming connections.

And when you have an IPv6 address and want to show something to a person with an IPv4 address... then you will definitely need either showoff or pagekite, or something like that to act as a bridge.

Perhaps I missed it in the FAQ, but how do you turn it off? CTRL+C?

I understand that you're aiming for simplicity here, but it would be handy to have a menubar icon (or whatever is appropriate for the given platform) to indicate that it's running or not.

Or maybe you actually have that, but it's not clear that you do from the website.

Ctrl-C doesn't do it for you?
Presumably, but I haven't tried running it. I'd kind of like to know how to turn off something that's going to do port-forwarding on my machine before starting it up.
The /usr/bin/show script simply locates the gem and runs it in a Ruby process. You can kill it like any other console program. Inspect the gem if you're curious.

The interesting part of the gem starts off like this:

    def showoff(rhost, rport, lport=80, host='localhost')
      @session.forward.remote lport, host, rport
[1] http://rubygems.org/gems/showoff-io
A menubar icon (assuming you're meaning Mac OS (or any OS really)) is not something you get from a simple shell script, typically. Please correct me if I'm wrong.
Normally a gui tool doesn't advertize how you invoke it from the commandline, but there are plenty of cases where the command-line invoked application doesn't retain the foreground while running. This tool is probably non-interactive at the console, I have zero expectation that it won't fork off into the background.
This is so completely awesome. Just yesterday I was looking for something similar. I will start using this immediately.
Out of curiosity, how did you go about your search?