Revenue Dashboard
Real-time revenue and portfolio dashboard — track crypto, freelance income, and services in one place.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/sa9saq/revenue-dashboardRevenue Dashboard
Track crypto holdings, freelance income, and service revenue from a single dashboard.
Requirements
- Node.js 18+
- No external API keys required (uses CoinGecko free tier for crypto prices)
Quick Start
cd {skill_dir}
npm install
npm run build
npm start -- --port 3020 # Production
# or
npm run dev # Development with hot reload
Open http://localhost:3020 in your browser.
API Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /api/portfolio | Current portfolio summary |
GET | /api/revenue?from=YYYY-MM-DD&to=YYYY-MM-DD | Revenue by date range |
POST | /api/transactions | Add a crypto transaction |
GET | /api/holdings | Current crypto holdings |
POST | /api/income | Record freelance/service income |
Dashboard Sections
- Portfolio Overview — Total value, 24h change, allocation pie chart
- Revenue Timeline — Income over time (line/bar chart)
- Holdings Table — Individual asset performance
- Income Sources — Breakdown by source (crypto, freelance, services)
Configuration
| Variable | Default | Description |
|---|---|---|
PORT | 3020 | Server port |
DB_PATH | ./data/revenue.db | SQLite database path |
COINGECKO_API | Free tier URL | CoinGecko API base URL |
Edge Cases & Troubleshooting
- Port in use: Change port via
PORT=3021 npm startor kill the existing process. - DB locked: SQLite doesn't support concurrent writes well. Ensure only one instance runs.
- CoinGecko rate limit: Free tier ~30 req/min. Dashboard caches prices for 60s.
- Missing data: API returns empty arrays (not errors) for date ranges with no entries.
- First run: Database and tables are created automatically on first start.
Security
- Dashboard binds to
localhostby default. Use a reverse proxy (nginx) for public access. - No authentication built in — add basic auth or put behind a VPN for production use.
- Never expose the SQLite file publicly.
Tech Stack
Next.js 14, shadcn/ui, Recharts, SQLite (better-sqlite3)
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-sa9saq-revenue-dashboard": {
"enabled": true,
"auto_update": true
}
}
}Related Skills
threat-model
Threat modeling and attack scenario design. Identify risks before they become vulnerabilities. STRIDE, attack trees, risk matrix.
Sns Auto Poster
Schedule and automate social media posts to X/Twitter with cron-based queue management.
security-review
Comprehensive security review for code, configs, and operations. OWASP, prompt injection, crypto security. Auto-triggers on security-related changes.
Process Monitor
Monitor system processes, identify top CPU/memory consumers, and alert on resource thresholds.
Readme Generator
Auto-generate comprehensive README.md files by analyzing project structure and configuration.