Skip to content

Get Started

Pull down the repo (or your fork):

Terminal window
git clone https://github.com/getsentry/spotlight.git

Spotlight relies on a pnpm monorepo. You’ll need to install pnpm to get things going, which can be done with Volta.

Ensure the node and pnpm are available:

Terminal window
volta install node pnpm

Install the package requirements:

Terminal window
pnpm install

And finally, run an initial build:

Terminal window
pnpm build

Development

Depending on what you’re doing there’s two paths to develop against the overlay.

Against the example “Playground” application

If you simply want to run Spotlight against the example application, you can spin that up using:

Terminal window
pnpm dev:playground

With existing data

If you just want to test things out with some example traces and errors you can spin up the Spotlight repo into watch mode:

Terminal window
pnpm dev

Then head over to packages/overlay/_fixtures and run:

Terminal window
./send_to_sidecar.cjs

This will send all the sample data to Spotlight. You can also pick a specific file and pass that as an argument to the script instead:

Terminal window
./send_to_sidecar.cjs envelope_php_error.txt

Linking against an existing project

Additionally you may want to link it into an existing project. This is a little brittle, and we’re not experts here, so your mileage may vary.

First, when in the Spotlight root directory, you’ll need to link the packages you’re referencing (likely @spotlightjs/spotlight):

Terminal window
pnpm link --global -C packages/spotlight

You can now link these within your project. For example if you’re using pnpm:

Terminal window
pnpm link --global @spotlightjs/spotlight

Repository Structure

The monorepo is mostly straight forward, but here’s a quick summary:

spotlight
└── packages
├── overlay // @spotlightjs/overlay - the main overlay
├── sidecar // @spotlightjs/sidecar - the sidecar (proxy) for streaming data
├── spotlight // @spotlightjs/spotlight - the main spotlight package, combining overlay and sidecar
├── tsconfig // @spotlightjs/tsconfig - shared tsconfig
└── website // @spotlightjs/website - the main overlay