Now and again, I discover a service that’s so straightforward, I can hardly believe it works at all. The SSH-powered hosting service, pico.sh, is a perfect example.
You might not think this competitor to GitHub Pages can make hosting a static site any easier, but you’d be wrong. With single-step setup, easy management, and a handy TUI, pico.sh is the perfect host for simple sites; and it’s totally free, too!
What is pico.sh?
Services like GitHub Pages have made static hosting free and easy. For sites like blogs, software documentation, or even simple product pages, they offer everything you need. pico.sh does the same thing, but with less setup, easier ongoing maintenance, and some convenient extras.
The core selling point may be its Pages feature. Using it, you can deploy a static website with a single command, like rsync. But it’s not the only thing on offer: there’s also a blogging platform, data streaming, a pastebin equivalent, and more.
How to set up a simple site using pico.sh
Initial setup couldn’t be any easier. Start by logging into the pico server using this command:
ssh pico.sh
If you already have an SSH public key, you should be connected to the server, which will display a screen looking something like this:
If you don’t have any SSH keys, you should generate one using a command like this:
ssh-keygen -t ed25519 -C “your_email@example.com”
Make sure you understand how to create SSH keys if you’re unsure of the exact details to use here.
If you have more than one SSH key, consult pico’s documentation to ensure the correct key is used.
Once you’ve connected, you’ll see a text box for your signup (username), which you need to provide to complete the process. That’s it, though: now you’re done, there’s no need to go through this process again. If you have SSH set up nicely, future connections and uploads will be seamless.
To test the service, try uploading a file to a project. You can do this using any SSH-compatible command, like scp or rsync. You can even use sshfs to avoid manually syncing files altogether.
For example, to copy a single file, named filename, to a project named project, run this command:
scp filename pgs.sh:/project
When you upload a file, you should see the service respond with a public URL, alongside a few stats:
Note that the final URL should be of the form https://{username}-{project}.pgs.sh/{path/to/file}. Using scp, you can specify a directory for your file. If you’re working with a site that has several directory levels, rsync can help you update everything with a single step.
What else can you do with the service?
For me, the Pages service is the most compelling, and it’s a great companion for GitHub Pages, if not an outright replacement for it. But pico.sh offers some additional features.
Blogging with prose.sh
Hosts like GitHub and DigitalOcean provide a free static site generator that processes Markdown files using Jekyll. pico.sh has its own blogging engine that turns Markdown files into HTML, adds some CSS for style, and generates a contents page. You can explore the official pico.sh blog to get an idea of what’s possible:
The process for uploading your blog posts is nearly the same as before; just use the prose.sh domain, e.g.:
rsync -r ./blog prose.sh:/
Code upload with pastes.sh
The Pastes feature provides a plain-text store that is ideal for code snippets, much like GitHub’s Gist service. Upload a text file, and pico will render it as a syntax-highlighted, line-numbered file, with a button to copy everything, and a link to the raw file.
This is a simplified equivalent of GitHub gists, or Pastebin, but it does the minimum you’ll need to share code snippets, and—like all of pico’s services—it does it really well.
Data streaming, public web services from localhost, and more
Additional services are available: an RSS-to-email agent, a pubsub system for data streaming, and a tunneling service to host public web services on your local machine.
If you want to use the service for a production site, you can point a custom domain to the pico servers and use your own URLs. You can also use the Prose and Pages services to host images, with some reasonable usage terms. In theory, you could use this as an alternative to Imgur, which is great news for those of us based in the UK.
At any time, you can ssh into pico.sh and use the TUI dashboard. You probably won’t need to use this much, but it’s a nice way to view metrics and keep track of what you’ve uploaded.
The pico.sh service provides plenty of value on its free tier, but a low-cost upgrade is available if you want more space, analytics, and use of the tunneling feature, tuns. The cost is currently $2/month.

