Official client libraries for integrating ShipPulse into your application.
Core SDK — works in any JavaScript environment (browser, Node.js, Deno, Bun).
npm install @shippulse/jsimport { ShipPulse } from "@shippulse/js";
const sp = new ShipPulse({ apiKey: "sp_live_..." });
// List testimonials
const testimonials = await sp.testimonials.list({ status: "approved" });
// Create a changelog entry
await sp.changelog.create({
title: "Dark mode is here",
body: "<p>We shipped dark mode for all widgets.</p>",
type: "feature",
published: true,
});
// Get monitors
const monitors = await sp.monitors.list();| Module | Methods |
|---|---|
sp.testimonials | list(), get(id), create(data), update(id, data), delete(id) |
sp.changelog | list(), get(id), create(data), update(id, data), delete(id) |
sp.monitors | list(), get(id), create(data), update(id, data), delete(id) |
sp.incidents | list(), create(data), addUpdate(id, data) |
sp.subscribers | list(), add(email), remove(id) |
sp.widgets | list() |
React hooks and components for embedding ShipPulse data in React/Next.js applications.
npm install @shippulse/react @shippulse/jsimport { ShipPulseProvider } from "@shippulse/react";
function App({ children }) {
return (
<ShipPulseProvider apiKey="sp_live_...">
{children}
</ShipPulseProvider>
);
}import { useTestimonials, useChangelog, useMonitors } from "@shippulse/react";
function Wall() {
const { data, isLoading, error } = useTestimonials({ status: "approved" });
if (isLoading) return <p>Loading...</p>;
return data.map((t) => <div key={t.id}>{t.content}</div>);
}
function ChangelogFeed() {
const { data } = useChangelog({ limit: 10 });
return data.map((e) => <article key={e.id}>{e.title}</article>);
}
function StatusBar() {
const { data } = useMonitors();
const allUp = data?.every((m) => m.current_status === "up");
return <span>{allUp ? "All systems operational" : "Issues detected"}</span>;
}| Component | Description |
|---|---|
<ShipPulseProvider> | Context provider — wrap your app with it |
<TestimonialWall> | Pre-built wall of love component |
<ChangelogWidget> | Sidebar/modal changelog widget |
Server-side utilities for Node.js — webhook signature verification, server-side API calls.
npm install @shippulse/nodeimport { verifyWebhookSignature } from "@shippulse/node";
app.post("/webhooks/shippulse", (req, res) => {
const isValid = verifyWebhookSignature(
req.body,
req.headers["x-shippulse-signature"],
process.env.SHIPPULSE_WEBHOOK_SECRET
);
if (!isValid) return res.status(401).send("Invalid signature");
const event = req.body;
console.log("Event:", event.type, event.data);
res.status(200).send("OK");
});import { createServerClient } from "@shippulse/node";
const sp = createServerClient({ apiKey: process.env.SHIPPULSE_API_KEY });
// All methods from @shippulse/js are available
const approved = await sp.testimonials.list({ status: "approved" });