
Security News
Happy Birthday, Shai-Hulud
It has been one year since Shai-Hulud made its first appearance on npm.
Official TypeScript SDK for SnapForge — Dynamic OG Image & Screenshot API.
npm install snapforge
import SnapForge from 'snapforge';
const sf = new SnapForge({ apiKey: 'sf_live_your_key' });
// Get a URL for use in meta tags
const url = sf.getOgUrl({
template: 'blog-post',
params: { title: 'Hello World', author: 'Jane Doe' },
});
// → https://api.snapforgehq.com/v1/og?template=blog-post&title=Hello+World&...
// Generate and download an image
const image = await sf.generateOg({
template: 'blog-post',
params: { title: 'Hello World', author: 'Jane Doe' },
});
// → ArrayBuffer (PNG)
| Template | Parameters |
|---|---|
blog-post | title, subtitle, author, bg_from, bg_to |
social | title, description, brand, bg_color, accent |
minimal | title, color, text_color |
product-hunt | tagline, description, category, upvotes |
github-card | name, description, stars, language, language_color |
new SnapForge(config)const sf = new SnapForge({
apiKey: 'sf_live_your_key', // Required
baseUrl: 'https://api.snapforgehq.com', // Optional
});
sf.generateOg(options) → Promise<ArrayBuffer>Generate an OG image and return the PNG as an ArrayBuffer.
sf.getOgUrl(options) → stringGet a URL that generates the image on request. Use this in <meta> tags.
sf.screenshot(options) → Promise<ArrayBuffer>Capture a screenshot. Requires Starter plan or higher.
const screenshot = await sf.screenshot({
url: 'https://example.com',
width: 1280,
height: 720,
});
sf.getUsage() → Promise<UsageStats>Get current usage stats.
sf.getTemplates() → Promise<TemplateInfo[]>List available templates.
FAQs
Official SDK for SnapForge - Dynamic OG Image & Screenshot API
We found that snapforge demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
It has been one year since Shai-Hulud made its first appearance on npm.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.

Security News
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.