## What we just shipped

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

## What is Webshot?

[Webshot](https://webshot.site/) 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](https://worldip.io/) (IPv4 lookup), [Tuxxin Convert](https://convert.tuxxin.com/) (image format converter), [QR Track](https://qr-track.tuxxin.com/) (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](https://github.com/tuxxin/webshot.site-sdk) 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](mailto: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](https://github.com/tuxxin/webshot.site-sdk/issues) is the right place to flag it.

### Links

- 📦 **SDK repo:** [github.com/tuxxin/webshot.site-sdk](https://github.com/tuxxin/webshot.site-sdk)
- 🌐 **Live service:** [webshot.site](https://webshot.site/)
- 📚 **API docs:** [webshot.site/developers](https://webshot.site/developers)
- 🚀 **Use cases & workflows:** [webshot.site/use-cases](https://webshot.site/use-cases)
- 🛠️ **Other Tuxxin tools:**tuxxin.com
