Install an SDK

Beacon ships native SDKs for three platforms. Pick the one that matches your application:

  • .NET 8+ (WPF, WinForms, MAUI, ASP.NET Core, console apps, Windows Services)
  • C++17+ (native desktop apps, server processes, cross-platform builds)
  • JavaScript / TypeScript (browser apps, Electron, Node.js)

SDKs handle event batching, offline persistence, automatic session management, retries, and breadcrumbs out of the box. For most integrations, the SDK is what you want — the REST API is only useful when no SDK fits your environment.

What you’ll need

Before installing, have these on hand:

  • Your product’s slug — created in the previous step. The SDK’s source_app (.NET / C++) or sourceApp (JS) value must match this exactly.
  • Your API key — the plaintext you copied. The SDK’s api_key / apiKey field uses it.
  • Your application’s version string — the SDK’s source_version / sourceVersion field uses it. Most teams use the assembly version, npm package version, or git tag.

Choose your platform

Detailed integration guides — installation commands, configuration tables, every SDK method, troubleshooting — live in the developer documentation. Pick your platform:

SDKPackageSetup guide
.NETSoftAgility.Beacon (NuGet).NET SDK guide
C++beacon-sdk-cpp (CMake FetchContent / source)C++ SDK guide
JavaScript / TypeScript@softagility/beacon-js (npm)JS / TS SDK guide

The setup guides include language-specific configuration patterns (dependency injection for .NET, ESM/CJS/UMD for JavaScript, CMake conventions for C++), system requirements, and example projects. They’re the source of truth for how to wire the SDK into your codebase.

What your developer needs from you

Whoever installs the SDK needs four pieces of configuration. Two of them you’ve already created in earlier steps:

  • API base URL — the same for everyone: https://api.beacon.softagility.com
  • API key — the plaintext you copied in Generate an API key
  • Source app — the slug of the product you created (not the display name; the slug)
  • Source version — your application’s version string (e.g., 1.2.0). The SDK uses this to distinguish releases on the dashboard.

Hand off to your developer

If you’re not the developer integrating the SDK, this is a good place to bring them in. Send them:

  1. The setup guide link for the relevant platform (the table above).
  2. Your product slug (from Create your first product).
  3. The plaintext API key — deliver via your secret manager, not email or chat.
  4. The version string they should send as source_version / sourceVersion.

If your developer isn’t on your Beacon account yet, invite them — they’ll be able to verify their integration in the Beacon dashboard once events start flowing.

What’s next

The SDK is configured but not yet emitting events you can see. Track your first event from your application — a button click, a page view, anything — and then verify it lands in Beacon.

Verify your first event

Common questions

Do I need to register events ahead of time? No. By default, any event your SDK sends is accepted as long as the category and name pass basic validation. Allowlists let you tighten this later if you want to be strict about what’s accepted, but they’re optional for getting started.

Can my application send events before the user has identified themselves? Yes. The SDK auto-generates an anonymous actor ID and persists it. When the user signs in, call Identify (or the equivalent) to associate the existing anonymous events with the identified user.

My SDK isn’t on the list above — can I still use Beacon? Yes. The REST API accepts any HTTP client that can send a Bearer-authenticated POST. Java, Go, Python, Ruby, Rust — all work.