vibes-plug 2.5.0 → 2.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/rules/vibes-plug-core.md +32 -0
- package/.cursor/rules/vibes-plug-core.mdc +51 -0
- package/.cursorrules +42 -0
- package/AGENTS.md +37 -7
- package/BLUEPRINT.md +319 -217
- package/CHANGELOG.md +170 -1
- package/CLAUDE.md +70 -0
- package/LICENSE +1 -1
- package/README.md +611 -415
- package/index.js +19 -0
- package/package.json +44 -8
- package/plugin.json +24 -7
- package/scripts/check-anti-slop.js +53 -0
- package/scripts/generate_swarm_gif.py +295 -0
- package/scripts/install.js +201 -0
- package/skills/accessibility-testing-expert/SKILL.md +116 -0
- package/skills/ai-llm-integration-expert/SKILL.md +192 -178
- package/skills/ai-media-generation-expert/SKILL.md +172 -0
- package/skills/ai-prompt-engineering-expert/SKILL.md +134 -0
- package/skills/angular-expert/SKILL.md +148 -0
- package/skills/anti-slop/SKILL.md +133 -0
- package/skills/api-design-expert/SKILL.md +6 -3
- package/skills/api-gateway-proxy-expert/SKILL.md +81 -0
- package/skills/app-analyzer-optimizer/SKILL.md +6 -3
- package/skills/apple-ecosystem-expert/SKILL.md +144 -141
- package/skills/astro-framework-expert/SKILL.md +200 -0
- package/skills/async-queue-temporal-expert/SKILL.md +189 -26
- package/skills/authentication-identity-expert/SKILL.md +78 -181
- package/skills/autonomous-red-teamer/SKILL.md +172 -28
- package/skills/autonomous-tdd-debugger/SKILL.md +70 -64
- package/skills/biome-linter-formatter-expert/SKILL.md +89 -0
- package/skills/blockchain-web3-expert/SKILL.md +115 -0
- package/skills/bootstrap-to-modern/SKILL.md +9 -6
- package/skills/brainstorming/SKILL.md +60 -52
- package/skills/browser-automation-expert/SKILL.md +197 -21
- package/skills/bun-runtime-expert/SKILL.md +7 -1
- package/skills/chatbot-messaging-expert/SKILL.md +114 -0
- package/skills/ci-cd-devops-architect/SKILL.md +45 -36
- package/skills/cloud-hosting-expert/SKILL.md +7 -1
- package/skills/coderabbit/SKILL.md +7 -1
- package/skills/compliance-gdpr-privacy-expert/SKILL.md +85 -0
- package/skills/cron-scheduler-expert/SKILL.md +303 -297
- package/skills/data-pipeline-etl-expert/SKILL.md +84 -0
- package/skills/data-telemetry-expert/SKILL.md +7 -1
- package/skills/data-visualization-expert/SKILL.md +154 -0
- package/skills/database-orm-expert/SKILL.md +165 -294
- package/skills/deep-research-analyst/SKILL.md +136 -0
- package/skills/dependency-upgrade-migrator/SKILL.md +300 -294
- package/skills/design-system-architect/SKILL.md +309 -260
- package/skills/desktop-electron-expert/SKILL.md +128 -0
- package/skills/documentation-site-expert/SKILL.md +59 -0
- package/skills/doku-mcp-server/SKILL.md +7 -1
- package/skills/doku-payment-gateway/SKILL.md +7 -1
- package/skills/domain-driven-design-expert/SKILL.md +82 -0
- package/skills/e2e-testing-expert/SKILL.md +7 -1
- package/skills/ecommerce-expert/SKILL.md +87 -0
- package/skills/email-notification-expert/SKILL.md +393 -360
- package/skills/error-resilience-expert/SKILL.md +506 -479
- package/skills/event-driven-architect/SKILL.md +7 -1
- package/skills/feature-flag-analytics-expert/SKILL.md +65 -45
- package/skills/file-upload-media-expert/SKILL.md +436 -430
- package/skills/firebase-security-expert/SKILL.md +7 -1
- package/skills/form-validation-expert/SKILL.md +406 -400
- package/skills/fullstack-expert/SKILL.md +184 -202
- package/skills/gemini-agent-booster/SKILL.md +173 -135
- package/skills/geospatial-maps-expert/SKILL.md +80 -0
- package/skills/global-a11y-i18n-expert/SKILL.md +7 -1
- package/skills/glsl-shader-expert/SKILL.md +158 -69
- package/skills/go-programming-expert/SKILL.md +21 -15
- package/skills/graph-rag-knowledge-expert/SKILL.md +200 -0
- package/skills/graphql-apollo-expert/SKILL.md +113 -107
- package/skills/headless-cms-expert/SKILL.md +181 -0
- package/skills/hig/SKILL.md +7 -1
- package/skills/js-backend-expert/SKILL.md +218 -216
- package/skills/legacy-code-translator/SKILL.md +70 -64
- package/skills/local-slm-edge-ai-expert/SKILL.md +167 -0
- package/skills/logging-error-tracking-expert/SKILL.md +343 -337
- package/skills/mcp-server-architect/SKILL.md +308 -194
- package/skills/micro-frontend-architect/SKILL.md +111 -105
- package/skills/mobile-expo-expert/SKILL.md +8 -2
- package/skills/modern-css-native-expert/SKILL.md +189 -0
- package/skills/monorepo-architect/SKILL.md +7 -1
- package/skills/mpa-orchestrator/SKILL.md +20 -1
- package/skills/multi-agent-orchestration/SKILL.md +254 -234
- package/skills/multiple-entry-points/SKILL.md +37 -1
- package/skills/mvc-expert/SKILL.md +7 -1
- package/skills/n8n-automation-expert/SKILL.md +89 -0
- package/skills/nextjs-app-router-expert/SKILL.md +148 -0
- package/skills/openapi-swagger-codegen-expert/SKILL.md +67 -0
- package/skills/payment-gateway-expert/SKILL.md +85 -1
- package/skills/pdf-document-generation-expert/SKILL.md +91 -0
- package/skills/performance-web-vitals/SKILL.md +7 -1
- package/skills/post-quantum-crypto-migrator/SKILL.md +57 -57
- package/skills/prd-architect/SKILL.md +182 -201
- package/skills/proactive-background-watcher/SKILL.md +67 -61
- package/skills/production-ready-hardener/SKILL.md +459 -456
- package/skills/pwa-offline-first-expert/SKILL.md +226 -0
- package/skills/pydantic-ai-expert/SKILL.md +161 -0
- package/skills/python-programming-expert/SKILL.md +407 -401
- package/skills/rate-limit-abuse-prevention/SKILL.md +376 -370
- package/skills/realtime-collaboration-expert/SKILL.md +55 -1
- package/skills/rich-text-editor-expert/SKILL.md +177 -0
- package/skills/rust-programming-expert/SKILL.md +7 -1
- package/skills/saas-architect/SKILL.md +154 -0
- package/skills/saas-billing/SKILL.md +7 -1
- package/skills/saas-multi-tenant/SKILL.md +7 -1
- package/skills/scalability-clean-code/SKILL.md +7 -1
- package/skills/search-engine-expert/SKILL.md +89 -0
- package/skills/secure-fuzz-testing/SKILL.md +7 -1
- package/skills/self-healing-cloud-orchestrator/SKILL.md +57 -57
- package/skills/senior-frontend/SKILL.md +139 -161
- package/skills/senior-frontend/scripts/frontend_scaffolder.py +1 -1
- package/skills/seo/SKILL.md +41 -17
- package/skills/session-memory-manager/SKILL.md +128 -0
- package/skills/solidjs-expert/SKILL.md +80 -0
- package/skills/spa-orchestrator/SKILL.md +20 -1
- package/skills/sse-websocket-streaming-expert/SKILL.md +93 -0
- package/skills/state-management-expert/SKILL.md +7 -1
- package/skills/supabase-security-expert/SKILL.md +7 -1
- package/skills/svelte-sveltekit-expert/SKILL.md +91 -0
- package/skills/svg-animation-motion-expert/SKILL.md +115 -0
- package/skills/synthetic-data-finetuning-expert/SKILL.md +155 -0
- package/skills/tailwind-expert/SKILL.md +88 -136
- package/skills/tanstack-query-expert/SKILL.md +7 -1
- package/skills/tauri-expert/SKILL.md +7 -1
- package/skills/typescript-expert/SKILL.md +12 -6
- package/skills/ui-ux-pro-max/SKILL.md +25 -3
- package/skills/vector-db-rag-expert/SKILL.md +175 -19
- package/skills/vercel-ai-sdk-expert/SKILL.md +181 -0
- package/skills/visual-qa-vision-agent/SKILL.md +70 -64
- package/skills/voice-ai-realtime-agent/SKILL.md +242 -0
- package/skills/vue-frontend-expert/SKILL.md +131 -125
- package/skills/wasm-edge-computing-expert/SKILL.md +97 -0
- package/skills/web-3d-graphics-expert/SKILL.md +262 -80
- package/skills/web-game-engine-expert/SKILL.md +281 -48
- package/skills/web-scraper/SKILL.md +157 -207
- package/skills/website-design-cloner/SKILL.md +179 -173
- package/skills/webxr-ar-vr-expert/SKILL.md +108 -63
- package/skills/wordpress-headless-expert/SKILL.md +144 -0
- package/skills/zero-to-prod-orchestrator/SKILL.md +65 -38
- package/skills/zero-trust-secret-vault/SKILL.md +87 -39
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
- package/.github/workflows/publish.yml +0 -20
- package/CONTRIBUTING.md +0 -199
- package/SECURITY.md +0 -21
- package/banner.png +0 -0
- package/skills/ai-cost-token-optimizer/SKILL.md +0 -52
- package/skills/asisten_ramah/SKILL.md +0 -41
- package/skills/auto-doc-updater/SKILL.md +0 -214
- package/skills/autonomous-chaos-monkey/SKILL.md +0 -63
- package/skills/autonomous-swarm-director/SKILL.md +0 -69
- package/skills/edge-serverless-db-expert/SKILL.md +0 -43
- package/skills/hyper-context-synthesizer/SKILL.md +0 -55
- package/skills/llm-cost-arbitrage-router/SKILL.md +0 -59
- package/skills/mcp-client-orchestrator/SKILL.md +0 -70
- package/skills/mobile-push-notification-expert/SKILL.md +0 -51
- package/skills/monday-design-aesthetic/SKILL.md +0 -67
- package/skills/project-context-mapper/SKILL.md +0 -79
- package/skills/saas-mvp-launcher/SKILL.md +0 -241
- package/skills/saas-transformer/SKILL.md +0 -489
- package/skills/saas-transformer/references/billing_integration_guide.md +0 -401
- package/skills/self-evolving-memory-graph/SKILL.md +0 -75
- package/skills/senior-fullstack/SKILL.md +0 -167
- package/skills/senior-fullstack/references/architecture_patterns.md +0 -160
- package/skills/senior-fullstack/references/development_workflows.md +0 -222
- package/skills/senior-fullstack/references/tech_stack_guide.md +0 -190
- package/skills/senior-fullstack/scripts/code_quality_analyzer.py +0 -114
- package/skills/senior-fullstack/scripts/fullstack_scaffolder.py +0 -114
- package/skills/senior-fullstack/scripts/project_scaffolder.py +0 -114
- package/skills/seo-aeo-landing-page-writer/SKILL.md +0 -97
- package/skills/seo-geo/SKILL.md +0 -188
- package/skills/session-context-loader/SKILL.md +0 -77
- package/skills/session-handoff-resume/SKILL.md +0 -158
- package/skills/skill_baru/SKILL.md +0 -172
- package/skills/supabase-migration/SKILL.md +0 -45
- package/skills/token-saver/SKILL.md +0 -119
- package/skills/ui-components-expert/SKILL.md +0 -280
- package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-310.pyc +0 -0
- package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-312.pyc +0 -0
- package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-310.pyc +0 -0
- package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-312.pyc +0 -0
- package/skills/ui_ux_expert/SKILL.md +0 -125
- package/skills/vibe-code-gardener/SKILL.md +0 -181
- package/vibes-swarm-demo.gif +0 -0
- /package/skills/{saas-transformer → saas-architect}/references/feature_gating_patterns.md +0 -0
- /package/skills/{saas-transformer → saas-architect}/references/saas_transformation_checklist.md +0 -0
- /package/skills/{saas-transformer → saas-architect}/scripts/saas_transformation_scanner.py +0 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: data-pipeline-etl-expert
|
|
3
|
+
description: "Expert guide for Data Pipelines, ETL/ELT, and Analytics Engineering. Covers dbt, Apache Airflow, Dagster, BigQuery, ClickHouse, and DuckDB / Panduan ahli untuk Data Pipelines, ETL/ELT. Mencakup dbt, Airflow, Dagster, BigQuery, ClickHouse, dan DuckDB."
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Data Pipeline & ETL Expert
|
|
8
|
+
|
|
9
|
+
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<a name="english"></a>
|
|
14
|
+
## English
|
|
15
|
+
|
|
16
|
+
### Description
|
|
17
|
+
A specialized skill for building robust data architectures, Analytics Engineering, and ETL (Extract, Transform, Load) or ELT pipelines. It covers modern data stack orchestration (Airflow, Dagster), transformation tools (dbt), and high-performance OLAP databases (BigQuery, Snowflake, ClickHouse, DuckDB).
|
|
18
|
+
|
|
19
|
+
### Trigger Conditions
|
|
20
|
+
- When designing reporting dashboards or analytics infrastructure for a SaaS.
|
|
21
|
+
- When moving large volumes of data from transactional databases (PostgreSQL/MySQL) to a data warehouse.
|
|
22
|
+
- When the user asks about "dbt", "Airflow", "ELT", or "Analytics Engineering".
|
|
23
|
+
- When building local or edge analytics using DuckDB.
|
|
24
|
+
|
|
25
|
+
### Core Architectural Guidelines
|
|
26
|
+
|
|
27
|
+
#### 1. ELT over ETL
|
|
28
|
+
Prefer Extract-Load-Transform (ELT) over traditional ETL.
|
|
29
|
+
- **Extract & Load**: Use tools like Airbyte or Fivetran to dump raw data directly into the Data Warehouse.
|
|
30
|
+
- **Transform**: Perform transformations *inside* the Data Warehouse using SQL (via dbt) to leverage the warehouse's massive compute power.
|
|
31
|
+
|
|
32
|
+
#### 2. Analytics Engineering with dbt
|
|
33
|
+
Treat SQL like software engineering.
|
|
34
|
+
- Use `dbt` (Data Build Tool) to version control your SQL transformations.
|
|
35
|
+
- Implement tests (`not_null`, `unique`) on critical tables.
|
|
36
|
+
- Use Jinja templating in dbt to DRY up complex SQL queries.
|
|
37
|
+
|
|
38
|
+
#### 3. Data Orchestration (Airflow vs Dagster)
|
|
39
|
+
- **Apache Airflow**: The industry standard for scheduling and monitoring complex DAGs (Directed Acyclic Graphs). Best for Python-heavy teams.
|
|
40
|
+
- **Dagster**: A modern alternative focused on data assets rather than just tasks. Use Dagster when you want better local testing and asset-driven lineage.
|
|
41
|
+
|
|
42
|
+
#### 4. OLAP Database Selection
|
|
43
|
+
- **BigQuery / Snowflake**: Best for massive scale, fully managed cloud data warehousing.
|
|
44
|
+
- **ClickHouse**: Best for real-time, sub-second analytical queries on massive event streams.
|
|
45
|
+
- **DuckDB**: Best for local analytics, embedded analytical pipelines, or processing parquets in edge environments (Node.js/Python).
|
|
46
|
+
|
|
47
|
+
## Orchestration & Integration
|
|
48
|
+
- Pairs with `data-telemetry-expert` to process the raw telemetry events captured by PostHog/OpenTelemetry.
|
|
49
|
+
- Complements `python-programming-expert` as Python is the lingua franca of data engineering.
|
|
50
|
+
- Works with `cron-scheduler-expert` when simpler, non-DAG cron jobs are sufficient for small ETL tasks.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
<a name="bahasa-indonesia"></a>
|
|
55
|
+
## Bahasa Indonesia
|
|
56
|
+
|
|
57
|
+
### Deskripsi
|
|
58
|
+
Panduan khusus untuk membangun arsitektur data yang kuat, Analytics Engineering, dan pipeline ETL/ELT. Mencakup orkestrasi (Airflow, Dagster), alat transformasi (dbt), dan database OLAP berkinerja tinggi (BigQuery, Snowflake, ClickHouse, DuckDB).
|
|
59
|
+
|
|
60
|
+
### Kondisi Pemicu
|
|
61
|
+
- Saat merancang infrastruktur analitik atau dashboard pelaporan untuk SaaS.
|
|
62
|
+
- Saat memindahkan data bervolume besar dari database transaksional ke Data Warehouse.
|
|
63
|
+
- Saat membangun analitik lokal yang cepat menggunakan DuckDB.
|
|
64
|
+
|
|
65
|
+
### Panduan Arsitektur Inti
|
|
66
|
+
|
|
67
|
+
#### 1. ELT lebih disukai daripada ETL
|
|
68
|
+
- **Extract & Load**: Pindahkan data mentah (raw data) langsung ke Data Warehouse (menggunakan Airbyte/Fivetran).
|
|
69
|
+
- **Transform**: Lakukan transformasi data *di dalam* Data Warehouse menggunakan SQL (dbt) untuk memanfaatkan kekuatan komputasi gudang data yang masif.
|
|
70
|
+
|
|
71
|
+
#### 2. Analytics Engineering dengan dbt (Data Build Tool)
|
|
72
|
+
Perlakukan transformasi data (SQL) layaknya rekayasa perangkat lunak. Gunakan dbt untuk version control, pengujian otomatis (`not_null`, `unique`), dan dokumentasi skema data Anda.
|
|
73
|
+
|
|
74
|
+
#### 3. Orkestrasi Data (DAG)
|
|
75
|
+
Gunakan Apache Airflow atau Dagster untuk menjadwalkan dan memonitor alur kerja data yang kompleks (DAG). Dagster sangat direkomendasikan untuk pendekatan modern yang berpusat pada aset data (asset-driven orchestration).
|
|
76
|
+
|
|
77
|
+
#### 4. Pemilihan Database OLAP
|
|
78
|
+
- **BigQuery / Snowflake**: Gudang data cloud fully-managed untuk analitik skala masif.
|
|
79
|
+
- **ClickHouse**: Sangat cepat untuk kueri analitik real-time. Cocok untuk data event stream/log.
|
|
80
|
+
- **DuckDB**: SQLite untuk analitik. Sangat cepat untuk memproses file Parquet atau CSV secara lokal maupun di lingkungan edge/serverless (via Python/Node.js).
|
|
81
|
+
|
|
82
|
+
## Integrasi Orkestrasi
|
|
83
|
+
- Bekerja sama dengan `data-telemetry-expert` untuk memproses data mentah yang dikumpulkan.
|
|
84
|
+
- Melengkapi `python-programming-expert` dalam menulis skrip orkestrasi Airflow/Dagster.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: data-telemetry-expert
|
|
3
3
|
description: "Expert guide for observability, analytics, telemetry, and data pipelines (OpenTelemetry, PostHog, Mixpanel) / Panduan ahli untuk observabilitas, telemetri, dan analitik."
|
|
4
|
-
author: "Roedy Rustam"
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Data & Telemetry Expert (OpenTelemetry 1.x / ClickHouse Edition)
|
|
@@ -13,6 +13,9 @@ author: "Roedy Rustam"
|
|
|
13
13
|
<a name="english"></a>
|
|
14
14
|
## English
|
|
15
15
|
|
|
16
|
+
### Orchestration & Integration
|
|
17
|
+
Connects and orchestrates with relevant domain skills like `brainstorming`, `zero-to-prod-orchestrator`, and `project-context-mapper` to ensure cohesive execution.
|
|
18
|
+
|
|
16
19
|
### Description
|
|
17
20
|
Expert guide for production observability, product analytics, and data pipelines. Covers **OpenTelemetry 1.x** (stable, vendor-neutral traces/metrics/logs), **PostHog** (open-source product analytics), **ClickHouse** (OLAP analytics database), Grafana stack, and AI agent observability patterns.
|
|
18
21
|
|
|
@@ -184,6 +187,9 @@ Backend tracing tools for LLM: **LangSmith** (LangChain/LangGraph), **OpenAI Tra
|
|
|
184
187
|
<a name="bahasa-indonesia"></a>
|
|
185
188
|
## Bahasa Indonesia
|
|
186
189
|
|
|
190
|
+
### Integrasi Orkestrasi
|
|
191
|
+
Terhubung dan mengorkestrasi skill domain yang relevan seperti `brainstorming`, `zero-to-prod-orchestrator`, dan `project-context-mapper` untuk memastikan eksekusi yang kohesif.
|
|
192
|
+
|
|
187
193
|
### Deskripsi
|
|
188
194
|
Panduan ahli untuk observabilitas produksi, analitik produk, dan pipeline data. Mencakup **OpenTelemetry 1.x** (stabil, vendor-neutral traces/metrics/logs), **PostHog** (analitik produk open-source), **ClickHouse** (database analitik OLAP), dan pola observabilitas agen AI.
|
|
189
195
|
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: data-visualization-expert
|
|
3
|
+
description: "Expert guide for data visualization, charts, and dashboards using D3.js, Recharts, Chart.js, Nivo, and Tremor / Panduan ahli visualisasi data, chart, dan dashboard menggunakan D3.js, Recharts, Chart.js, Nivo, dan Tremor."
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Data Visualization Expert (2026 Edition)
|
|
8
|
+
|
|
9
|
+
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<a name="english"></a>
|
|
14
|
+
## English
|
|
15
|
+
|
|
16
|
+
### Orchestration & Integration
|
|
17
|
+
- **`senior-frontend`**: React component architecture for chart components.
|
|
18
|
+
- **`data-telemetry-expert`**: Analytics data pipelines feeding visualizations.
|
|
19
|
+
- **`state-management-expert`**: Managing chart state, filters, and drill-down navigation.
|
|
20
|
+
- **`performance-web-vitals`**: Optimizing chart rendering performance with large datasets.
|
|
21
|
+
- **`sse-websocket-streaming-expert`**: Real-time data feeds for live dashboards.
|
|
22
|
+
|
|
23
|
+
### Description
|
|
24
|
+
Expert guide for building production-quality data visualizations and analytics dashboards. Covers D3.js v7 (low-level SVG/Canvas), Recharts (React-native charts), Chart.js 4 (lightweight canvas), Nivo (D3-powered React components), Tremor (dashboard components), and Apache ECharts. Includes responsive charts, real-time updates, accessibility, large dataset optimization, and dashboard layout patterns.
|
|
25
|
+
|
|
26
|
+
### Trigger Conditions
|
|
27
|
+
- Building analytics dashboards or admin panels with charts.
|
|
28
|
+
- Creating data visualizations (line, bar, pie, scatter, heatmap, treemap).
|
|
29
|
+
- Implementing real-time updating charts or live data feeds.
|
|
30
|
+
- Choosing a charting library for React, Vue, or vanilla JS.
|
|
31
|
+
- Optimizing chart performance with large datasets (10K+ data points).
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
### Library Selection Guide
|
|
36
|
+
|
|
37
|
+
| Library | Framework | Rendering | Customization | Learning Curve | Best For |
|
|
38
|
+
|---------|-----------|-----------|---------------|----------------|----------|
|
|
39
|
+
| D3.js v7 | Agnostic | SVG/Canvas | ★★★★★ | High | Custom visualizations |
|
|
40
|
+
| Recharts | React | SVG | ★★★★ | Low | Standard React charts |
|
|
41
|
+
| Nivo | React | SVG/Canvas | ★★★★★ | Medium | Beautiful, animated charts |
|
|
42
|
+
| Tremor | React | SVG (Recharts) | ★★★ | Very Low | Dashboards, KPI cards |
|
|
43
|
+
| Chart.js 4 | Agnostic | Canvas | ★★★ | Low | Lightweight, simple charts |
|
|
44
|
+
| ECharts | Agnostic | Canvas/SVG | ★★★★★ | Medium | Complex, interactive, large data |
|
|
45
|
+
|
|
46
|
+
**Recommendation:** Use **Tremor** for rapid dashboard prototyping. Use **Recharts** for standard React charts. Use **D3.js** only for highly custom visualizations.
|
|
47
|
+
|
|
48
|
+
### Core Patterns
|
|
49
|
+
|
|
50
|
+
#### 1. Recharts (React Standard)
|
|
51
|
+
|
|
52
|
+
```tsx
|
|
53
|
+
import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer } from 'recharts';
|
|
54
|
+
|
|
55
|
+
function RevenueChart({ data }: { data: { date: string; revenue: number }[] }) {
|
|
56
|
+
return (
|
|
57
|
+
<ResponsiveContainer width="100%" height={400}>
|
|
58
|
+
<LineChart data={data}>
|
|
59
|
+
<CartesianGrid strokeDasharray="3 3" stroke="#374151" />
|
|
60
|
+
<XAxis dataKey="date" stroke="#9CA3AF" />
|
|
61
|
+
<YAxis stroke="#9CA3AF" tickFormatter={(v) => `$${(v / 1000).toFixed(0)}K`} />
|
|
62
|
+
<Tooltip
|
|
63
|
+
contentStyle={{ backgroundColor: '#1F2937', border: 'none', borderRadius: 8 }}
|
|
64
|
+
formatter={(value: number) => [`$${value.toLocaleString()}`, 'Revenue']}
|
|
65
|
+
/>
|
|
66
|
+
<Line type="monotone" dataKey="revenue" stroke="#8B5CF6" strokeWidth={2} dot={false} />
|
|
67
|
+
</LineChart>
|
|
68
|
+
</ResponsiveContainer>
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
#### 2. Tremor Dashboard Components
|
|
74
|
+
|
|
75
|
+
```tsx
|
|
76
|
+
import { Card, Metric, Text, AreaChart, BarList, Grid } from '@tremor/react';
|
|
77
|
+
|
|
78
|
+
function AnalyticsDashboard({ metrics, chartData, topPages }) {
|
|
79
|
+
return (
|
|
80
|
+
<Grid numItemsMd={2} numItemsLg={3} className="gap-6">
|
|
81
|
+
<Card>
|
|
82
|
+
<Text>Total Revenue</Text>
|
|
83
|
+
<Metric>$845,230</Metric>
|
|
84
|
+
</Card>
|
|
85
|
+
<Card>
|
|
86
|
+
<Text>Revenue Over Time</Text>
|
|
87
|
+
<AreaChart
|
|
88
|
+
data={chartData}
|
|
89
|
+
index="month"
|
|
90
|
+
categories={['Revenue', 'Expenses']}
|
|
91
|
+
colors={['violet', 'rose']}
|
|
92
|
+
valueFormatter={(v) => `$${(v / 1000).toFixed(0)}K`}
|
|
93
|
+
/>
|
|
94
|
+
</Card>
|
|
95
|
+
<Card>
|
|
96
|
+
<Text>Top Pages</Text>
|
|
97
|
+
<BarList data={topPages} className="mt-4" />
|
|
98
|
+
</Card>
|
|
99
|
+
</Grid>
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
#### 3. Real-Time Chart Updates
|
|
105
|
+
|
|
106
|
+
```tsx
|
|
107
|
+
import { useEffect, useState } from 'react';
|
|
108
|
+
|
|
109
|
+
function LiveMetricsChart() {
|
|
110
|
+
const [data, setData] = useState<{ time: string; value: number }[]>([]);
|
|
111
|
+
|
|
112
|
+
useEffect(() => {
|
|
113
|
+
const es = new EventSource('/api/metrics/stream');
|
|
114
|
+
es.onmessage = (event) => {
|
|
115
|
+
const point = JSON.parse(event.data);
|
|
116
|
+
setData((prev) => [...prev.slice(-60), point]); // Keep last 60 points
|
|
117
|
+
};
|
|
118
|
+
return () => es.close();
|
|
119
|
+
}, []);
|
|
120
|
+
|
|
121
|
+
return <LineChart data={data} /* ... */ />;
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
#### 4. Large Dataset Optimization
|
|
126
|
+
- Use **Canvas** rendering (ECharts, Chart.js) for >5K data points.
|
|
127
|
+
- Implement **data aggregation** on the server (downsample to 500-1000 points for display).
|
|
128
|
+
- Use **windowed rendering** — only render visible data points.
|
|
129
|
+
- Apply **debounced zoom/pan** to prevent excessive re-renders.
|
|
130
|
+
|
|
131
|
+
### Dashboard Layout Patterns
|
|
132
|
+
- **KPI Row → Charts → Tables**: Top metrics cards, then charts, then detail tables.
|
|
133
|
+
- **Filter Sidebar**: Global date range, category, and dimension filters.
|
|
134
|
+
- **Drill-down**: Click chart segment → navigate to detail view.
|
|
135
|
+
- **Export**: CSV/PNG/PDF export for all charts.
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
<a name="bahasa-indonesia"></a>
|
|
140
|
+
## Bahasa Indonesia
|
|
141
|
+
|
|
142
|
+
### Integrasi Orkestrasi
|
|
143
|
+
- **`senior-frontend`**: Arsitektur komponen React untuk komponen chart.
|
|
144
|
+
- **`data-telemetry-expert`**: Pipeline data analitik yang mengisi visualisasi.
|
|
145
|
+
- **`state-management-expert`**: Mengelola state chart, filter, dan navigasi drill-down.
|
|
146
|
+
|
|
147
|
+
### Deskripsi
|
|
148
|
+
Panduan ahli untuk membangun visualisasi data dan dashboard analitik berkualitas produksi. Mencakup D3.js v7, Recharts, Chart.js 4, Nivo, Tremor, dan Apache ECharts. Termasuk chart responsif, update real-time, aksesibilitas, optimasi dataset besar, dan pola layout dashboard.
|
|
149
|
+
|
|
150
|
+
### Kondisi Pemicu
|
|
151
|
+
- Membangun dashboard analitik atau panel admin dengan chart.
|
|
152
|
+
- Membuat visualisasi data (line, bar, pie, scatter, heatmap, treemap).
|
|
153
|
+
- Mengimplementasikan chart yang update real-time atau feed data langsung.
|
|
154
|
+
- Memilih library charting untuk React, Vue, atau vanilla JS.
|