< Free & Open Source · MIT >

See What
Your App
Is Doing.

Instantly.

A debug receiver for any language or runtime. Send objects, errors, SQL, and timers — watch them stream into the desktop app in real time.

macOS · Windows · Linux
· ★ GitHub
< The problem >

The Old Way vs.
The Fanar Way.

WITHOUT FANAR
WITH FANAR
console.log everywhere
Structured, typed payloads
Remove before committing
Always-on, stays in dev only
No SQL visibility
SQL with syntax highlight + timing
No timing data
Named timers built-in
Stack traces buried in logs
Clickable frames — opens VS Code
< How it works >

Three Steps.
Full Visibility.

01

Install the client

npm install @fanar-app/fanar
02

Send any value

fanar({ user, orders })
03

Watch it appear

← real-time, no refresh
< Features >

Built For The Way
Developers Work.

Any Language

Plain HTTP POST API. Works from Node, PHP, Python, Ruby, Go, or curl.

Real-Time

No polling. Payloads stream to the app the moment they arrive.

SQL Inspector

Queries arrive with syntax highlighting, bound values, and execution time.

Stack Traces

Click any frame to open the exact file and line in VS Code.

Named Timers

fanar.time('render').stop() — measure anything with one line.

Zero Config

One import auto-instruments NestJS and Laravel — fully automatic.

< Client libraries >

Send From Anywhere.

One package for Node. One import for NestJS or Laravel.
Or skip the library — plain HTTP works from anything.

import fanar from '@fanar-app/fanar'

fanar('hello world')
fanar({ user, orders })
fanar(new Error('oops'))
fanar.query(sql, { bindings, duration })
fanar.time('render').stop()
docs →
import { FanarModule } from '@fanar-app/fanar/nestjs'

@Module({
  imports: [FanarModule.register()],
})
export class AppModule {}

// Auto-logs every request, query, and exception
docs →
<?php
use Fanar\Fanar;

Fanar::dump('hello');
Fanar::dump(['user' => $user, 'orders' => $orders]);
Fanar::dump(new Exception('oops'));
Fanar::query($sql, $bindings, $duration);
Fanar::time('render')->stop();
docs →
// config/app.php
'providers' => [
    Fanar\Laravel\FanarServiceProvider::class,
],

// .env
FANAR_HOST=127.0.0.1
FANAR_PORT=9913

// Auto-logs every request, query, and exception
docs →
<script src="https://cdn.jsdelivr.net/npm/@fanar-app/fanar-browser/dist/fanar.min.js"></script>
<script>
  fanar('hello from the browser')
  fanar({ user, cart }).label('checkout')
  fanar(new Error('something went wrong'))
  fanar.time('render').stop()
</script>
docs →
curl -X POST http://localhost:9913/api/payloads \
  -H "Content-Type: application/json" \
  -d '{"type":"log","label":"Hello","content":"World"}'

# Works from any language, script, or CI pipeline
docs →
< Downloads >

Download Fanar.
Free, Always.

No account required. No license keys.
Download, open, and start sending payloads.

macOS · Windows · Linux
< Open source >

MIT Licensed.
Free Forever.

No telemetry. No paywalls. No seat licenses. Built in the open. If it helps you, star it.

No telemetry or analytics
No account required
No paywalls or seat licenses
MIT License — use it anywhere
Source available on GitHub
Self-hosted, no cloud dependency