I'm a big fan of pico.sh (it's one of my main inspiration for smallweb.run).
I'm sure you're aware of it, but it might be interesting to others: caddy exposes all of it's internal as library you can easily integrate to your projects: https://github.com/caddyserver/certmagic
I've been working on a similar platform (https://smallweb.run), which allows me to host all my side projects from a single root folder. Each subfolder automatically becomes a subdomain, and I can just use vscode remote ssh or mutagen to live edit my websites.
> and I can just use vscode remote ssh or mutagen to live edit my websites
What is old is new again :) Back when I started development, we did this via git remotes, and some projects even did what you created and created environments mapped from git remotes to apps running with subdomains (like Dokku is probably the first/most memorable FOSS service for this back in the day).
And before that, I'm sure people were doing the same thing with Java WARs or similar, and before that, something else but similar.
The main difference is that smallweb use deno instead of docker for sandboxing apps, and leverages url imports (which can be used to distribute complex apps like VS Code):
```
import { VSCode } from "jsr:@smallweb/vscode@0.1.7"
const vscode = new VSCode({
rootDir: Deno.env.get("SMALLWEB_DIR")
});
By "VSCode" here you mean something like a HTTP API for file read/write[0] that can be used from VSCode, I think? VSCode also can be made into a web app[1], but I don't see that happening here.
> The main difference is that smallweb use deno instead of docker for sandboxing apps
Yeah, a single-runtime (smallweb) instead of any language (dokku) + I'd probably say the avoidance of using git for the delivery would be the two biggest differences I can glance.
I even use the underlying lib ssh implementation of pico.sh in smallweb (https://github.com/picosh/pobj), and I plan to introduce a cloud service similar to their (you can subscribe to the waitlist at https://cloud.smallweb.run)
Smallweb also allows you to run server-side code using deno. The main process watch for changes in the app directories, and automatically restart the corresponding deno processes when a change is detected.
If you ever interacted with cloudflare workers or https://val.town, it is a similar experience.
Hi! Kudos for the work on SmallWeb. I actually attempted to run this on your platform as well. I was able to run it partially on Cloudflare workers, so I trust it's compatible with environments like SmallWeb as well. Let's see!
Smallweb is inspired both by serverless platforms (e.g. cloudflare workers and val.town), and older standards like cgi-bin. To create a new app, you just create a new file, and you're basically done.
Smallweb is super easy to self-host (you can even keep it local to your device). It is distributed as a single golang binary, and there is an install script allowing you to set it up on a new VPS with a single command (https work out of the box, no need to set DNS records):
Since the app is based on deno, it supports url imports. It allows you to host complex apps like vscode or excalidraw by writing 3 lines of code: https://www.smallweb.run/examples#excalidraw
`cmd+?` works, but it's visually quite hard to follow. The raycast version looks much more like an universal command palette, and supports fuzzy matching.
I'm working on a `tweety edit` command which open arbitrary files in your $EDITOR of choice in a new tab.