Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .devcontainer/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ services:
- "3000:3000"
- "4000:4000"
- "5555:5555"
- "8969:8969"
- "9323:9323"
- "51204:51204"
command: sleep infinity
Expand Down
1 change: 0 additions & 1 deletion .devcontainer/setup-env.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,4 @@ BETTER_AUTH_URL=http://localhost:3000
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
DATABASE_URL=postgresql://skeleton:skeleton@localhost:5432/skeleton
SENTRY_SPOTLIGHT=1
EOF
3 changes: 0 additions & 3 deletions .github/workflows/dependency-review.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,6 @@ jobs:
MPL-2.0,
Python-2.0,
Unlicense
# @sentry/cli ships under FSL-1.1-MIT (source-available, converts to MIT
# after 2 years). Scope-allowed because we depend on Sentry.
# split@0.2.x has no license field but the upstream repo is MIT.
allow-dependencies-licenses: >-
pkg:npm/%40sentry/cli,
pkg:npm/split
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Quick reference:

```bash
pnpm install
pnpm dev # start web + API + Prisma Studio + Spotlight
pnpm dev # start web + API + Prisma Studio
pnpm format:check # prettier
pnpm lint # eslint across the workspace
pnpm test # vitest with coverage
Expand Down
22 changes: 10 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,6 @@ Open http://localhost:3000 to access the app. The other services are available f

- **API Docs** at http://localhost:4000/docs
- **DB Studio** at http://localhost:5555
- **Sentry Spotlight** at http://localhost:8969

### Promote yourself to admin

Expand All @@ -92,21 +91,20 @@ docker exec $(docker ps -q --filter ancestor=postgres:17-alpine) \

- **API Docs** (`/api-docs`) -- Swagger UI for the Hono API
- **DB Studio** (`/db-studio`) -- Prisma Studio for database inspection
- **Spotlight** (`/spotlight`) -- Sentry Spotlight for local error and trace inspection
- **Impersonate** (`/impersonate`) -- View the app as another user. Select any user from the list or create a test user on the fly. Your admin session is preserved (tracked via the `impersonatedBy` field on the session), and an amber banner appears in the header with a "Stop Impersonating" button to end the session. Nested impersonation is not allowed.

## Scripts

| Command | Description |
| ------------------------------------ | ----------------------------------------------------------------- |
| `pnpm dev` | Start all services (web + API + Prisma Studio + Sentry Spotlight) |
| `pnpm build` | Build all packages and apps |
| `pnpm lint` | Lint all packages |
| `pnpm test` | Run tests with coverage |
| `pnpm clean` | Remove node_modules, .turbo, .next, and .pnpm-store |
| `pnpm --filter @skeleton/db db:push` | Push Prisma schema to database |
| `pnpm --filter @skeleton/db studio` | Open Prisma Studio standalone |
| `pnpm codegen:openapi` | Generate OpenAPI spec from Hono routes |
| Command | Description |
| ------------------------------------ | --------------------------------------------------- |
| `pnpm dev` | Start all services (web + API + Prisma Studio) |
| `pnpm build` | Build all packages and apps |
| `pnpm lint` | Lint all packages |
| `pnpm test` | Run tests with coverage |
| `pnpm clean` | Remove node_modules, .turbo, .next, and .pnpm-store |
| `pnpm --filter @skeleton/db db:push` | Push Prisma schema to database |
| `pnpm --filter @skeleton/db studio` | Open Prisma Studio standalone |
| `pnpm codegen:openapi` | Generate OpenAPI spec from Hono routes |

## License

Expand Down
1 change: 0 additions & 1 deletion apps/api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
"@hono/swagger-ui": "^0.6.1",
"@hono/zod-openapi": "^1.3.0",
"@prisma/client": "^7.8.0",
"@sentry/node": "^10.52.0",
"@skeleton/auth": "workspace:*",
"@skeleton/db": "workspace:*",
"@skeleton/shared": "workspace:*",
Expand Down
6 changes: 0 additions & 6 deletions apps/api/src/app.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import * as Sentry from "@sentry/node";
import { OpenAPIHono } from "@hono/zod-openapi";
import { swaggerUI } from "@hono/swagger-ui";
import { cors } from "hono/cors";
Expand All @@ -20,11 +19,6 @@ app.use(
}),
);

app.onError((err) => {
Sentry.captureException(err);
throw err;
});

// Auth routes (public — these ARE the auth endpoints)
app.route("/api/auth", authRoutes);

Expand Down
9 changes: 0 additions & 9 deletions apps/api/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,3 @@
import * as Sentry from "@sentry/node";

Sentry.init({
dsn: "https://spotlight@local/0",
tracesSampleRate: 1.0,
enableLogs: true,
spotlight: process.env.SENTRY_SPOTLIGHT === "1",
});

import { serve } from "@hono/node-server";

import { app } from "./app.js";
Expand Down
12 changes: 0 additions & 12 deletions apps/web/instrumentation.ts

This file was deleted.

5 changes: 1 addition & 4 deletions apps/web/next.config.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { withSentryConfig } from "@sentry/nextjs";
import type { NextConfig } from "next";

const nextConfig: NextConfig = {
Expand All @@ -12,6 +11,4 @@ const nextConfig: NextConfig = {
},
};

export default withSentryConfig(nextConfig, {
silent: true,
});
export default nextConfig;
1 change: 0 additions & 1 deletion apps/web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
"@dnd-kit/modifiers": "^9.0.0",
"@dnd-kit/sortable": "^10.0.0",
"@dnd-kit/utilities": "^3.2.2",
"@sentry/nextjs": "^10.52.0",
"@skeleton/api-client": "workspace:*",
"@skeleton/auth": "workspace:*",
"@skeleton/shared": "workspace:*",
Expand Down
8 changes: 0 additions & 8 deletions apps/web/sentry.client.config.ts

This file was deleted.

8 changes: 0 additions & 8 deletions apps/web/sentry.edge.config.ts

This file was deleted.

8 changes: 0 additions & 8 deletions apps/web/sentry.server.config.ts

This file was deleted.

9 changes: 0 additions & 9 deletions apps/web/src/app/(shell)/(admin)/spotlight/page.tsx

This file was deleted.

2 changes: 0 additions & 2 deletions apps/web/src/app/(shell)/_components/nav-admin.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import {
IconApi,
IconBrandSentry,
IconDatabase,
IconTestPipe,
IconUserScan,
Expand All @@ -21,7 +20,6 @@ import {
const items = [
{ name: "API Docs", url: "/api-docs", icon: IconApi },
{ name: "DB Studio", url: "/db-studio", icon: IconDatabase },
{ name: "Spotlight", url: "/spotlight", icon: IconBrandSentry },
{ name: "Tests", url: "/tests", icon: IconTestPipe },
{
name: "Impersonate",
Expand Down
3 changes: 1 addition & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"private": true,
"license": "MIT",
"scripts": {
"dev": "bash .devcontainer/check-env.sh && (spotlight server & turbo dev test:ui)",
"dev": "bash .devcontainer/check-env.sh && turbo dev test:ui",
"build": "turbo build",
"lint": "turbo lint",
"format": "prettier --write .",
Expand All @@ -19,7 +19,6 @@
"reset": "pnpm clean && pnpm install && pnpm build && pnpm dev"
},
"devDependencies": {
"@spotlightjs/spotlight": "^4.11.3",
"@types/node": "^25.6.2",
"@vitest/coverage-v8": "^4.1.5",
"@vitest/ui": "^4.1.5",
Expand Down
Loading