Backend Logging

The pointa dev command wraps your development server to capture backend console output during bug recording. When you record a bug in the Chrome extension, your server logs are automatically included in the timeline.


Overview

When investigating bugs, you often need both:

  • Frontend: Console errors, network failures, user actions
  • Backend: Server logs, API errors, database queries

The pointa dev command bridges this gap by injecting a lightweight log capture layer into your Node.js process and streaming output to Pointa.


Quick Start

Instead of running your dev server directly, wrap it with pointa dev:

# Before
npm run dev

# After
npx pointa-server dev npm run dev

That's it! When you record a bug with the Chrome extension, your server logs are automatically included.


How It Works

  1. pointa dev detects your framework and injects a preload module via NODE_OPTIONS
  2. The preload module connects to the Pointa server via WebSocket
  3. When you start recording a bug in Chrome, the server is notified to begin capturing
  4. All console output is captured and streamed in real-time
  5. When you stop recording, backend logs are included in the bug report
  6. AI receives both frontend and backend context

What Gets Captured

Console Method Captured
console.log() Yes
console.info() Yes
console.warn() Yes
console.error() Yes
console.debug() Yes
Uncaught exceptions Yes
Unhandled rejections Yes

All captured logs include:

  • Timestamp
  • Log level
  • Message content
  • Stack traces (for errors)

Framework Auto-Detection

pointa dev automatically detects your framework from the command and sets the correct default port:

Framework Default Port
Next.js 3000
Nuxt 3000
Vite 5173
Remix 3000
Astro 4321
NestJS 3000
Express 3000
Fastify 3000
Gatsby 8000
SvelteKit 5173

If your app uses a custom port via the PORT environment variable, that takes priority.


Usage Examples

npm / yarn / pnpm

npx pointa-server dev npm run dev
npx pointa-server dev yarn dev
npx pointa-server dev pnpm dev

Direct Node.js

npx pointa-server dev node server.js
npx pointa-server dev npx vite
npx pointa-server dev npx next dev

Custom Pointa Server Port

If your Pointa server runs on a non-default port:

npx pointa-server dev -p 4243 npm run dev

Privacy & Security

Local Only

  • All logs stay on your machine
  • Nothing is sent to external servers
  • Communication is localhost only (WebSocket to 127.0.0.1)

Recording Sessions Only

  • Logs are only captured during active bug recording
  • Normal development is unaffected
  • No performance impact when not recording

No Sensitive Data Storage

  • Logs exist only in the bug report
  • Old reports can be deleted
  • You control what gets logged

Requirements

  • Node.js 18+
  • Pointa Chrome extension installed
  • Pointa server running (start with npx pointa-server start)

Troubleshooting

Logs not appearing in bug reports

  1. Make sure you're running your server via pointa dev:
    npx pointa-server dev npm run dev
    
  2. Check that the Pointa server is running:
    npx pointa-server status
    
  3. Ensure the Pointa server is started before running pointa dev

Connection errors

The preload module gracefully handles connection issues:

  • If the Pointa server isn't running, it retries with exponential backoff (up to 10 attempts)
  • Your server continues working normally regardless
  • Logs are captured once connection is established

Non-Node.js servers

For non-Node.js commands, pointa dev falls back to stdout/stderr capture only (no console method interception). This still provides useful output but without structured log levels.


Using in Bug Reports

When you record a bug:

  1. Start recording in the Chrome extension
  2. Reproduce the bug (make API calls, trigger errors)
  3. Stop recording

The bug report timeline shows:

  • Frontend events (console, network, clicks)
  • Backend events (marked with [Backend])

Example timeline:

00:01 [Frontend] Click: Submit button
00:01 [Network] POST /api/submit
00:01 [Backend] Processing form submission
00:02 [Backend Error] Database connection failed
00:02 [Network] POST /api/submit → 500
00:02 [Frontend Error] Submit failed: Internal error

AI sees this complete picture and can identify that the database connection caused the issue.


Related