SI (pronounced ess-eye
) is a Social Share Preview Image Generator.
Don't get it? Well, it's the "thumbnail" of a website, or link, or anything.
Installing is easy. It's just the matter of a few commands.
In Node.JS, you can use the good'ol shareimage
package. The v5.*.*
versions of this package support TS and uses canvas
package (which uses native code). I'm working on the new v6
of this one, which would use WASM. This will be available as @rg.dev/si
as well.
npm i shareimage
Or:
yarn add shareimage
In Deno, you can use the sideno
package. v1.*.*
versions of this package use the canvas
package (WASM). This new v2
uses the si-img
Rust crate (WASM)!
The v2
is ~6 times faster than v1
!
To use it, simply import it from deno.land:
import si from "https://deno.land/x/sideno/mod.ts"; // LATEST VERSION
Note: You can also try the new JSR package by importing it from
jsr:@regraphic/si
instead!
Note: Please use v2.0.2 or higher versions, because v2.0.0 and v2.0.1 has a critical bug preventing it from even working.
The new v2
of this package is a written from scratch one, and yes, it's a breaking change.
Here's how to use it now:
import si from "https://deno.land/x/sideno/mod.ts";
let img = new si.Image("IMG_URL_OR_UINT8ARRAY_BUFFER");
await img.init(); // Required
let font = new Font("INITIAL_FONT_URL_OR_UINT8ARRAY_BUFFER");
await font.init(); // Required as of v2.2.3
img
.text("Hello, Title", 64, 480, 254, font)
.text("Hello, tagline", 48, 480, 320, font);
// Supports chaining!
let bytes = img.as_bytes;
let duri = img.as_base64;
Coming soon...
Building it is easy, it just takes some time.
It depends on the si-rs
project, which is written in Rust. So, you need them:
- Rust
wasm32-unknown-unknown
toolchain (+ Cargo) wasm-pack
CLI (for easy building)- Some patience
To build it, simply run the scripts/build.ts
script with Deno:
deno run -Ar scripts/build.ts
Once done, you'll have a pkg
directory ready. That's all it needs.
We have been sponsored by Vercel, MacStadium.
Vercel gave us free Pro Plan access to host the documentation and other websites.
MacStadium gave us free Mac Mini Server to host the API and for builds.