Quickstart

From zero to your first captured error in about two minutes. The steps are the same in every language — only the install command and the import change.

1. Sign up

Create a tinymon account at console.tinymon.dev/signup. Sign in with Google. There's no credit card required during the trial.

Still in waitlist? The hosted service is in private beta. Join the waitlist and we'll send an invite when slots open.

2. Create a project

A project is one logical app — your web frontend, your API server, your cron worker. Each project has its own DSN and its own issue list. Click New project in the dashboard and give it a name (e.g. web-app).

You'll get a DSN that looks like:

tm_pub_a1b2c3d4e5f6g7h8

Keep this somewhere safe — but it's also a public token, so it's fine to ship it in client-side code.

3. Install the SDK

JavaScript / TypeScript shortcut. Skip steps 3–4 — the wizard installs and wires everything (Next.js, Express, Fastify, React, Node) in one command:
$ npx tinymon-setup --dsn tm_pub_xxx
$ npm install tinymonjs

4. Initialise

This is code that goes in a source file — your app's entry point — not something you type into a terminal. Do it once, at app startup, before any other code runs. After this, uncaught exceptions are captured automatically.

// index.js — your app's entry point (a source file, not your terminal)
import { init } from 'tinymonjs';

init({
  dsn:         process.env.TINYMON_DSN,
  environment: 'production',
  release:     '1.0.0',
});

5. Test it

Add this somewhere in your app's code (again, not the terminal) and run your app — it throws once so you can confirm the event reaches your dashboard:

throw new Error('tinymon test event');

Open the dashboard. The event should appear within a few seconds. If it doesn't, see About the DSN below — 9 times out of 10 it's a DSN typo.

That's it. Uncaught exceptions are now captured automatically. For per-language details — manual capture, breadcrumbs, user context, web framework integration — see the SDK page for your language.

About the DSN

The DSN (Data Source Name) is the token that tells the SDK which project to send events to. It looks like tm_pub_…. Properties:

Wire format

Under the hood, every SDK POSTs an event JSON to https://console.tinymon.dev/api/ingest with header X-Tinymon-Key: tm_pub_…. The event shape is the same across languages and is validated against spec/event.schema.json.

If you're on a platform we don't have an SDK for yet, you can POST events directly:

$ curl -X POST https://console.tinymon.dev/api/ingest \
    -H "Content-Type: application/json" \
    -H "X-Tinymon-Key: tm_pub_…" \
    -d @event.json

The minimum required fields are event_id, timestamp, platform, level, sdk, and exception. Full schema in the repo.