HTMLAdmin dashboardSaaS

loggic-dashboard — HTML Admin dashboard Template

By olimartel6

Loggic Dashboard is a self-hosted Node.js + Express dashboard that consolidates cold email leads, tenant deployments, tasks and response records into a single page, with data stored in local JSON files.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

3 previews
Desktop homepage1 / 3
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 3

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-15View source

What stands out

A quick read of the recorded project description.

01

Single page showing KPIs such as leads, demo deployments, response records and paying customers

02

3D Mapbox map colors all prospects by industry, with heatmap toggle and status/industry/city filters

03

Pulls cold email campaign analytics from Instantly.ai and shows open/click/reply data for the 12 most recent leads

04

Tenant grid supports one-click deletion and automatic redeployment from SaaS configuration

05

All data is stored in JSON files in the local data/ directory, with no database required

06

Manual response log covers Messenger, Instagram, email, phone and SMS channels

Template Details

Loggic Dashboard was originally used to manage LogicSupplies' cold-start process and is now open-sourced as a template. It brings Instantly cold email campaign analytics, GitHub activity, a manual response log, a daily task panel and tenant deployment status together on one screen, refreshing every 60 seconds. The backend is a single-file server.js, while the frontend uses plain HTML, the Tailwind CSS CDN, Chart.js and Mapbox GL JS to render a 3D map. All data is stored in JSON files in the data/ directory, with no database required, and it runs as a single Node process.

The README explicitly states that this is a personal-use template rather than a polished product. The dashboard can run without environment variables, but the 3D map requires at least MAPBOX_TOKEN to render; the tenant list and map endpoints require LOYALTY_REPO_PATH pointing to the SaaS repository containing tenant configuration. Integrations such as Instantly analytics, GitHub activity and Telegram inbox counts are all optional. The README's Roadmap lists features not yet implemented, such as an Instantly reply webhook, Slack/Telegram notifications, CSV export and a Postgres adapter.

HTMLBackendSaaS

Is it right for your project?

Use Cases

  • An indie SaaS founder wants to see the overall state of cold outreach and tenant deployments on a single screen
  • Running cold email campaigns with Instantly.ai and needing a centralized view of campaign analytics and recent leads
  • Deploying multiple tenant demos for local businesses in places such as Quebec and needing to view their distribution by industry and city on a map
  • Following up with prospects manually through channels such as Messenger and Instagram and needing to record conversation status and daily tasks

Suitable For

  • Indie developers running a small SaaS and managing cold outreach themselves
  • Technical users using Instantly.ai and GitHub who are willing to configure environment variables themselves
  • Teams needing a self-hosted lead-tracking tool that keeps data local
  • Developers who can accept a personal project template and are willing to adjust configuration themselves according to the README

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    After cloning the repository, run npm install, copy .env.example to .env and fill in variables as needed

  2. 2

    Run node server.js and then visit http://localhost:4242

  3. 3

    The 3D map requires MAPBOX_TOKEN (a pk.* public token), which can be obtained for free from account.mapbox.com

  4. 4

    The tenant list and map endpoints require LOYALTY_REPO_PATH to be set to the SaaS repository containing tenant configuration

  5. 5

    Integrations such as Instantly, GitHub and Telegram are optional; the corresponding features are unavailable when they are not configured

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version in the public repository under the MIT license; the free scope is the code of that version and does not mean that external services or third-party assets are free.

Must comply with when using

  • Use, modification, commercial use and distribution of this version's code are permitted free of charge.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the complete MIT license notice.
  • The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.

Additional costs & items to verify

  • Demo images, fonts, icons and other third-party assets must be checked against their respective licenses and cannot be judged solely by the code's MIT license.
  • External services such as domains, hosting, databases, payments or AI may incur separate charges.
  • 3D map rendering requires at least MAPBOX_TOKEN (a Mapbox public token), which must be obtained by registering at account.mapbox.com; the map cannot render when it is not configured.
  • The tenant list and map endpoints require LOYALTY_REPO_PATH to be set to the SaaS repository containing tenant configuration; otherwise /api/demos and /api/map are unavailable.
  • Instantly cold email campaign analytics requires INSTANTLY_API_KEY and INSTANTLY_CAMPAIGN_ID, which are external service credentials.
  • The GitHub activity panel requires GITHUB_USER to be set and depends on the local gh CLI.
  • The Telegram inbox count requires TELEGRAM_INBOX_PATH to point to a local inbox folder; this feature is unavailable when it is not configured.
  • The author explicitly states that this is a personal-use template rather than a polished product and does not guarantee production-grade quality.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

The dashboard runs without any env vars (everything degrades gracefully) but the Mapbox map needs at least `MAPBOX_TOKEN` to render — get a free pk.* token at [account.mapbox.com](https://account.mapbox.com/auth/signup/).

Original README

| `LOYALTY_REPO_PATH` | Path to your loyalty SaaS repo with `src/config.js` containing tenant blocks. Required for `/api/demos` and `/api/map`. |

Original README

| `INSTANTLY_API_KEY` + `INSTANTLY_CAMPAIGN_ID` | Pull cold email campaign analytics. |

Original README

| `GITHUB_USER` | Your GitHub username. Powers the recent repos panel via the `gh` CLI. |

Original README

| `TELEGRAM_INBOX_PATH` | Folder of Telegram inbox files (used by some Claude Code setups). |

Original README

This is a personal-use template, not a polished product. Things I would add if it ever evolved:

Original README
https://github.com/olimartel6/loggic-dashboard/blob/main/LICENSEhttps://github.com/olimartel6/loggic-dashboard/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-15. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.

Project checks & description sources

Template Information

Source platforms
GitHub
Documentation and maintenance reference score
More documented · 85 / 100
Technologies
HTML
Website type
Admin dashboard · SaaS
How this score is calculated

Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.

What to verify for this project

Repository update recorded
2026-04-25
Screenshot last checked
2026-10-15

A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.

The catalog identifies HTML as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.

Use a selection guide →

How this description was prepared

AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.

Review declaration: codex-user-requested-batch-review-20261017 · 2026-10-16

Inspect the recorded source material

SHA-256: 0165797f4d61d4a53b5f3027087937a7ece208aa79c519b54b0960c5fd3ff6af

2026-10-15T06:06:57.525Z

Source file / repository
# Loggic Dashboard

> Self-hosted lead-tracking dashboard for a small SaaS — Mapbox 3D map of prospects, Instantly campaign analytics, GitHub activity, prospect responses log, daily tasks panel.

Built originally to manage **[LogicSupplies](https://logiccsupplies.ca)** — a Quebec studio that builds custom loyalty apps for local businesses (cafés, restaurants, salons, gyms). Open-sourced as a template for other indie SaaS founders who want a single screen showing the full pipeline of their cold outreach + tenant deployments.

![Dashboard map](https://raw.githubusercontent.com/olimartel6/loggic-dashboard/main/.github/screenshot.png)

## What it shows

- **KPIs** — leads in your campaign, demos deployed, responses logged, paying customers
- **Tasks panel** — daily todo + done-today list with priority and tags
- **Conversion funnel** — leads → emails sent → opens → clicks → replies → customers
- **3D Mapbox map** — every prospect plotted with industry-colored markers, clickable for details, with heatmap toggle and filter sidebar (status, industry, city)
- **Instantly engagement charts** — campaign analytics from the Instantly.ai cold email platform
- **Recent leads table** — last 12 prospects with open/click/reply stats
- **GitHub activity** — recent pushes from your account
- **Tenants grid** — one-click delete + auto-redeploy of any tenant from the SaaS config
- **Responses log** — manual conversation tracker (Messenger / Instagram / email / phone / SMS) with status pills
- **Telegram inbox** counter (optional)

All data is stored locally in JSON files in `data/`. No database required. Single Node process.

## Why I built it

I was running a SaaS where I had ~130 prospect demos deployed across Quebec, an active cold email campaign in Instantly, manual DM conversations on Messenger and Instagram, and a daily todo list scattered across notes apps. There was no single view of "what's the state of my pipeline and what should I do today?"

This dashboard merges all of those signals into one screen, refreshed every 60 seconds. Free, self-hosted, no SaaS subscription on top of my SaaS.

## Tech stack

- **Backend**: Node.js + Express. Single file (`server.js`).
- **Frontend**: Plain HTML + [Tailwind CSS via CDN](https://tailwindcss.com) + [Chart.js](https://www.chartjs.org/) + [Mapbox GL JS](https://docs.mapbox.com/mapbox-gl-js/) for the 3D map.
- **Data**: JSON files in `data/` (responses, tasks, geocoded prospect coords).
- **Geocoder**: [Photon (komoot)](https://photon.komoot.io/) for tenant address → lat/lng. Free, no API key.
- **Deploy automation**: optional — if you set `DEPLOY_CMD`, the dashboard runs it after a tenant deletion. Default uses `vite build` + `gh-pages`.

## Quick start

```bash
git clone https://github.com/olimartel6/loggic-dashboard.git
cd loggic-dashboard
npm install
cp .env.example .env
# edit .env with your tokens / paths
node server.js
# open http://localhost:4242
```

The dashboard runs without any env vars (everything degrades gracefully) but the Mapbox map needs at least `MAPBOX_TOKEN` to render — get a free pk.* token at [account.mapbox.com](https://account.mapbox.com/auth/signup/).

## Configuration

All optional — see `.env.example` for the full list.

| Var | What it does |
|-----|--------------|
| `MAPBOX_TOKEN` | Public Mapbox token (pk.*). Required for the 3D map. |
| `LOYALTY_REPO_PATH` | Path to your loyalty SaaS repo with `src/config.js` containing tenant blocks. Required for `/api/demos` and `/api/map`. |
| `DEMO_BASE_URL` | Base URL of your tenant deployment, e.g. `https://demo.example.com/`. Used for per-tenant demo links. |
| `INSTANTLY_API_KEY` + `INSTANTLY_CAMPAIGN_ID` | Pull cold email campaign analytics. |
| `GITHUB_USER` | Your GitHub username. Powers the recent repos panel via the `gh` CLI. |
| `LEADS_DIRS` | Comma-separated folders with leads CSV exports. Counted in `/api/leads-files`. |
| `TELEGRAM_INBOX_PATH` | Folder of Telegram inbox files (used by some Claude Code setups). |
| `DEPLOY_CMD` | Override the deploy command run after tenant deletion. |

## Tenant config format

The dashboard expects your loyalty SaaS config to look like this (one block per tenant):

```js
const configs = {
  'tenant-slug': {
    businessName: "Some Café",
    slug: 'tenant-slug',
    tagline: '...',
    logo: '...',
    address: '123 Rue Example, Québec, QC',
    phone: '418-555-0000',
    // ... other tenant fields
  },
  // ... more tenants
};
```

Block boundaries: a quoted slug key, an opening `{`, content (which can include nested objects like `theme: {}` and `rewards: []`), and a closing `\n  },` with exactly 2 spaces of indent.

## Endpoints

| Method | Path | Purpose |
|--------|------|---------|
| GET | `/api/summary` | Aggregate KPI feed |
| GET | `/api/instantly` | Campaign analytics + recent leads |
| GET | `/api/demos` | Tenant list extracted from `config.js` |
| GET | `/api/map` | Tenant points with industry classification + cached coordinates |
| GET | `/api/github` | Recent repos via `gh` CLI |
| GET | `/api/telegram` | Inbox file count |
| GET | `/api/leads-files` | Local CSV stats |
| GET/POST/PATCH/DELETE | `/api/responses[/:id]` | Manual responses log CRUD |
| GET/POST/PATCH/DELETE | `/api/tasks[/:id]` | Tasks CRUD |
| POST | `/api/tasks/find` | Find tasks by text fragment |
| GET | `/api/deploy/status` | Deploy state machine current state |
| POST | `/api/deploy` | Trigger deploy |
| DELETE | `/api/tenant/:slug` | Remove tenant from config + delete images + auto-redeploy |
| GET | `/api/industries` | Industry metadata (label, color, glyph) |
| GET | `/api/config` | Public config for the frontend (Mapbox token, GitHub user, demo base URL) |

## Privacy notes

- All data lives in `data/*.json` on your machine. Nothing leaves your computer except API calls to Mapbox and Instantly.
- `data/` is gitignored — your prospect notes, response history and tasks never get committed.
- The Mapbox token is a `pk.*` (publishable) token — designed to be exposed to the frontend.

## Roadmap

This is a personal-use template, not a polished product. Things I would add if it ever evolved:
- Webhook receiver for Instantly reply events (auto-create response entries)
- Slack / Telegram notifications when a high-priority prospect replies
- CSV export of all logged responses
- Optional Postgres adapter for users who want multi-device sync

PRs welcome but expect slow review — this is a side project.

## Credits

Built by [Olivier Martel](https://github.com/olimartel6) for [LogicSupplies](https://logiccsupplies.ca), the Quebec loyalty app studio.

## License

[MIT](./LICENSE) — do whatever you want with it.
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.