Get Started
Quickstart
Create a workspace project, then verify one observed signal — an HTTP check, a browser beacon, or a log line. Nothing appears until traffic or a check result exists.
What you will do
In under fifteen minutes you can: sign in, create or select a project, and confirm at least one path in Observe → Understand → Act — a monitor result in Monitoring, a session in Browser, or an entry in Logs (Pro+).
Why start here
Mydle is project-scoped. SDKs and monitors attach to a project inside a workspace. Starting with one verified signal confirms tenancy, entitlements, and ingest before you wire correlation or incidents.
How — account & project
- Sign in at mydle.app/login. A personal workspace is provisioned on signup.
- Open /app and create a project (Free allows up to 2 projects).
- Keep the active project selected in the app shell — monitors and telemetry keys are project-scoped.
How — first HTTP monitor
Free and above include HTTP monitoring. In the project, open Monitoring, create an HTTP rule against a public URL you control, and wait for a real check result. Health stays empty until workers have observed a run — continuous execution requires production Trigger workers.
Details: HTTP Monitoring.
How — browser RUM
Install @mydle/browser-sdk and initialize with a publishable project key (pk_live_… or pk_test_…) from Settings → API Keys or Browser Monitoring.
npm install @mydle/browser-sdk
import { mydle } from "@mydle/browser-sdk";
mydle.init({
projectKey: "pk_live_YOUR_PUBLISHABLE_KEY",
// endpoint defaults to https://www.mydle.app/api/rum/v1/ingest
});
mydle.track("signup_click");
await mydle.flush();Load a page in a real browser, then open /app/browser. Free includes 10,000 browser events / month; Pro / Team / Enterprise are unlimited for browser volume.
Full install guide: Browser installation.
How — structured logs
Log management requires Pro+. Use @mydle/logs on the server with a secret project key (sk_live_…) or a legacy source token (lt_…). Never put secrets in browser bundles.
npm install @mydle/logs
import { createMydleLogger } from "@mydle/logs";
const logger = createMydleLogger({
apiKey: "sk_live_YOUR_SECRET_KEY",
service: "api",
environment: "production",
});
logger.info("boot complete", { release: "1.0.0" });
await logger.flush();Confirm in /app/logs. Ingest endpoint: POST /api/logs/v1/ingest.
Config checklist
- Active workspace + project in /app
- Browser: publishable
pk_…key only - Logs: secret
sk_…orlt_…on the server only - Optional
environment/releasetags for filtering — see Environments - Plan entitlements match the surface you are testing (logs / tracing need Pro+)
Limits that apply
- Free: 1 workspace, 2 projects, HTTP only, 10k browser events / mo
- Pro: $19 / mo or $182.40 / yr — logs 10 GiB / 7d
- Team: $79 / mo or $758.40 / yr — logs 100 GiB / 30d
- Enterprise: contract for log volume / retention and API access
Canonical table: Limits & Quotas.
Failures & empty states
- Empty Monitoring / Browser / Logs views mean no observed data yet — not a synthetic “healthy” default.
- 401 / 403 on ingest usually means wrong key type, revoked key, or plan gate (for example Free calling log ingest).
- Monitor rules without running workers will not accumulate results.
- Do not paste real secrets into docs, tickets, or client-side code.