I just realized there is an HN post about Traceway. I didn't make it, and unfortunately my account is rate limited so I can't reply to everyone. I've written my response here
Built on OpenTelemetry
OpenTelemetry-native observability. Open source. Self-hosted in 90 seconds.
---
Traceway is an **OpenTelemetry-native** observability platform that combines **logs, traces, metrics, session replay/RUM, exceptions, and AI tracing** together. Point an OTLP exporter at it and you're in business. No Collector, no glue code, no per-language vendor SDK.
**MIT licensed. No BSL. No "open core."** Every feature is in the box. Self-host it for free, or run it on [Traceway Cloud](https://cloud.tracewayapp.com) if you'd rather not babysit infra.
## What's in the box
- **Logs** โ Structured, trace-linked, sub-second search. Native OTLP/HTTP ingest from any OTel SDK.
- **Traces** โ End-to-end span waterfalls across every service. Click a log, jump to its span.
- **Metrics** โ Host, runtime, and custom metrics. Any dimension, any chart, with custom widget groups.
- **Exceptions** โ SHA-256 normalized stack traces grouped into ranked issues. Source-mapped (webpack, esbuild, Vite).
- **Session Replay** โ Watch what the user did right before the error. Available for web (any JS framework) and Flutter.
- **AI Observability** โ LLM cost, tokens, latency, and full conversations across providers (OpenRouter and any OTel-compatible AI gateway).
Plus: configurable alerts (Slack / GitHub / email / webhook / Pushover / Telegram), Apdex + Impact-Score endpoint ranking, multi-tenant orgs with role-based access, and a per-endpoint slow-threshold override.
## Why Traceway
| | Enterprise (Datadog / New Relic) | DIY OSS stack (Prometheus + Loki + Tempo + ...) | **Traceway** |
| ------------------------ | -------------------------------- | ----------------------------------------------- | --------------------------------- |
| **Pricing** | Per-event, per-host, per-seat | Free + ops time | Self-host free, fixed cloud tiers |
| **Setup** | Vendor SDK per language | Glue 6 tools together | `docker compose up -d` |
| **License** | Proprietary | Mixed (some BSL / open-core) | **MIT โ no asterisks** |
| **OTel** | Wrapped in vendor SDK | OTel Collector required | **Native OTLP/HTTP ingest** |
| **Replay + traces + AI** | 3 separate products | Wire it yourself | One system, one trace ID |
## Quick Start
### Self-host with Docker (recommended)
```bash
git clone https://github.com/tracewayapp/traceway
cd traceway && docker compose up -d
# โ dashboard at http://localhost
```
Point any OTel SDK at `http://localhost/api/otel/v1/traces` (or `/metrics`, `/logs`) and traces start flowing. See the [self-hosting docs](https://docs.tracewayapp.com/server/docker-compose) for production deployment, TLS, and storage configuration.
**Docker images are cryptographically signed.** See [DOCKER_SIGNATURES.md](./DOCKER_SIGNATURES.md) to verify images before deploying.
### Embedded mode (inside your Go app)
Run Traceway inside your Go process โ no Docker, no external databases, SQLite under the hood:
```bash
go get github.com/tracewayapp/traceway/backend
```
```go
import tracewaybackend "github.com/tracewayapp/traceway/backend"
func main() {
go tracewaybackend.Run(
tracewaybackend.WithPort(8082),
tracewaybackend.WithDefaultUser("admin@localhost.com", "admin"),
tracewaybackend.WithDefaultProject("My App", "go", "dev-token"),
)
// ... start your app, point its OTel exporter to http://localhost:8082/api/otel/v1/traces
}
```
Open `http://localhost:8082`, log in, and hit your app to see traces appear. Full walkthrough in the [embedded mode guide](https://docs.tracewayapp.com/learn/embedded-mode), or check the [working example](./examples/embedded-backend-otel).
## Supported Integrations
Traceway integrates with the tools you already use. Every integration ships traces, metrics, and logs over **OTLP/HTTP** โ no proprietary SDK required.
> View the full list in the [documentation](https://docs.tracewayapp.com/client). Missing a framework? [Open an issue](https://github.com/tracewayapp/traceway/issues) to request it.
### Backend
## Tech Stack
| Component | Technology |
| ------------- | ----------------------------------------------------- |
| Backend | Go 1.25, Gin |
| Frontend | SvelteKit 2, Svelte 5, Tailwind CSS v4 |
| Telemetry DB | ClickHouse (standalone) or SQLite (embedded) |
| Relational DB | PostgreSQL (standalone) or SQLite (embedded) |
| Ingest | OTLP/HTTP (Protobuf + JSON) for traces, metrics, logs |
## Project Structure
| Directory | Description |
| ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `backend/` | Go/Gin API server โ OTLP ingest, REST API, notifications, migrations |
| `frontend/` | SvelteKit 2 dashboard SPA |
| `docs/` | Documentation site (Nextra) |
| `examples/` | Working examples โ [embedded mode](./examples/embedded-backend-otel) and OTel-instrumented apps ([Express](./examples/express-otel), [NestJS](./examples/nestjs-otel), [Next.js](./examples/nextjs-otel), [Hono](./examples/hono-otel)) |
| `website/` | Landing page |
## Build Tags
| Tag | Purpose |
| ----------- | --------------------------------------------------------------------------------------------------------------- |
| _(none)_ | SQLite storage โ embedded mode, zero dependencies. This is the default. |
| `pgch` | ClickHouse + PostgreSQL storage โ standalone server mode. |
| `localdist` | Embeds frontend from `static/dist/` instead of `static/frontend/`. Used by traceway-cloud to inject billing UI. |
```bash
# Embedded mode (SQLite, default)
cd backend && go build ./cmd/traceway
# Standalone server (ClickHouse + PostgreSQL)
cd backend && go build -tags pgch ./cmd/traceway
```
## Running Tests
```bash
# SQLite tests (default, no tags needed)
cd backend && go test -v -count=1 ./app/repositories/
# ClickHouse + PostgreSQL tests (requires Docker)
./scripts/test-backend-pgch.sh
# OTEL trace converter tests (no DB required)
cd backend && go test -v -count=1 ./app/controllers/otelcontrollers/
# Update OTEL golden files after intentional converter changes
cd backend && go test -v -count=1 -args -update ./app/controllers/otelcontrollers/
```
## Documentation
Full documentation at **[docs.tracewayapp.com](https://docs.tracewayapp.com)**:
- [**Client SDKs**](https://docs.tracewayapp.com/client) โ OpenTelemetry, Go, Node.js, Python, and more
- [**Self-Hosting**](https://docs.tracewayapp.com/server) โ Docker Compose and production deployment
- [**Concepts**](https://docs.tracewayapp.com/learn) โ How tracing, exception grouping, metrics, and alerts work
- [**Embedded Mode**](https://docs.tracewayapp.com/learn/embedded-mode) โ Run Traceway inside your Go app
## Community
Traceway is built in the open, and the **[Discord community](https://discord.gg/9tPn2SB3)** is where it happens. Come say hi โ whether you're kicking the tires, running it in production, or just curious. We use it to:
- ๐ฃ๏ธ **Talk through ideas** โ feature requests, integration asks, roadmap input
- ๐ **Help each other out** โ setup, OTel wiring, deployment questions
- ๐ **Show & tell** โ share what you're building and how you're using Traceway
- ๐ **Catch bugs early** โ report issues and get fast feedback from maintainers
- ๐ **Get the inside scoop** โ sneak peeks at what's shipping next
## Contribute
Contributions are welcome โ pull requests get reviewed and merged. If you're not sure where to start or want to discuss an idea first, [open an issue](https://github.com/tracewayapp/traceway/issues) or drop by the [community Discord](https://discord.gg/9tPn2SB3) and we'll talk it through.
## Links
- [Website](https://tracewayapp.com)
- [Documentation](https://docs.tracewayapp.com)
- [Traceway Cloud](https://cloud.tracewayapp.com) โ managed hosting (same MIT code, run by us)
- [Community Discord](https://discord.gg/9tPn2SB3) โ chat with the team and other users