Make my website your screenshot uploader
ShareX can upload screenshots to any endpoint you describe in a tiny .sxcu file. So I made my own site one of those endpoints — token-gated, EXIF-stripped, and branded — and built a live repo spotlight and a config builder around it. A build log.
ShareX's custom uploader is the most underrated extensibility feature in desktop software. Point it at any HTTP endpoint with a small JSON file and every screenshot you take flows there. I pointed it at my own site. Here is how, and what it taught me about making an integration promotional in both directions at once.
The .sxcu is just a contract
A ShareX custom uploader is a JSON file (a .sxcu) describing a request — the URL, the method, the headers, the multipart field the image rides in — and how to read the hosted URL back out of the response with a {json:url} expression. That is the entire protocol. Because it is so small, the integration splits cleanly into two halves: an endpoint that accepts the upload and returns a URL, and the .sxcu that points ShareX at it. I built a pure, client-side config builder for the second half (it writes a valid .sxcu for any endpoint) and a token-gated endpoint for the first.
Token-gated, not an open image host
The tempting version is an uploader anyone can use. That is also how you end up hosting other people's problems: bandwidth, moderation, illegal content. So mine is token-gated. I mint a token, store only its SHA-256 hash, and show the plaintext exactly once so it can go in the .sxcu's Authorization header. The endpoint verifies the bearer token before it stores a single byte, with a per-token rate limit and a coarse per-IP guard in front. It reads as 'my personal uploader, powered by my site' rather than a public free-for-all.
The part that is actually promotional
Every upload comes back as a link on my own domain — jakelawrence.xyz/sx/<id> — that 302-redirects to the CDN object. The bytes are served cheaply by Cloudflare R2, but the link I paste into a chat carries my domain, not a generic bucket host. That is the whole trick: the integration points both ways. I get a spotlight page that rides ShareX's popularity, and ShareX puts my brand on everything I share. A privacy detail I cared about: every image is run through sharp to strip EXIF and GPS before it is stored, keeping the resolution but not the location it was taken.
Get the next one
An occasional note when something genuinely new ships here — essays, free tools, projects. No schedule, no filler, easy out.
Need something like this built?
I design and ship AI tools, full-stack apps, and data pipelines — end to end, to production. Tell me the problem in a sentence; I'll give you an honest read on fit within a day.
Work with me →