When I wanted to self-host a pastebin, every option I found was too much. Git-based version control, OAuth, elaborate admin panels. I just wanted something I could deploy in under a minute with a CLI that actually works.
So I built pbnj (yes, like the sandwich).
What it is:
- A minimal, beautiful pastebin with syntax highlighting for 100+ languages
- One-click deploy to Cloudflare (free tier gives you ~100,000 pastes)
- CLI-first: pbnj file.py → get a URL, copied to clipboard
- Memorable URLs: crunchy-peanut-butter-sandwich instead of x7f9a2
- Private pastes with optional secret keys
- Web UI for when you're not in a terminal
What it isn't:
- No accounts, no OAuth, no git integration
- No multi-user support (fork it and run your own)
- No expiring pastes, no folders, no comments
- Not trying to replace Gist or be a "platform"
Why not just use Gist? Maybe you want to own your data. Maybe you enjoy self-hosting things. Or maybe you're a little autistic like me and just like having your own stuff.
Live demo: https://pbnj.sh GitHub: https://github.com/bhavnicksm/pbnj CLI: npm install -g @pbnjs/cli
If this scratches an itch for you, I'd appreciate a star on GitHub. Happy to answer any questions!
This is super neat though, and could almost be used as a blog replacement (if of course I could prevent others from using it/posting to it :) )
Also, when I tried to add something on the demo site, it asked me for an auth key.
Looking at the code, the package.json file has an entry for AUTH_KEY (in the Cloudflare config) to prevent random people from pasting stuff.
But Cloudflare is not self hosting!
I couldn't find the right words to describe this, in comparison to something like Github Gist. I suppose "Own-your-data" since the D1 db generated is yours completely.
Happy to change the branding to be more reflective of this!
Right now, some things are somewhat hard-coded to be Cloudflare compatible. If someone's willing, you can just deploy this without Cloudflare, but you'd need to dig into the code a little.
In the future releases, I'll make it possible to host it on VPCs and release a Dockerfile along with it, so that should help a little.
Thanks for checking the project out!
Not exactly "without CloudFlare", but for true compat you can probably also self host workerd itself which is open source: github.com/cloudflare/workerd
should do it
404.png .assetsignore _astro/ bread.png favicon.png favicon.svg jelly.png lock.png logo.png og-image.png pbnj.png peanut.png _routes.json styles/ _worker.js/
In it. What comes next?
- run pnpm dlx http-serve
- navigate to one of the provided ip addresses
(this uses the tunnl.gg service and is not necessary for local network access)
- [optional, for access via internet] run ssh -t -R 80:[provided ip address including port] proxy.tunnl.gg