Pico.sh – SSH powered services for developers
143 comments
·April 2, 2025unshavedyak
unshavedyak
Bandwidth limitations has me chuckling though: https://pico.sh/faq#are-there-any-bandwidth-limitations
Any thoughts on how the review will happen when that barrier is reached?
wongarsu
Traffic isn't actually that expensive outside of big clouds. No idea where pico is hosted, but Hetzner gives you "unlimited" 1Gps connections with a dedicated server, or a 10G uplink charged at $1.20/TB (plus a fixed monthly fee for the uplink itself).
shishcat
I have good reasons to believe this is hosted on Oracle's free tier. Apart from the fact that pinging pico.sh points to an Oracle IP, the 10TB limit is consistent with Oracle Free Tier's limit.
iambrandonm
Totally feel you on this and kudos to these guys, low pricing makes it so much easier to actually try something without second-guessing. I’m working on a similar philosophy with my own project, 99dev — simple tools for indie devs at just $1/month. Starting with lightweight analytics (like a mini Plausible), but more tools are on the way. No bloat, just useful stuff for folks like us who are building things and watching our budgets.
Really glad to see more projects like pico.sh embracing low cost, no frills, indie services. https://99.dev
ryao
You could use GitHub pages + cloudflare for free hosting. My neighbor uses that.
blatantly
$2 is fun for hobbies but hope you are not running in production for your customers with that sort of service level!
qudat
Thanks for the comment because I think many -- including myself -- resonate with this sentiment. Our pricing strategy was to be competitive with a user just provisioning their own VPS VM with a cloud provider. Our goal is to be competitive on price with a $5/mo VM.
Further, we are mostly targeting individual/small teams who want to rapidly prototype on the web. We provide enough convenience features (e.g. zero-install, multi-region, site analytics, tunnel connect/disconnect notifications, easy script automation) to entice users to keep their prototypes running in "prod" as long as possible before they feel the need to provision their own VPS.
We could go upstream and try to target larger teams/companies, but honestly, this is just fun for us to do on the side.
We don't make any guarantees about uptime at this point but we take it very seriously (we have alerting and respond quickly) and treat it like our day-jobs (I work at a paas and antonio is a platform engineer wizard).
unshavedyak
For static sites is there that much missing? Throw a good CDN in front of this and would it matter much who the host was?
blatantly
At $2/m SRE is powered by love only.
TheTaytay
I stumbled across this clever service when looking for a “pastebin” that handled rendering terminal output with ANSI codes. The irony is that they don’t actually allow that (just plain text can be piped to their pastes service), but I found their whole site and vibe delightful!
And the two authors, qudat, and antoniomima are active on HN, as their responsive comments here demonstrate. Just good work all around.
qudat
Co-Founder here, thanks for the interest in our micro-saas powered by SSH.
Happy to answer any questions!
LelouBil
Hey, I was just reading your docs, maybe prose.sh will be what I'll use to finally start a blog !
I noticed this mention here [0]:
Because in our Go SSH server we re-implement rsync, many options are currently not supported. For example, --delete and --dry-run are not supported.
But on your front page it says : Upload your static site to us:
rsync --delete -rv ./public/ pgs.sh:/mysite/
So do you support delete ? One of these pages is outdated or did I miss something ?antoniomika
Woops! Delete is supported, will update that as well
cfebs
Sorry if I didn't catch this on the site, but any new upcoming services you are excited about?
A ssh or TUI frontend for some git/forge host like: https://forgejo.org/ would be pretty cool!
WinstonSmith84
So I understand I can redirect my custom domain to Pico Pages, Pico Prose, etc. Can I however do the other way around? Can I create somehow a CNAME on my Pico.sh account (such as username-myapp.pgs.sh points to abc.xyz.com)? In essence, I'd like to be able to get a certificate and set a secure https connection to e.g. my Load Balancer my-alb-12345.us-east-1.elb.amazonaws.com or similar.
antoniomika
Yep! tuns would be the service you want since it can support forwarding arbitrary backends: https://pico.sh/tuns#custom-domains
WinstonSmith84
Thanks. Let me know if I misunderstood, but it seems that this is redirecting my custom domain customdomain.example.com to tuns.sh
customdomain.example.com. 300 IN CNAME tuns.sh.
_sish.customdomain.example.com 300 IN TXT "SHA256:mVPw"
What I want to do is:
1- to create a custom domain ON tuns.sh (or another Pico service)
2- redirect this custom domain to another DNS (such as a Load Balancer, an API Gateway, etc.)
Something like: {username}-{proj}.tuns.sh. 300 IN CNAME myalb-123abc.amazonaws.com.
memset
I remember seeing this a couple of years ago on HN!
Would you be willing to share how it’s doing on the business side? Hints on how you’ve grown users or how many folks are willing to subscribe?
I’d love to build a service (in a different domain) that operates as simply as this.
qudat
> Would you be willing to share how it’s doing on the business side? Hints on how you’ve grown users or how many folks are willing to subscribe?
Yes, absolutely. Here's our year-end-review where we talk numbers: https://blog.pico.sh/status-011
Ultimately, what keeps us going is we want these services to exist for our own side-project development and it's an extra boost of motivation when others use our services.
All of our marketing is through HN/lobsters/reddit since that's our target demo.
larodi
am I getting this right, that for 2 bucks a month I can publish (okay tun) my dockers and very-unsafe-postgres-with-ssl publicly to selected users?
antoniomika
Correct! The tunnels are protected using ssh auth as well, so you can ensure that only the users you want to access it can.
ryao
I am not sure how you avoided collisions (network namespaces?) on the localhost port space, but for things like this, you would be better off forwarding to/from UNIX domain sockets. It is more efficient as local tcp sockets have several times the overhead. You probably would want to set StreamLocalBindUnlink yes and StreamLocalBindMask 0117 in sshd_config. Then use UNIX groups with the group sticky bit set on the directory where the unix domain socket is made to allow multiple users access. The directory would be owned by that group while each user with access would be added to that group. It reduces some network overhead and is highly secure. I recently used this trick to connect a bunch of machines to a remote service through a jump host.
Also, take it from someone who has been running services over port forwards for years. You want to set ClientAliveInterval and ClientAliveCountMax in sshd_config on the server (if you have not already). Users should be encouraged to set ServerAliveCountMax and ServerAliveInterval In ssh_config on their machines. Furthermore, it would be best if the tunnels were run by daemon tools and had ExitOnForwardFailure set as part of the command that is run. The ssh command used at the client side likely also should set -nNT. It is also good practice for the machines running ssh to have dedicated accounts for the tunnels such that their daemon tools scripts are essentially two lines, a shebang followed by exec setuiduid user ssh -i ...
Finally, if people want to do very low overhead and highly secure setups, they should bind the services that they reverse forward to unix domain sockets locally and reverse forward the local unix domain sockets over ssh to remote unix domain sockets. They can use a file mode sticky bit on the parent directory to make the local Unix domain socket accessible by the ssh command running on its own user, which locks things down locally fairly nicely. A typical process running on the machine will not be able to talk to the reverse forwarded service thanks to the Unix file permissions. Lastly, using ed25519 or ecdsa ssh keys would make the initial connection process very quick compared to using RSA.
ryao
Cloudflare makes that free through their zero trust stuff and cloudflared daemon.
hakaneskici
I love your RFC-1, keep up the spirit :)
Where are your servers located?
antoniomika
Ashburn, VA and Nuremberg, DE!
raggi
What are you doing about TOFU and MITM?
antoniomika
Our host keys are published here and are durable: https://pico.sh/host-keys
raggi
So approximately nothing?
jwr
Love the idea, but I couldn't find a "pricing" page and wanted to abandon reading immediately (I have no time for unsustainable services). Then I learned from the discussion that the pricing is $2/m, which, two things: 1) I still can't find that price on the web site, and 2) it seems unsustainable to me, so I'm still worried.
I run a B2B SaaS. Support costs is what eats you alive: in case of a complex B2B app anything below $40/month is unsustainable. This is of course better for simpler apps/services, but even there you have to be super careful.
qudat
Thank you for the feedback and we agree so we have changed the header nav link from "pico+" to "pricing".
In terms of the costs to run a saas, we are actively monitoring hardware utilization and resource allocation. Antonio and I have a lot of experience building and running saas (and paas) products so we feel confident we can manage whatever usage comes our way. We have also been strategic in terms of the services we provide in an effort to keep service support manageable.
jimbosis
I had the same frustration as you with finding the pricing information. With some serendipitous clicking, I managed to find it!
It does also mention there is a $0 "Starter" tier.
(I found that link on this page:
EDIT: Mention the Starter tier.
cookiemonsieur
> I run a B2B SaaS. Support costs is what eats you alive: in case of a complex B2B app anything below $40/month is unsustainable
I agree to an extent. But it largely depends on the complexity of your offering. If all you do is expose flat data through an API, you can maybe get away with an API Gateway x Lambda x DynamoDB combo, which would cost virtually nothing as the free tier is very generous.
Just my 2c.
jwr
Well, but that API Gateway x Lambda x DynamoDB combo will not answer support E-mails, will it?
Especially with B2B, it's easy to underestimate the support load for non-technical issues.
cookiemonsieur
> Well, but that API Gateway x Lambda x DynamoDB combo will not answer support E-mails, will it?
How does that factor into the $40/month price point ?
lionkor
$40/month per user, just for support? So for 1000 users, you need to make $40,000 to be sustainable, i.e. like 10 employees?
conductr
I'm thinking not much support is needed for user's that are willing and able to do all these tasks over SSH. They've pre-filtered for low support load
Back in early 2000s I ran a shared webhosting business, most customer's were savvy at the time and it was kind of a "you're on your own, let me know if the infra is acting up" type arrangement. I ran it with about 2000 customers for a year or so solo and only got about 2 support emails a day. Back then, 24-72 hour response was acceptable so I never needed to be a 24/7 resource.
jwr
If you think you can run a business with 10 high-skilled employees on $40,000 of revenue per month, boy, have I got news for you :-)
Similarly, if you think 1000 B2B SaaS subscriptions is an easy-to-achieve number, I'd wager a bet you haven't run a B2B SaaS business.
Roughly, the calculation is: at $40/month, a single subscription brings in $480/year. That means you can safely afford to spend roughly one hour of support on a subscription PER YEAR. If you spend more than 2h, you are definitely in the red. And you will get support requests, of all kinds: the ones you expect, and then all the stuff about lost passwords, inability to log in, network problems, lost invoices, requests to change the billing period, requests for invoices from last year for a customer that has since canceled and been deleted, data export/import, etc.
People who haven't run a business routinely underestimate the costs of running a business and imagine that these numbers mean that business owners are buying yachts and private jets. People who have run a business realize that it's much more difficult to make ends meet than it seems.
blatantly
Yeah I think this why "Book a call" level customers are really subsidising it. Say $10/m/u and you get 200 seats. You pay $2000/m but the bugs you hit are likely uniform so you loaf support like maybe 20 individual users. 20 individual users only bring in 10%. So you need the whales to keep it going.
taylorbuley
Pretty unrelated, but if you are a developer and don't have a lifetime SDF.org membership, you should.
hebocon
Why SDF over a free limitless VPS?
I joined SDF last year and was disappointed. I was willing to tolerate the limitations (eg. can't change your shell unless "validated"; can't even 'touch' a file...) in exchange for community but it's a ghost town. To make matters worse, IRC for new users is only available on a Sunday!
I would love to give it another shot but I don't understand what its value is in 2025.
palata
I had never heard of that. What's your use-case for it?
IgorPartola
It basically dates back to when having access to a Unix system meant that you needed to be at a university or a big employer or some such. These guys provided one for free.
Currently you can get some basic email, web hosting, etc. for a one time $1 donation. You can get more for a one time $36 donation.
They also have internal “forums” and chat and such as well as offering a bunch of related services like VPS, dial up, VPN, a Minecraft server, etc. Realistically, you can get a lot more for a lot less with modern hosts but between nostalgia and the limited environment having a particular kind of charm, it is kinda neat.
palata
Right. Some kind of community, in a way.
polishdude20
So this seems to be a membership to access a remote Unix system and share it with others?
oldandboring
Very timely for this to come up. Just this morning I was wiring up a personal blog with Obsidian -> Hugo -> Github Pages. I might swap Github Pages out for Pico.sh, it's definitely my kinda service. Well, either that or self-host it.
stego-tech
Love the KISS approach to your services. Simple text files, built on fundamental services. Honestly also a great way to build SSH (and associated suite) chops for folks just entering Linux/Unix/BSD/*nix world or who only know Windows.
Going to poke at it this week myself. Looks like a healthy competitor to PikaPods for the basic stuff.
Keep up the good work!
mxuribe
How interesting! I'm excited by all the energy lately that i've seen around more text-based fun stuff, from Gemini to tilde communities to more TUIs/TUI apps, to this ssh powered set of services! Keep 'em coming!
bayindirh
pico.sh is not new by any means. I was using them ~3 years ago (or maybe even for longer), with their lists.sh service.
After I opened my blog, they launched prose.sh, and rest of the services soon after, but since I settled on my blog, and didn't want to change horses, and they discontinued lists.sh, I had to part ways with them.
I admire what they've built though, and wish them best of luck.
sjtgraham
$2/month is way too cheap. What's the realistic market size here? How much of that is achievable to capture within 24 months? It doesn't seem like it would even support a single developer's salary within that time. Things like this make me worry that this will not be around for long. Even an extremely talented and motivated solo founder will run out of steam earning a fraction of what their skills are worth serving the most fussy, demanding and ungrateful audience imaginable: nerds.
OP increase your prices!
tempfile
That's fun, I found and subscribed to tuns.sh only 2 weeks ago. (I wrote up my experience, too https://danielittlewood.xyz/notes/self-hosting-with-tunnels)
scbenet
Big fan of pico.sh, been hosting a few small sites on there for a while now, no faster way to get something up and running
amelius
My company blocks ssh. Is there a way to tunnel this through HTTP?
palata
I agree. Something like what GitHub offers? https://docs.github.com/en/authentication/troubleshooting-ss...
cuanim
Cockscrew might fit your usecase[1]
johnklos
Stupid company!
I keep a machine which has sshd listening on the IMAPS port (993) for when I'm traveling. It's amazing how many free networks don't allow ssh, but with -J and sshd on port 993, that really doesn't matter.
lormayna
A NGFW, frequently used in the enterprise environments will block it. They are checking the package signatures, not only the YCP ports.
null
prmoustache
Use that from home or a mobile phone connection?
You probably aren't supposed to update your personal website and stuff when you are working for your company anyway.
chasil
I have heard that SSH could be tunneled over DNS UDP packets.
This looks like a decent article, will read later.
https://medium.com/@rogergalo/learn-how-easy-is-to-bypass-fi...
palata
Not sure if it has to go that far. Probably it's just blocking port 22.
mbreese
Agreed. You can host both SSH and HTTPS on port 443. I know this used to be possible with HAProxy, but now Nginx can do it as well. This way you are hosting normal HTTPS traffic when a browser is used and SSH otherwise.
Now, if your company is actually blocking the SSH protocol, you’ll have to do something like tunneling SSH through SSL, which is also possible… but not as easier IIRC.
Alright, i had plans to use Github (or maybe something Cloudflare ish) but your $2/m has me seriously interested. I'm reviewing now.
I hate when i see fun side projects that cost the same as full subscriptions to other products. There's only a handful of $15/m services i "want" in my life.. it really raises the barrier to entry when i'm so aware and averse to subscription costs.
Yet $2/m? Instantly sold on that price. It's a fun price, it looks like a fun product, it lines up perfectly for me. It's silly that the price has me almost more interested than the product. Love it
Thanks for this, i plan to try it out!