vibes-plug 2.5.0 → 2.11.0
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 +309 -217
- package/CHANGELOG.md +133 -1
- package/CLAUDE.md +70 -0
- package/LICENSE +1 -1
- package/README.md +641 -415
- package/index.js +19 -0
- package/package.json +44 -8
- package/plugin.json +24 -7
- 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-cost-token-optimizer/SKILL.md +82 -52
- package/skills/ai-evals-benchmark-expert/SKILL.md +188 -0
- package/skills/ai-llm-integration-expert/SKILL.md +185 -178
- package/skills/ai-media-generation-expert/SKILL.md +172 -0
- package/skills/ai-prompt-engineering-expert/SKILL.md +84 -0
- package/skills/angular-expert/SKILL.md +148 -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/{asisten_ramah → asisten-ramah}/SKILL.md +7 -1
- package/skills/astro-framework-expert/SKILL.md +200 -0
- package/skills/async-queue-temporal-expert/SKILL.md +210 -24
- package/skills/authentication-identity-expert/SKILL.md +278 -275
- package/skills/auto-doc-updater/SKILL.md +7 -1
- package/skills/autonomous-chaos-monkey/SKILL.md +63 -63
- package/skills/autonomous-red-teamer/SKILL.md +172 -28
- package/skills/autonomous-tdd-debugger/SKILL.md +70 -64
- package/skills/background-jobs-queue-expert/SKILL.md +235 -0
- 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 +58 -50
- 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-migration-versioning-expert/SKILL.md +90 -0
- package/skills/database-orm-expert/SKILL.md +13 -3
- package/skills/dependency-upgrade-migrator/SKILL.md +300 -294
- package/skills/design-system-architect/SKILL.md +278 -259
- 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/edge-serverless-db-expert/SKILL.md +98 -42
- package/skills/email-notification-expert/SKILL.md +367 -361
- package/skills/error-resilience-expert/SKILL.md +485 -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 +60 -1
- 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 +106 -100
- package/skills/go-programming-expert/SKILL.md +21 -15
- package/skills/graph-rag-knowledge-expert/SKILL.md +159 -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-client-orchestrator/SKILL.md +75 -69
- package/skills/mcp-server-architect/SKILL.md +294 -194
- package/skills/micro-frontend-architect/SKILL.md +111 -105
- package/skills/mobile-expo-expert/SKILL.md +8 -2
- package/skills/mobile-push-notification-expert/SKILL.md +70 -50
- package/skills/modern-css-native-expert/SKILL.md +189 -0
- package/skills/monday-design-aesthetic/SKILL.md +7 -1
- 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 +7 -1
- package/skills/proactive-background-watcher/SKILL.md +67 -61
- package/skills/production-ready-hardener/SKILL.md +461 -455
- package/skills/project-context-mapper/SKILL.md +84 -78
- package/skills/pwa-offline-first-expert/SKILL.md +185 -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-billing/SKILL.md +7 -1
- package/skills/saas-multi-tenant/SKILL.md +7 -1
- package/skills/saas-mvp-launcher/SKILL.md +20 -1
- package/skills/saas-transformer/SKILL.md +499 -488
- 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-evolving-memory-graph/SKILL.md +90 -74
- package/skills/self-healing-cloud-orchestrator/SKILL.md +57 -57
- package/skills/senior-frontend/SKILL.md +141 -161
- package/skills/seo/SKILL.md +41 -17
- package/skills/session-context-loader/SKILL.md +82 -76
- package/skills/session-handoff-resume/SKILL.md +7 -1
- package/skills/{skill_baru → skill-baru}/SKILL.md +8 -2
- 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-migration/SKILL.md +47 -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/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/token-saver/SKILL.md +1 -1
- package/skills/typescript-expert/SKILL.md +12 -6
- package/skills/ui-components-expert/SKILL.md +165 -279
- package/skills/ui-ux-pro-max/SKILL.md +23 -3
- package/skills/vector-db-rag-expert/SKILL.md +175 -19
- package/skills/vibe-code-gardener/SKILL.md +1 -1
- package/skills/visual-qa-vision-agent/SKILL.md +70 -64
- package/skills/voice-ai-realtime-agent/SKILL.md +202 -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 +136 -130
- package/skills/web-game-engine-expert/SKILL.md +101 -95
- 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 +122 -116
- package/skills/wordpress-headless-expert/SKILL.md +144 -0
- package/skills/zero-to-prod-orchestrator/SKILL.md +52 -27
- 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/autonomous-swarm-director/SKILL.md +0 -69
- package/skills/hyper-context-synthesizer/SKILL.md +0 -55
- package/skills/llm-cost-arbitrage-router/SKILL.md +0 -59
- 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/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/vibes-swarm-demo.gif +0 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: desktop-electron-expert
|
|
3
|
+
description: "Expert guide for Electron 33+ desktop application development — Electron Forge, context isolation, IPC security, native menus, auto-updates, and multi-window management / Panduan ahli pengembangan desktop Electron 33+."
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Desktop Electron 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
|
+
- **`tauri-expert`**: Comparing Electron vs. Tauri architectures for desktop targets.
|
|
18
|
+
- **`senior-frontend`**: React/Vue frontend architecture inside Electron renderers.
|
|
19
|
+
- **`ci-cd-devops-architect`**: Multi-platform desktop packaging (Windows MSI/EXE, macOS DMG, Linux AppImage).
|
|
20
|
+
- **`error-resilience-expert`**: Crash reporting and main/renderer crash recovery.
|
|
21
|
+
|
|
22
|
+
### Description
|
|
23
|
+
Production guide for engineering secure, high-performance cross-platform desktop applications using Electron 33+. Covers secure IPC communication via `contextBridge`, mandatory Context Isolation and Sandbox modes, native system integrations (tray, notifications, menus, global shortcuts), auto-updates with `electron-updater`, and build automation with Electron Forge / electron-builder.
|
|
24
|
+
|
|
25
|
+
### Trigger Conditions
|
|
26
|
+
- Building desktop apps with web technologies using Electron.
|
|
27
|
+
- Hardening Electron security (Context Isolation, Preload scripts, CSP, nodeIntegration: false).
|
|
28
|
+
- Implementing typed IPC communication between Main and Renderer processes.
|
|
29
|
+
- Setting up auto-update workflows and multi-OS code signing.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
### Core Security & Architecture Patterns
|
|
34
|
+
|
|
35
|
+
#### 1. Secure Main Process (`main.ts`)
|
|
36
|
+
```typescript
|
|
37
|
+
import { app, BrowserWindow, ipcMain } from 'electron';
|
|
38
|
+
import path from 'path';
|
|
39
|
+
|
|
40
|
+
let mainWindow: BrowserWindow | null = null;
|
|
41
|
+
|
|
42
|
+
function createWindow() {
|
|
43
|
+
mainWindow = new BrowserWindow({
|
|
44
|
+
width: 1200,
|
|
45
|
+
height: 800,
|
|
46
|
+
webPreferences: {
|
|
47
|
+
preload: path.join(__dirname, 'preload.js'),
|
|
48
|
+
contextIsolation: true, // MANDATORY for security
|
|
49
|
+
nodeIntegration: false, // NEVER enable in renderer
|
|
50
|
+
sandbox: true, // Enable OS-level sandbox
|
|
51
|
+
webSecurity: true,
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
if (process.env.NODE_ENV === 'development') {
|
|
56
|
+
mainWindow.loadURL('http://localhost:5173');
|
|
57
|
+
} else {
|
|
58
|
+
mainWindow.loadFile(path.join(__dirname, '../dist/index.html'));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
app.whenReady().then(() => {
|
|
63
|
+
createWindow();
|
|
64
|
+
|
|
65
|
+
// Typed IPC Handlers
|
|
66
|
+
ipcMain.handle('app:get-version', () => app.getVersion());
|
|
67
|
+
ipcMain.handle('file:read-config', async (_event, configName: string) => {
|
|
68
|
+
// Validate arguments safely
|
|
69
|
+
return { name: configName, loaded: true };
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
#### 2. Type-Safe Preload Script (`preload.ts`)
|
|
75
|
+
```typescript
|
|
76
|
+
import { contextBridge, ipcRenderer } from 'electron';
|
|
77
|
+
|
|
78
|
+
export interface ElectronAPI {
|
|
79
|
+
getVersion: () => Promise<string>;
|
|
80
|
+
readConfig: (name: string) => Promise<any>;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const api: ElectronAPI = {
|
|
84
|
+
getVersion: () => ipcRenderer.invoke('app:get-version'),
|
|
85
|
+
readConfig: (name: string) => ipcRenderer.invoke('file:read-config', name),
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
contextBridge.exposeInMainWorld('electronAPI', api);
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
#### 3. Renderer Consumer (`renderer.tsx`)
|
|
92
|
+
```tsx
|
|
93
|
+
declare global {
|
|
94
|
+
interface Window {
|
|
95
|
+
electronAPI: ElectronAPI;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
import React, { useEffect, useState } from 'react';
|
|
100
|
+
|
|
101
|
+
export function AppInfo() {
|
|
102
|
+
const [version, setVersion] = useState<string>('');
|
|
103
|
+
|
|
104
|
+
useEffect(() => {
|
|
105
|
+
window.electronAPI.getVersion().then(setVersion);
|
|
106
|
+
}, []);
|
|
107
|
+
|
|
108
|
+
return <div>App Version: {version}</div>;
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
<a name="bahasa-indonesia"></a>
|
|
115
|
+
## Bahasa Indonesia
|
|
116
|
+
|
|
117
|
+
### Integrasi Orkestrasi
|
|
118
|
+
- **`tauri-expert`**: Pemilihan dan perbandingan antara Electron dan Tauri untuk aplikasi desktop.
|
|
119
|
+
- **`senior-frontend`**: Integrasi framework frontend (React/Vue) di dalam renderer Electron.
|
|
120
|
+
- **`ci-cd-devops-architect`**: Otomasi build installer cross-platform (.exe, .dmg, .AppImage).
|
|
121
|
+
|
|
122
|
+
### Deskripsi
|
|
123
|
+
Panduan produksi untuk membangun aplikasi desktop cross-platform yang aman dan efisien menggunakan Electron 33+. Mengutamakan keamanan IPC dengan Context Isolation, isolasi proses renderer, integrasi sistem natif (system tray, menu, notifikasi), dan alur auto-update otomatis.
|
|
124
|
+
|
|
125
|
+
### Kondisi Pemicu
|
|
126
|
+
- Membangun aplikasi desktop menggunakan teknologi web berbasis Electron.
|
|
127
|
+
- Memperketat keamanan Electron (Context Isolation, Sandbox, sanitasi IPC).
|
|
128
|
+
- Mengonfigurasi auto-updater dan packaging multi-OS.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: documentation-site-expert
|
|
3
|
+
description: "Expert guide for technical documentation sites (Mintlify, Docusaurus, Storybook, VitePress) and component documentation / Panduan ahli situs dokumentasi teknis (Mintlify, Docusaurus, Storybook, VitePress) dan dokumentasi komponen."
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Documentation Site 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
|
+
- **`openapi-swagger-codegen-expert`**: Auto-generated API documentation.
|
|
18
|
+
- **`design-system-architect`**: Component documentation with Storybook.
|
|
19
|
+
- **`astro-framework-expert`**: Astro Starlight for docs sites.
|
|
20
|
+
- **`seo`**: Documentation site SEO and discoverability.
|
|
21
|
+
|
|
22
|
+
### Description
|
|
23
|
+
Expert guide for building technical documentation sites and component libraries. Covers Mintlify (AI-native docs), Docusaurus 3 (React-powered), Storybook 8 (component playground), VitePress (Vue-powered), Astro Starlight (Astro-powered), and MDX authoring. Includes API reference generation, versioning, search integration, and interactive code playgrounds.
|
|
24
|
+
|
|
25
|
+
### Trigger Conditions
|
|
26
|
+
- Creating documentation sites for APIs, libraries, or products.
|
|
27
|
+
- Setting up Storybook for component documentation.
|
|
28
|
+
- Choosing a documentation framework.
|
|
29
|
+
- Generating API reference docs from OpenAPI specs.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
### Framework Selection
|
|
34
|
+
|
|
35
|
+
| Framework | Stack | Search | Versioning | Best For |
|
|
36
|
+
|-----------|-------|--------|------------|----------|
|
|
37
|
+
| Mintlify | React/MDX | ✅ Built-in AI | ✅ | SaaS API docs |
|
|
38
|
+
| Docusaurus 3 | React/MDX | ✅ Algolia | ✅ | OSS project docs |
|
|
39
|
+
| Storybook 8 | Any framework | ❌ | ❌ | Component docs/playground |
|
|
40
|
+
| VitePress | Vue/Markdown | ✅ Built-in | ❌ | Vue ecosystem docs |
|
|
41
|
+
| Starlight | Astro/MDX | ✅ Pagefind | ✅ | Content-heavy docs |
|
|
42
|
+
|
|
43
|
+
**Recommendation:** Use **Mintlify** for SaaS API docs. Use **Docusaurus** for open-source projects. Use **Storybook** for component libraries.
|
|
44
|
+
|
|
45
|
+
## Orchestration & Integration
|
|
46
|
+
- `openapi-swagger-codegen-expert`, `design-system-architect`, `seo`
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
<a name="bahasa-indonesia"></a>
|
|
51
|
+
## Bahasa Indonesia
|
|
52
|
+
|
|
53
|
+
### Deskripsi
|
|
54
|
+
Panduan ahli untuk membangun situs dokumentasi teknis dan library komponen. Mencakup Mintlify, Docusaurus 3, Storybook 8, VitePress, dan Astro Starlight.
|
|
55
|
+
|
|
56
|
+
### Kondisi Pemicu
|
|
57
|
+
- Membuat situs dokumentasi untuk API, library, atau produk.
|
|
58
|
+
- Menyiapkan Storybook untuk dokumentasi komponen.
|
|
59
|
+
- Memilih framework dokumentasi.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: doku-mcp-server
|
|
3
3
|
description: "Expert guide for DOKU Model Context Protocol (MCP) Server integration. Enables AI Agentic Commerce with tools for payment links, Virtual Accounts, QRIS, transaction status checks, and client configuration (Claude Desktop, Cursor, AGY) / Panduan ahli DOKU MCP Server untuk AI Agentic Commerce."
|
|
4
|
-
author: "Roedy Rustam"
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# DOKU MCP Server / Server Model Context Protocol DOKU
|
|
@@ -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 integrating and building Model Context Protocol (MCP) servers with DOKU Payment Gateway based on [DOKU Developers Documentation](https://developers.doku.com/). Enables AI Agents (Claude Desktop, Antigravity, Cursor, n8n, LangChain) to execute payment tasks autonomously using Agentic Commerce capabilities (generating payment links, issuing Virtual Account numbers, generating QRIS codes, querying transaction statuses).
|
|
18
21
|
|
|
@@ -206,6 +209,9 @@ main().catch(console.error);
|
|
|
206
209
|
<a name="bahasa-indonesia"></a>
|
|
207
210
|
## Bahasa Indonesia
|
|
208
211
|
|
|
212
|
+
### Integrasi Orkestrasi
|
|
213
|
+
Terhubung dan mengorkestrasi skill domain yang relevan seperti `brainstorming`, `zero-to-prod-orchestrator`, dan `project-context-mapper` untuk memastikan eksekusi yang kohesif.
|
|
214
|
+
|
|
209
215
|
### Deskripsi
|
|
210
216
|
Panduan ahli untuk mengintegrasikan dan membuat server Model Context Protocol (MCP) dengan DOKU Payment Gateway berdasarkan dokumentasi resmi [DOKU Developers Documentation](https://developers.doku.com/). Memungkinkan Agen AI (Claude Desktop, Antigravity, Cursor, n8n, LangChain) menjalankan transaksi pembayaran secara otonom dalam alur Agentic Commerce (membuat link pembayaran, membuat nomor Virtual Account, membuat kode QRIS, dan memeriksa status transaksi).
|
|
211
217
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: doku-payment-gateway
|
|
3
3
|
description: "Expert guide for integrating DOKU Payment Gateway (Jokul API v2). Covers HMAC-SHA256 header signature calculation, Checkout & Direct APIs (VA, QRIS, E-Wallet, Credit Card), webhook notification verification, and sandbox/production setup / Panduan ahli integrasi DOKU Payment Gateway."
|
|
4
|
-
author: "Roedy Rustam"
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# DOKU Payment Gateway Integration / Integrasi Payment Gateway DOKU
|
|
@@ -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 implementing DOKU Payment Gateway (Jokul API v2) integrations based on official [DOKU Developers Documentation](https://developers.doku.com/). Covers authentication headers, SHA-256 Digest generation, HMAC-SHA256 request signature construction, Webhook notification verification, Checkout Payment Links, Direct Payments (Virtual Account, QRIS, E-Wallet, Credit Card), error handling, and sandbox/production deployment.
|
|
18
21
|
|
|
@@ -197,6 +200,9 @@ export function verifyDokuWebhook(req: Request, secretKey: string): boolean {
|
|
|
197
200
|
<a name="bahasa-indonesia"></a>
|
|
198
201
|
## Bahasa Indonesia
|
|
199
202
|
|
|
203
|
+
### Integrasi Orkestrasi
|
|
204
|
+
Terhubung dan mengorkestrasi skill domain yang relevan seperti `brainstorming`, `zero-to-prod-orchestrator`, dan `project-context-mapper` untuk memastikan eksekusi yang kohesif.
|
|
205
|
+
|
|
200
206
|
### Deskripsi
|
|
201
207
|
Panduan ahli untuk mengintegrasikan DOKU Payment Gateway (Jokul API v2) sesuai standar dokumentasi resmi [DOKU Developers Portal](https://developers.doku.com/). Mencakup header autentikasi, pembuatan Digest SHA-256, pembuatan Signature HMAC-SHA256, verifikasi Webhook/Notifikasi, Checkout Payment Link, Direct Payment (Virtual Account, QRIS, E-Wallet, Kartu Kredit), penanganan error, dan migrasi Sandbox ke Production.
|
|
202
208
|
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: domain-driven-design-expert
|
|
3
|
+
description: "Expert guide for Domain-Driven Design (DDD). Covers tactical patterns (Aggregates, Value Objects), strategic patterns (Bounded Contexts), event storming, and CQRS / Panduan ahli Desain Berbasis Domain (DDD)."
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Domain-Driven Design (DDD) Expert
|
|
8
|
+
|
|
9
|
+
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<a name="english"></a>
|
|
14
|
+
## English
|
|
15
|
+
|
|
16
|
+
### Description
|
|
17
|
+
A software architecture guide focused on tackling complexity in the heart of software. This skill bridges the gap between business rules and codebase structure using Domain-Driven Design (DDD). It covers Strategic Design (Bounded Contexts, Ubiquitous Language) and Tactical Design (Aggregates, Value Objects, Domain Events, Repositories).
|
|
18
|
+
|
|
19
|
+
### Trigger Conditions
|
|
20
|
+
- When refactoring a massive, monolithic "Big Ball of Mud" codebase.
|
|
21
|
+
- When defining microservice boundaries (Bounded Contexts).
|
|
22
|
+
- When the user asks about "Clean Architecture", "CQRS", or "Event Sourcing".
|
|
23
|
+
- When building core business logic that is highly complex and rule-heavy (e.g., banking, logistics, SaaS billing engines).
|
|
24
|
+
|
|
25
|
+
### Core Architectural Guidelines
|
|
26
|
+
|
|
27
|
+
#### 1. Strategic Design (The Big Picture)
|
|
28
|
+
- **Ubiquitous Language**: The code must speak the language of the business. Do not use generic terms like `UserData` if the business calls it a `Subscriber`.
|
|
29
|
+
- **Bounded Contexts**: Divide large systems into distinct contexts. A `Product` in the Inventory context has different attributes than a `Product` in the Billing context. Do not try to create one massive, unified `Product` model.
|
|
30
|
+
|
|
31
|
+
#### 2. Tactical Design (The Code)
|
|
32
|
+
- **Value Objects**: Use immutable Value Objects for attributes (e.g., `Money`, `Address`, `Email`) instead of primitives (`int`, `string`). Value Objects validate themselves upon creation.
|
|
33
|
+
- **Entities & Aggregates**: Group related Entities together under a single Aggregate Root. External objects may only hold a reference to the Aggregate Root, never to its internal children.
|
|
34
|
+
- **Repositories**: Only create Repositories for Aggregate Roots.
|
|
35
|
+
|
|
36
|
+
#### 3. Domain Events
|
|
37
|
+
When an Aggregate changes state in a way that other parts of the system care about, it should publish a Domain Event (e.g., `OrderPlacedEvent`). This decouples side-effects (like sending an email) from the core business transaction.
|
|
38
|
+
|
|
39
|
+
#### 4. CQRS (Command Query Responsibility Segregation)
|
|
40
|
+
For highly scalable systems, separate the models used for writing data (Commands) from the models used for reading data (Queries).
|
|
41
|
+
- **Commands**: Modify state via the rich Domain Model.
|
|
42
|
+
- **Queries**: Read data directly from optimized database views or read models, bypassing the Domain Model entirely for performance.
|
|
43
|
+
|
|
44
|
+
## Orchestration & Integration
|
|
45
|
+
- Extends `scalability-clean-code` with strict domain isolation patterns.
|
|
46
|
+
- Essential for `event-driven-architect` when defining what events flow through the message broker.
|
|
47
|
+
- Complements `micro-frontend-architect` by aligning frontend boundaries with backend Bounded Contexts.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
<a name="bahasa-indonesia"></a>
|
|
52
|
+
## Bahasa Indonesia
|
|
53
|
+
|
|
54
|
+
### Deskripsi
|
|
55
|
+
Panduan arsitektur perangkat lunak yang berfokus pada penanganan kompleksitas bisnis. Skill ini menjembatani aturan bisnis dan struktur kode menggunakan Domain-Driven Design (DDD). Meliputi Desain Strategis (Bounded Contexts, Ubiquitous Language) dan Desain Taktis (Aggregates, Value Objects, Domain Events).
|
|
56
|
+
|
|
57
|
+
### Kondisi Pemicu
|
|
58
|
+
- Saat melakukan refactoring codebase monolitik yang sudah berantakan (Big Ball of Mud).
|
|
59
|
+
- Saat mendefinisikan batas-batas layanan microservices.
|
|
60
|
+
- Saat membangun logika bisnis inti yang sangat kompleks (misal: mesin penagihan SaaS, sistem perbankan).
|
|
61
|
+
|
|
62
|
+
### Panduan Arsitektur Inti
|
|
63
|
+
|
|
64
|
+
#### 1. Desain Strategis
|
|
65
|
+
- **Ubiquitous Language**: Kode harus menggunakan bahasa yang sama dengan pihak bisnis. Hindari istilah teknis generik jika ada istilah bisnis yang lebih tepat.
|
|
66
|
+
- **Bounded Contexts**: Jangan mencoba membuat satu model data raksasa (misal: tabel `User` dengan 100 kolom). Pisahkan berdasarkan konteks; entitas `User` di konteks Penagihan berbeda dengan `User` di konteks Pengiriman.
|
|
67
|
+
|
|
68
|
+
#### 2. Desain Taktis (Implementasi Kode)
|
|
69
|
+
- **Value Objects**: Gunakan objek *immutable* (tidak dapat diubah) untuk atribut seperti `Uang`, `Alamat`, atau `Email` daripada tipe data primitif biasa (string/int).
|
|
70
|
+
- **Aggregates**: Kelompokkan entitas-entitas yang saling berhubungan ke dalam satu Aggregate Root. Interaksi dari luar hanya boleh melalui Root ini untuk menjaga konsistensi data.
|
|
71
|
+
- **Repositories**: Buat Repository hanya untuk Aggregate Root, bukan untuk setiap tabel di database.
|
|
72
|
+
|
|
73
|
+
#### 3. Domain Events
|
|
74
|
+
Pisahkan efek samping (side-effects). Daripada membuat modul Pesanan memanggil modul Email secara langsung, buat modul Pesanan menerbitkan `OrderPlacedEvent`. Modul Email akan bereaksi terhadap event tersebut.
|
|
75
|
+
|
|
76
|
+
#### 4. CQRS
|
|
77
|
+
Pisahkan model data untuk operasi *Write* (Command) dan *Read* (Query). Model baca dapat dioptimalkan secara drastis dengan melakukan bypass penuh pada logika domain.
|
|
78
|
+
|
|
79
|
+
## Integrasi Orkestrasi
|
|
80
|
+
- Mengembangkan `scalability-clean-code` dengan pola isolasi domain yang ketat.
|
|
81
|
+
- Sangat penting bagi `event-driven-architect` untuk menentukan struktur event di message broker.
|
|
82
|
+
- Membantu `micro-frontend-architect` menyelaraskan batas-batas frontend dengan Bounded Contexts backend.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: e2e-testing-expert
|
|
3
3
|
description: "Expert guide for End-to-End (E2E) testing with Playwright, unit/integration testing with Vitest, and CI/CD automated testing pipeline setup / Panduan ahli pengujian End-to-End (E2E) dengan Playwright, pengujian unit/integrasi dengan Vitest, dan otomatisasi CI/CD."
|
|
4
|
-
author: "Roedy Rustam"
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# E2E Testing Expert (Playwright 1.49+ / Vitest 3 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 building comprehensive automated test suites using **Playwright 1.49+** (E2E + component testing), **Vitest 3** (unit/integration), and robust CI/CD pipelines. Covers modern testing patterns for Next.js 15, React 19, and API backends.
|
|
18
21
|
|
|
@@ -279,6 +282,9 @@ jobs:
|
|
|
279
282
|
<a name="bahasa-indonesia"></a>
|
|
280
283
|
## Bahasa Indonesia
|
|
281
284
|
|
|
285
|
+
### Integrasi Orkestrasi
|
|
286
|
+
Terhubung dan mengorkestrasi skill domain yang relevan seperti `brainstorming`, `zero-to-prod-orchestrator`, dan `project-context-mapper` untuk memastikan eksekusi yang kohesif.
|
|
287
|
+
|
|
282
288
|
### Deskripsi
|
|
283
289
|
Panduan ahli untuk membangun test suite otomatis yang komprehensif menggunakan **Playwright 1.49+** (E2E + component testing), **Vitest 3** (unit/integrasi), dan pipeline CI/CD yang kuat. Mencakup pola pengujian modern untuk Next.js 15, React 19, dan backend API.
|
|
284
290
|
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ecommerce-expert
|
|
3
|
+
description: "Expert guide for e-commerce architecture (Shopify Storefront, Medusa.js, Saleor), product catalogs, cart/checkout UX, and order management / Panduan ahli arsitektur e-commerce (Shopify, Medusa.js, Saleor), katalog produk, UX keranjang/checkout, dan manajemen pesanan."
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# E-Commerce 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
|
+
- **`payment-gateway-expert`**: Stripe, Xendit, Midtrans payment integration.
|
|
18
|
+
- **`nextjs-app-router-expert`**: SSR product pages and cart functionality.
|
|
19
|
+
- **`seo`**: Product schema markup, sitemaps, and SEO optimization.
|
|
20
|
+
- **`saas-billing`**: Subscription-based e-commerce models.
|
|
21
|
+
- **`headless-cms-expert`**: Content management for product descriptions and pages.
|
|
22
|
+
|
|
23
|
+
### Description
|
|
24
|
+
Expert guide for building modern e-commerce applications. Covers Shopify Storefront API (headless commerce), Medusa.js v2 (open-source, self-hosted), Saleor (GraphQL-first), product catalog design, cart state management, checkout flows, inventory management, order fulfillment, and SEO for product pages.
|
|
25
|
+
|
|
26
|
+
### Trigger Conditions
|
|
27
|
+
- Building an online store or e-commerce platform.
|
|
28
|
+
- Integrating Shopify Storefront API with custom frontend.
|
|
29
|
+
- Setting up Medusa.js or Saleor for headless commerce.
|
|
30
|
+
- Designing product catalog schemas and cart/checkout UX.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
### Platform Selection
|
|
35
|
+
|
|
36
|
+
| Platform | Type | API | Self-Hosted | Best For |
|
|
37
|
+
|----------|------|-----|-------------|----------|
|
|
38
|
+
| Shopify Storefront | SaaS + Headless | GraphQL | ❌ | Quick launch, large catalog |
|
|
39
|
+
| Medusa.js v2 | Open-source | REST + JS SDK | ✅ | Full control, customization |
|
|
40
|
+
| Saleor | Open-source | GraphQL | ✅ | Enterprise, multi-channel |
|
|
41
|
+
| WooCommerce | Plugin (WordPress) | REST | ✅ | WordPress ecosystem |
|
|
42
|
+
|
|
43
|
+
### Core Patterns
|
|
44
|
+
|
|
45
|
+
```typescript
|
|
46
|
+
// Shopify Storefront API — Fetch products
|
|
47
|
+
const SHOPIFY_QUERY = `{
|
|
48
|
+
products(first: 12, sortKey: BEST_SELLING) {
|
|
49
|
+
edges {
|
|
50
|
+
node {
|
|
51
|
+
id title handle description
|
|
52
|
+
priceRange { minVariantPrice { amount currencyCode } }
|
|
53
|
+
images(first: 1) { edges { node { url altText } } }
|
|
54
|
+
variants(first: 5) { edges { node { id title availableForSale price { amount } } } }
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}`;
|
|
59
|
+
|
|
60
|
+
async function getProducts() {
|
|
61
|
+
const res = await fetch(process.env.SHOPIFY_STOREFRONT_URL!, {
|
|
62
|
+
method: 'POST',
|
|
63
|
+
headers: {
|
|
64
|
+
'Content-Type': 'application/json',
|
|
65
|
+
'X-Shopify-Storefront-Access-Token': process.env.SHOPIFY_TOKEN!,
|
|
66
|
+
},
|
|
67
|
+
body: JSON.stringify({ query: SHOPIFY_QUERY }),
|
|
68
|
+
});
|
|
69
|
+
return (await res.json()).data.products.edges.map((e) => e.node);
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Orchestration & Integration
|
|
74
|
+
- `payment-gateway-expert`, `nextjs-app-router-expert`, `seo`, `saas-billing`
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
<a name="bahasa-indonesia"></a>
|
|
79
|
+
## Bahasa Indonesia
|
|
80
|
+
|
|
81
|
+
### Deskripsi
|
|
82
|
+
Panduan ahli untuk membangun aplikasi e-commerce modern. Mencakup Shopify Storefront API, Medusa.js v2, Saleor, desain katalog produk, manajemen keranjang, alur checkout, manajemen inventaris, dan SEO halaman produk.
|
|
83
|
+
|
|
84
|
+
### Kondisi Pemicu
|
|
85
|
+
- Membangun toko online atau platform e-commerce.
|
|
86
|
+
- Mengintegrasikan Shopify Storefront API dengan frontend kustom.
|
|
87
|
+
- Menyiapkan Medusa.js atau Saleor untuk headless commerce.
|
|
@@ -1,43 +1,99 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: edge-serverless-db-expert
|
|
3
|
-
description: "Expert guide for Serverless & Edge Databases (Neon Serverless Postgres, Cloudflare D1, Turso/libsql, Upstash Redis), cold-start mitigation, and connection pooling / Panduan ahli database Serverless & Edge (Neon, Cloudflare D1, Turso, Upstash)."
|
|
1
|
+
---
|
|
2
|
+
name: edge-serverless-db-expert
|
|
3
|
+
description: "Expert guide for Serverless & Edge Databases (Neon Serverless Postgres, Cloudflare D1, Turso/libsql, Upstash Redis), cold-start mitigation, and connection pooling / Panduan ahli database Serverless & Edge (Neon, Cloudflare D1, Turso, Upstash)."
|
|
4
4
|
author: "Roedy Rustam"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Edge & Serverless DB Expert
|
|
8
|
-
|
|
9
|
-
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
<a name="english"></a>
|
|
14
|
-
## English
|
|
15
|
-
|
|
16
|
-
### Purpose & Overview
|
|
17
|
-
Best practices for building ultra-low-latency applications powered by serverless and edge databases
|
|
18
|
-
|
|
19
|
-
### Key Capabilities
|
|
20
|
-
- **Neon & Cloudflare D1**: Serverless autoscaling Postgres with instant branching
|
|
21
|
-
- **Connection Pooling**: WebSocket/HTTP proxy pooling (Neon Serverless Driver, Upstash Redis over HTTP) for edge workers
|
|
22
|
-
- **Embedded Replicas**:
|
|
23
|
-
|
|
24
|
-
```typescript
|
|
25
|
-
import { neon } from '@neondatabase/serverless';
|
|
26
|
-
import { drizzle } from 'drizzle-orm/neon-http';
|
|
27
|
-
|
|
28
|
-
const sql = neon(process.env.DATABASE_URL!);
|
|
29
|
-
export const db = drizzle({ client: sql });
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Edge & Serverless DB Expert
|
|
8
|
+
|
|
9
|
+
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<a name="english"></a>
|
|
14
|
+
## English
|
|
15
|
+
|
|
16
|
+
### Purpose & Overview
|
|
17
|
+
Best practices for building ultra-low-latency 2026/2027 applications powered by serverless and edge databases. Exploit Neon Serverless Postgres, Cloudflare D1, Turso, Upstash Serverless Redis & Vector. Implement zero-cold-start strategies and HTTP connection pooling.
|
|
18
|
+
|
|
19
|
+
### Key Capabilities
|
|
20
|
+
- **Neon & Cloudflare D1**: Serverless autoscaling Postgres with instant branching. Distributed edge SQLite.
|
|
21
|
+
- **Connection Pooling**: WebSocket/HTTP proxy pooling (Neon Serverless Driver, Upstash Redis over HTTP) for edge workers. Prevent TCP pool exhaustion.
|
|
22
|
+
- **Embedded Replicas**: Sync edge SQLite read-replicas with central cloud databases for sub-10ms queries.
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
import { neon } from '@neondatabase/serverless';
|
|
26
|
+
import { drizzle } from 'drizzle-orm/neon-http';
|
|
27
|
+
|
|
28
|
+
const sql = neon(process.env.DATABASE_URL!);
|
|
29
|
+
export const db = drizzle({ client: sql });
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Implementation Checklist
|
|
33
|
+
- [ ] Use HTTP/WebSocket drivers (e.g., `neon-http`) for querying databases from Edge Workers/Functions.
|
|
34
|
+
- [ ] Configure connection pooling (PgBouncer, Prisma Accelerate) for standard TCP connections to avoid exhausting database connection limits.
|
|
35
|
+
- [ ] Use read-replicas near the edge location for global deployments to minimize latency.
|
|
36
|
+
- [ ] Cache read-heavy queries at the edge using Upstash Redis or Cloudflare KV.
|
|
37
|
+
|
|
38
|
+
### Example: Upstash Redis Edge Caching
|
|
39
|
+
```typescript
|
|
40
|
+
import { Redis } from '@upstash/redis';
|
|
41
|
+
|
|
42
|
+
const redis = new Redis({
|
|
43
|
+
url: process.env.UPSTASH_REDIS_REST_URL!,
|
|
44
|
+
token: process.env.UPSTASH_REDIS_REST_TOKEN!,
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
export async function getCachedData(key: string) {
|
|
48
|
+
let data = await redis.get(key);
|
|
49
|
+
if (!data) {
|
|
50
|
+
data = await fetchFromDB();
|
|
51
|
+
await redis.set(key, data, { ex: 3600 }); // Cache for 1 hour
|
|
52
|
+
}
|
|
53
|
+
return data;
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Orchestration & Integration
|
|
58
|
+
- Integrates with: `database-orm-expert`, `js-backend-expert`, `cloud-hosting-expert`.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
<a name="bahasa-indonesia"></a>
|
|
63
|
+
## Bahasa Indonesia
|
|
64
|
+
|
|
65
|
+
### Deskripsi
|
|
66
|
+
Praktik terbaik membangun aplikasi latensi rendah 2026/2027 dengan database serverless dan edge. Manfaatkan Neon Serverless Postgres, Cloudflare D1, Turso, Upstash Serverless Redis & Vector. Implementasi strategi tanpa cold-start dan connection pooling HTTP.
|
|
67
|
+
|
|
68
|
+
### Fitur Utama
|
|
69
|
+
- **Neon & Cloudflare D1**: Serverless Postgres autoscaling dengan branching instan. Distributed edge SQLite.
|
|
70
|
+
- **Connection Pooling**: Proxy pooling HTTP/WebSocket untuk edge worker. Cegah kehabisan koneksi TCP.
|
|
71
|
+
- **Embedded Replicas**: Sinkronisasi read-replica SQLite di edge dengan database utama untuk query di bawah 10ms.
|
|
72
|
+
|
|
73
|
+
### Checklist Implementasi
|
|
74
|
+
- [ ] Gunakan driver HTTP/WebSocket (misal: `neon-http`) untuk mengakses database dari Edge Workers/Functions.
|
|
75
|
+
- [ ] Konfigurasi connection pooling (PgBouncer, Prisma Accelerate) pada koneksi TCP standar untuk mencegah batas koneksi habis.
|
|
76
|
+
- [ ] Gunakan read-replicas di dekat lokasi edge untuk deployment global guna meminimalkan latensi.
|
|
77
|
+
- [ ] Cache query berat di edge menggunakan Upstash Redis atau Cloudflare KV.
|
|
78
|
+
|
|
79
|
+
### Contoh: Upstash Redis Edge Caching
|
|
80
|
+
```typescript
|
|
81
|
+
import { Redis } from '@upstash/redis';
|
|
82
|
+
|
|
83
|
+
const redis = new Redis({
|
|
84
|
+
url: process.env.UPSTASH_REDIS_REST_URL!,
|
|
85
|
+
token: process.env.UPSTASH_REDIS_REST_TOKEN!,
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
export async function getCachedData(key: string) {
|
|
89
|
+
let data = await redis.get(key);
|
|
90
|
+
if (!data) {
|
|
91
|
+
data = await fetchFromDB();
|
|
92
|
+
await redis.set(key, data, { ex: 3600 }); // Cache 1 jam
|
|
93
|
+
}
|
|
94
|
+
return data;
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Integrasi Orkestrasi
|
|
99
|
+
- Terintegrasi dengan: `database-orm-expert`, `js-backend-expert`, `cloud-hosting-expert`.
|