We Open-Sourced the Webshot SDKs (JavaScript, Python, PHP)
Software & Apps

We Open-Sourced the Webshot SDKs (JavaScript, Python, PHP)

Tuxxin · · 3 min read
Share: Twitter Facebook LinkedIn

What we just shipped

Today we made three of our internal client libraries public: the official SDKs for the Webshot screenshot API, in JavaScript/TypeScript, Python, and PHP. They’re live on GitHub at github.com/tuxxin/webshot.site-sdk — MIT-licensed, free for personal and commercial use, no signup or API key required.

What is Webshot?

Webshot is a free service we built that captures any public webpage as a PNG, JPG, WebP, or PDF. It runs on a real headless Chrome browser on our infrastructure — the kind of setup that normally takes a developer half a day to wire up locally with Puppeteer (and another half-day to keep the Chromium binary updated). With Webshot you skip the install entirely and just call an HTTP API.

It’s part of the broader Tuxxin Suite — a collection of small, free, no-account web tools we build and maintain for the developer community. Other tools in the suite include WorldIP.io (IPv4 lookup), Tuxxin Convert (image format converter), QR Track (self-hosted QR code tracking), and others.

Why we open-sourced the SDKs

The bare Webshot API has been live and free for a while. It works fine from any HTTP client — curl, fetch, requests, whatever. But every developer who built something on it ended up writing the same wrapper code: timeout handling, rate-limit retry logic, error class hierarchies, type definitions for the request and response shapes.

So we wrote those wrappers once, in three languages, and put them on GitHub. The code is small (around 200 lines per language for the actual client logic), well-tested, and intentionally idiomatic to each ecosystem — the JavaScript version uses native fetch and ships TypeScript types; the Python version offers both sync and async clients; the PHP version is composer-installable with PSR-4 autoloading and zero outside dependencies.

Open-sourcing the SDKs aligns with how we’ve always positioned the Webshot service: free, no-account, no-watermark. Locking the SDKs behind a private repo or a paid tier would have been a bad fit. They live on GitHub under the MIT license; install commands are npm install @tuxxin/webshot, pip install webshot, or composer require tuxxin/webshot depending on your stack.

Three-line quickstart

Here’s what calling Webshot from JavaScript looks like once you’ve installed the SDK:

import { WebshotClient } from '@tuxxin/webshot';

const client = new WebshotClient();
const shot   = await client.capture({ url: 'https://example.com', format: 'png' });
// shot.bytes is a Uint8Array — write it to disk, stream it, etc.

Python and PHP have the same shape with their respective idioms. The repo README has the full quickstart for each language, plus per-language READMEs and runnable example scripts.

What this is not

This isn’t a pivot, a rebrand, or a paid-tier launch. The free Webshot service stays free; the API stays open and rate-limited at the same 5-captures-per-15-minutes-per-IP that’s been there since launch. If you outgrow that — high-volume monitoring, dedicated capacity, custom request headers for authenticated captures — sales@tuxxin.com handles those conversations and usually replies same-day. But the public service stays the way it’s always been.

What’s next

The first three SDK languages cover roughly the bulk of inbound Webshot traffic. If interest in Go, Ruby, Rust, or .NET ports lights up — signal that with a star on the GitHub repo or an issue — those are the obvious next adds. Each port follows the same client-and-three-exception-classes contract, so they’re mostly translation work.

If you build something with the new SDKs, we’d love to see it. Tag Tuxxin on whichever platform you post and we’ll boost it. And if there’s a screenshot workflow you’d like Webshot to make easier, the issue tracker is the right place to flag it.

Links

Share: 𝕏 Twitter Facebook LinkedIn