vibes-plug 1.0.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.
Files changed (183) hide show
  1. package/.claude/rules/vibes-plug-core.md +32 -0
  2. package/.cursor/rules/vibes-plug-core.mdc +51 -0
  3. package/.cursorrules +42 -0
  4. package/AGENTS.md +96 -0
  5. package/BLUEPRINT.md +309 -125
  6. package/CHANGELOG.md +183 -1
  7. package/CLAUDE.md +70 -0
  8. package/LICENSE +1 -1
  9. package/README.md +641 -263
  10. package/index.js +19 -0
  11. package/package.json +61 -25
  12. package/plugin.json +24 -7
  13. package/scripts/generate_swarm_gif.py +295 -0
  14. package/scripts/install.js +201 -0
  15. package/skills/accessibility-testing-expert/SKILL.md +116 -0
  16. package/skills/ai-cost-token-optimizer/SKILL.md +82 -0
  17. package/skills/ai-evals-benchmark-expert/SKILL.md +188 -0
  18. package/skills/ai-llm-integration-expert/SKILL.md +147 -122
  19. package/skills/ai-media-generation-expert/SKILL.md +172 -0
  20. package/skills/ai-prompt-engineering-expert/SKILL.md +84 -0
  21. package/skills/angular-expert/SKILL.md +148 -0
  22. package/skills/api-design-expert/SKILL.md +316 -309
  23. package/skills/api-gateway-proxy-expert/SKILL.md +81 -0
  24. package/skills/app-analyzer-optimizer/SKILL.md +195 -188
  25. package/skills/apple-ecosystem-expert/SKILL.md +145 -0
  26. package/skills/{asisten_ramah → asisten-ramah}/SKILL.md +7 -1
  27. package/skills/astro-framework-expert/SKILL.md +200 -0
  28. package/skills/async-queue-temporal-expert/SKILL.md +240 -0
  29. package/skills/authentication-identity-expert/SKILL.md +279 -45
  30. package/skills/auto-doc-updater/SKILL.md +219 -203
  31. package/skills/autonomous-chaos-monkey/SKILL.md +63 -0
  32. package/skills/autonomous-red-teamer/SKILL.md +203 -0
  33. package/skills/autonomous-tdd-debugger/SKILL.md +71 -0
  34. package/skills/background-jobs-queue-expert/SKILL.md +235 -0
  35. package/skills/biome-linter-formatter-expert/SKILL.md +89 -0
  36. package/skills/blockchain-web3-expert/SKILL.md +115 -0
  37. package/skills/bootstrap-to-modern/SKILL.md +93 -86
  38. package/skills/brainstorming/SKILL.md +381 -353
  39. package/skills/browser-automation-expert/SKILL.md +222 -0
  40. package/skills/bun-runtime-expert/SKILL.md +7 -1
  41. package/skills/chatbot-messaging-expert/SKILL.md +114 -0
  42. package/skills/ci-cd-devops-architect/SKILL.md +81 -45
  43. package/skills/cloud-hosting-expert/SKILL.md +249 -243
  44. package/skills/coderabbit/SKILL.md +197 -191
  45. package/skills/compliance-gdpr-privacy-expert/SKILL.md +85 -0
  46. package/skills/cron-scheduler-expert/SKILL.md +304 -0
  47. package/skills/data-pipeline-etl-expert/SKILL.md +84 -0
  48. package/skills/data-telemetry-expert/SKILL.md +218 -212
  49. package/skills/data-visualization-expert/SKILL.md +154 -0
  50. package/skills/database-migration-versioning-expert/SKILL.md +90 -0
  51. package/skills/database-orm-expert/SKILL.md +303 -293
  52. package/skills/dependency-upgrade-migrator/SKILL.md +301 -0
  53. package/skills/design-system-architect/SKILL.md +278 -242
  54. package/skills/desktop-electron-expert/SKILL.md +128 -0
  55. package/skills/documentation-site-expert/SKILL.md +59 -0
  56. package/skills/doku-mcp-server/SKILL.md +257 -0
  57. package/skills/doku-payment-gateway/SKILL.md +233 -0
  58. package/skills/domain-driven-design-expert/SKILL.md +82 -0
  59. package/skills/e2e-testing-expert/SKILL.md +320 -314
  60. package/skills/ecommerce-expert/SKILL.md +87 -0
  61. package/skills/edge-serverless-db-expert/SKILL.md +99 -0
  62. package/skills/email-notification-expert/SKILL.md +368 -0
  63. package/skills/error-resilience-expert/SKILL.md +486 -0
  64. package/skills/event-driven-architect/SKILL.md +86 -80
  65. package/skills/feature-flag-analytics-expert/SKILL.md +66 -0
  66. package/skills/file-upload-media-expert/SKILL.md +437 -0
  67. package/skills/firebase-security-expert/SKILL.md +7 -1
  68. package/skills/form-validation-expert/SKILL.md +407 -0
  69. package/skills/fullstack-expert/SKILL.md +260 -201
  70. package/skills/fullstack-expert/references/api_design_guide.md +466 -466
  71. package/skills/fullstack-expert/references/multi_language_backend.md +528 -528
  72. package/skills/fullstack-expert/scripts/api_contract_validator.py +253 -253
  73. package/skills/fullstack-expert/scripts/architecture_analyzer.py +326 -326
  74. package/skills/gemini-agent-booster/SKILL.md +142 -104
  75. package/skills/geospatial-maps-expert/SKILL.md +80 -0
  76. package/skills/global-a11y-i18n-expert/SKILL.md +86 -80
  77. package/skills/glsl-shader-expert/SKILL.md +107 -0
  78. package/skills/go-programming-expert/SKILL.md +300 -294
  79. package/skills/graph-rag-knowledge-expert/SKILL.md +159 -0
  80. package/skills/graphql-apollo-expert/SKILL.md +114 -0
  81. package/skills/headless-cms-expert/SKILL.md +181 -0
  82. package/skills/hig/SKILL.md +193 -187
  83. package/skills/js-backend-expert/SKILL.md +218 -191
  84. package/skills/legacy-code-translator/SKILL.md +71 -0
  85. package/skills/local-slm-edge-ai-expert/SKILL.md +167 -0
  86. package/skills/logging-error-tracking-expert/SKILL.md +344 -0
  87. package/skills/mcp-client-orchestrator/SKILL.md +76 -0
  88. package/skills/mcp-server-architect/SKILL.md +226 -126
  89. package/skills/micro-frontend-architect/SKILL.md +112 -0
  90. package/skills/mobile-expo-expert/SKILL.md +191 -185
  91. package/skills/mobile-push-notification-expert/SKILL.md +71 -0
  92. package/skills/modern-css-native-expert/SKILL.md +189 -0
  93. package/skills/monday-design-aesthetic/SKILL.md +72 -66
  94. package/skills/monorepo-architect/SKILL.md +232 -226
  95. package/skills/mpa-orchestrator/SKILL.md +120 -101
  96. package/skills/multi-agent-orchestration/SKILL.md +173 -153
  97. package/skills/multiple-entry-points/SKILL.md +91 -55
  98. package/skills/mvc-expert/SKILL.md +237 -231
  99. package/skills/n8n-automation-expert/SKILL.md +89 -0
  100. package/skills/nextjs-app-router-expert/SKILL.md +148 -0
  101. package/skills/openapi-swagger-codegen-expert/SKILL.md +67 -0
  102. package/skills/payment-gateway-expert/SKILL.md +129 -45
  103. package/skills/pdf-document-generation-expert/SKILL.md +91 -0
  104. package/skills/performance-web-vitals/SKILL.md +337 -331
  105. package/skills/post-quantum-crypto-migrator/SKILL.md +57 -0
  106. package/skills/prd-architect/SKILL.md +206 -190
  107. package/skills/proactive-background-watcher/SKILL.md +68 -0
  108. package/skills/production-ready-hardener/PRODUCTION_READINESS_REPORT.md +67 -0
  109. package/skills/production-ready-hardener/SKILL.md +461 -468
  110. package/skills/production-ready-hardener/references/production_checklist.md +161 -161
  111. package/skills/production-ready-hardener/scripts/production_readiness_scanner.py +881 -875
  112. package/skills/project-context-mapper/SKILL.md +85 -0
  113. package/skills/pwa-offline-first-expert/SKILL.md +185 -0
  114. package/skills/python-programming-expert/SKILL.md +407 -270
  115. package/skills/rate-limit-abuse-prevention/SKILL.md +377 -0
  116. package/skills/realtime-collaboration-expert/SKILL.md +99 -45
  117. package/skills/rich-text-editor-expert/SKILL.md +177 -0
  118. package/skills/rust-programming-expert/SKILL.md +240 -234
  119. package/skills/saas-billing/SKILL.md +382 -376
  120. package/skills/saas-multi-tenant/SKILL.md +256 -236
  121. package/skills/saas-mvp-launcher/SKILL.md +30 -1
  122. package/skills/saas-transformer/SKILL.md +499 -445
  123. package/skills/saas-transformer/references/billing_integration_guide.md +401 -401
  124. package/skills/saas-transformer/references/feature_gating_patterns.md +137 -137
  125. package/skills/saas-transformer/references/saas_transformation_checklist.md +121 -121
  126. package/skills/saas-transformer/scripts/saas_transformation_scanner.py +39 -29
  127. package/skills/scalability-clean-code/SKILL.md +234 -228
  128. package/skills/search-engine-expert/SKILL.md +89 -0
  129. package/skills/secure-fuzz-testing/SKILL.md +7 -1
  130. package/skills/self-evolving-memory-graph/SKILL.md +91 -0
  131. package/skills/self-healing-cloud-orchestrator/SKILL.md +57 -0
  132. package/skills/senior-frontend/SKILL.md +85 -105
  133. package/skills/seo/SKILL.md +258 -224
  134. package/skills/session-context-loader/SKILL.md +83 -0
  135. package/skills/session-handoff-resume/SKILL.md +163 -157
  136. package/skills/{skill_baru → skill-baru}/SKILL.md +177 -146
  137. package/skills/solidjs-expert/SKILL.md +80 -0
  138. package/skills/spa-orchestrator/SKILL.md +306 -287
  139. package/skills/sse-websocket-streaming-expert/SKILL.md +93 -0
  140. package/skills/state-management-expert/SKILL.md +277 -271
  141. package/skills/supabase-migration/SKILL.md +47 -1
  142. package/skills/supabase-security-expert/SKILL.md +248 -242
  143. package/skills/svelte-sveltekit-expert/SKILL.md +91 -0
  144. package/skills/svg-animation-motion-expert/SKILL.md +115 -0
  145. package/skills/tailwind-expert/SKILL.md +139 -187
  146. package/skills/tanstack-query-expert/SKILL.md +204 -198
  147. package/skills/tauri-expert/SKILL.md +7 -1
  148. package/skills/token-saver/SKILL.md +118 -110
  149. package/skills/typescript-expert/SKILL.md +329 -278
  150. package/skills/ui-components-expert/SKILL.md +166 -63
  151. package/skills/ui-ux-pro-max/SKILL.md +221 -200
  152. package/skills/vector-db-rag-expert/SKILL.md +208 -0
  153. package/skills/vibe-code-gardener/SKILL.md +180 -172
  154. package/skills/visual-qa-vision-agent/SKILL.md +71 -0
  155. package/skills/voice-ai-realtime-agent/SKILL.md +202 -0
  156. package/skills/vue-frontend-expert/SKILL.md +132 -0
  157. package/skills/wasm-edge-computing-expert/SKILL.md +97 -0
  158. package/skills/web-3d-graphics-expert/SKILL.md +137 -0
  159. package/skills/web-game-engine-expert/SKILL.md +102 -0
  160. package/skills/web-scraper/SKILL.md +98 -146
  161. package/skills/website-design-cloner/SKILL.md +180 -0
  162. package/skills/webxr-ar-vr-expert/SKILL.md +123 -0
  163. package/skills/wordpress-headless-expert/SKILL.md +144 -0
  164. package/skills/zero-to-prod-orchestrator/SKILL.md +231 -180
  165. package/skills/zero-trust-secret-vault/SKILL.md +88 -0
  166. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  167. package/CONTRIBUTING.md +0 -199
  168. package/SECURITY.md +0 -21
  169. package/banner.png +0 -0
  170. package/skills/senior-fullstack/SKILL.md +0 -167
  171. package/skills/senior-fullstack/references/architecture_patterns.md +0 -160
  172. package/skills/senior-fullstack/references/development_workflows.md +0 -222
  173. package/skills/senior-fullstack/references/tech_stack_guide.md +0 -190
  174. package/skills/senior-fullstack/scripts/code_quality_analyzer.py +0 -114
  175. package/skills/senior-fullstack/scripts/fullstack_scaffolder.py +0 -114
  176. package/skills/senior-fullstack/scripts/project_scaffolder.py +0 -114
  177. package/skills/seo-aeo-landing-page-writer/SKILL.md +0 -97
  178. package/skills/seo-geo/SKILL.md +0 -188
  179. package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-310.pyc +0 -0
  180. package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-312.pyc +0 -0
  181. package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-310.pyc +0 -0
  182. package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-312.pyc +0 -0
  183. package/skills/ui_ux_expert/SKILL.md +0 -114
@@ -1,186 +1,192 @@
1
- ---
2
- name: mobile-expo-expert
3
- description: "Expert guide for React Native 0.76+ and Expo SDK 52+ development. Covers cross-platform mobile architecture, Expo Router v4, New Architecture, OTA updates, and native modules / Panduan ahli pengembangan React Native 0.76+ dan Expo SDK 52+ untuk aplikasi mobile."
1
+ ---
2
+ name: mobile-expo-expert
3
+ description: "Expert guide for React Native 0.79+ and Expo SDK 53+ development. Covers cross-platform mobile architecture, Expo Router v4, New Architecture, OTA updates, and native modules / Panduan ahli pengembangan React Native 0.79+ dan Expo SDK 53+ untuk aplikasi mobile."
4
4
  author: "Roedy Rustam"
5
- ---
6
-
7
- # Mobile Expert — React Native & Expo (SDK 53 / RN 0.79 Edition)
8
-
9
- [English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
10
-
11
- ---
12
-
13
- <a name="english"></a>
14
- ## English
15
-
16
- ### Description
17
- Expert guide for building production-grade cross-platform mobile applications using **React Native 0.79+** and **Expo SDK 53+**. Covers the New Architecture (stable), Expo Router v4, OTA updates, native modules, and modern state management patterns for iOS and Android.
18
-
19
- ### Trigger Conditions
20
- - Building a new iOS/Android cross-platform mobile app.
21
- - Using Expo SDK 53+ or React Native 0.79+ with the New Architecture.
22
- - Implementing file-based routing with **Expo Router v4**.
23
- - Setting up OTA (Over-the-Air) updates with EAS Update.
24
- - Writing native modules using **JSI** (JavaScript Interface) or **Expo Modules API**.
25
- - Integrating device features: camera, biometrics, notifications, location.
26
-
27
- ### What's New in 2026
28
-
29
- #### React Native 0.79 — New Architecture Stable
30
- The **New Architecture** (Fabric + JSI + TurboModules) is now **fully stable** and the default for all new Expo SDK 53 projects:
31
- - **Fabric**: New rendering engine — synchronous rendering, better animations.
32
- - **JSI (JavaScript Interface)**: Direct C++ bridge no more async serialization for native calls.
33
- - **TurboModules**: Lazy-loaded native modules significantly faster startup time.
34
- - **Concurrent React**: Full support for `useTransition`, `useDeferredValue`, and Suspense on mobile.
35
-
36
- #### Expo SDK 53Key Updates
37
- - **Expo Router v4**: File-based routing with typed routes, API routes (Expo functions), and universal links.
38
- - **Expo Camera v15**: Unified camera API for iOS and Android.
39
- - **Expo SQLite v15**: Full SQLite with WAL mode and `useSQLiteContext` hook.
40
- - **Expo Modules API v2**: Easier native module authoring with Swift/Kotlin.
41
- - **EAS Build**: Faster builds with M-series Mac runners.
42
-
43
- ### Core Architecture Patterns
44
-
45
- #### 1. Project Setup (Expo SDK 53 + New Arch)
46
- ```bash
47
- npx create-expo-app@latest MyApp --template tabs
48
- cd MyApp
49
- # New Architecture is enabled by default in SDK 53
50
- ```
51
-
52
- #### 2. Expo Router v4 File-Based Routing
53
- ```
54
- app/
55
- _layout.tsx # Root layout (navigation + providers)
56
- (tabs)/
57
- _layout.tsx # Tab navigator
58
- index.tsx # Home tab
59
- profile.tsx # Profile tab
60
- (auth)/
61
- login.tsx # Login screen
62
- register.tsx
63
- modal.tsx # Modal screen
64
- ```
65
-
66
- Use **typed routes** for compile-time safety:
67
- ```typescript
68
- import { Link, useRouter } from 'expo-router';
69
-
70
- // Typed navigation — TypeScript errors on invalid paths
71
- <Link href="/profile">Profile</Link>
72
-
73
- const router = useRouter();
74
- router.push('/modal');
75
- ```
76
-
77
- #### 3. API Routes (Expo Functions)
78
- Expo Router v4 supports API routes for serverless backend logic:
79
- ```typescript
80
- // app/api/user+api.ts
81
- export async function GET(request: Request) {
82
- const user = await db.user.findFirst();
83
- return Response.json(user);
84
- }
85
- ```
86
-
87
- #### 4. State Management
88
- - **TanStack Query v5**: Primary choice for server state (`useQuery`, `useMutation`).
89
- - **Zustand**: Lightweight client state management (replace Context for complex state).
90
- - **MMKV**: Ultra-fast synchronous storage (replace AsyncStorage).
91
- - **Expo SQLite + Drizzle**: Local-first database with full SQL support.
92
-
93
- #### 5. Navigation Patterns
94
- ```typescript
95
- // Deep linking & Universal Links configuration
96
- // app.json
97
- {
98
- "expo": {
99
- "scheme": "myapp",
100
- "ios": { "associatedDomains": ["applinks:myapp.com"] },
101
- "android": { "intentFilters": [{ "action": "VIEW", "data": [{ "scheme": "https", "host": "myapp.com" }] }] }
102
- }
103
- }
104
- ```
105
-
106
- #### 6. Native Modules — Expo Modules API v2
107
- ```typescript
108
- // modules/my-sensor/src/MyModule.ts
109
- import { requireNativeModule } from 'expo-modules-core';
110
- const MyModule = requireNativeModule('MyModule');
111
-
112
- export function readSensor(): Promise<number> {
113
- return MyModule.readSensor();
114
- }
115
- ```
116
-
117
- #### 7. OTA Updates with EAS Update
118
- ```bash
119
- # Push an instant OTA update (no App Store review)
120
- eas update --branch production --message "Fix critical bug"
121
- ```
122
- Use **channels** to target specific user groups (production, staging, beta).
123
-
124
- #### 8. Performance Best Practices
125
- - Use **FlashList** (Shopify) instead of `FlatList` for large lists.
126
- - Use **react-native-reanimated v3** for 60/120fps animations that run on the UI thread.
127
- - Use **react-native-gesture-handler** for gesture recognition on the native thread.
128
- - Enable **Hermes** engine (default in SDK 53) for faster startup and reduced memory.
129
-
130
- ---
131
-
132
- <a name="bahasa-indonesia"></a>
133
- ## Bahasa Indonesia
134
-
135
- ### Deskripsi
136
- Panduan ahli untuk membangun aplikasi mobile cross-platform tingkat produksi menggunakan **React Native 0.79+** dan **Expo SDK 53+**. Mencakup New Architecture (stabil), Expo Router v4, OTA updates, native modules, dan pola state management modern untuk iOS dan Android.
137
-
138
- ### Kondisi Pemicu
139
- - Membangun aplikasi mobile iOS/Android cross-platform baru.
140
- - Menggunakan Expo SDK 53+ atau React Native 0.79+ dengan New Architecture.
141
- - Mengimplementasikan routing berbasis file dengan **Expo Router v4**.
142
- - Menyiapkan OTA (Over-the-Air) updates dengan EAS Update.
143
- - Menulis native modules menggunakan JSI atau Expo Modules API v2.
144
- - Mengintegrasikan fitur perangkat: kamera, biometrik, notifikasi, lokasi.
145
-
146
- ### Yang Baru di 2026
147
-
148
- #### React Native 0.79 New Architecture Stabil
149
- **New Architecture** (Fabric + JSI + TurboModules) kini **sepenuhnya stabil** dan menjadi default untuk semua proyek baru Expo SDK 53:
150
- - **Fabric**: Engine rendering baru rendering sinkron, animasi lebih baik.
151
- - **JSI**: Bridge C++ langsung — tidak ada lagi serialisasi async untuk panggilan native.
152
- - **TurboModules**: Modul native lazy-loaded — startup jauh lebih cepat.
153
- - **Concurrent React**: Dukungan penuh untuk `useTransition`, `useDeferredValue`, dan Suspense di mobile.
154
-
155
- #### Expo SDK 53 — Pembaruan Utama
156
- - **Expo Router v4**: Routing berbasis file dengan typed routes, API routes, dan universal links.
157
- - **Expo Camera v15**: API kamera terpadu untuk iOS dan Android.
158
- - **Expo SQLite v15**: SQLite lengkap dengan mode WAL dan hook `useSQLiteContext`.
159
- - **Expo Modules API v2**: Pembuatan modul native yang lebih mudah dengan Swift/Kotlin.
160
- - **EAS Build**: Build lebih cepat dengan runner Mac M-series.
161
-
162
- ### Pola Arsitektur Inti
163
-
164
- #### 1. Routing Berbasis File (Expo Router v4)
165
- Expo Router menggunakan konvensi direktori `app/` untuk mendefinisikan semua layar dan navigasi. Gunakan **typed routes** untuk keamanan type-safe di waktu kompilasi.
166
-
167
- #### 2. API Routes (Expo Functions)
168
- Expo Router v4 mendukung API routes untuk logika backend serverless langsung di dalam proyek.
169
-
170
- #### 3. State Management
171
- - **TanStack Query v5**: Pilihan utama untuk server state.
172
- - **Zustand**: State klien yang ringan.
173
- - **MMKV**: Penyimpanan sinkron ultra-cepat (pengganti AsyncStorage).
174
- - **Expo SQLite + Drizzle**: Database lokal-first dengan dukungan SQL penuh.
175
-
176
- #### 4. Native Modules — Expo Modules API v2
177
- Gunakan Expo Modules API untuk membuat modul native kustom dengan Swift (iOS) dan Kotlin (Android) dengan boilerplate minimal.
178
-
179
- #### 5. OTA Updates dengan EAS Update
180
- Dorong pembaruan instan ke pengguna tanpa melalui review App Store. Gunakan channel (`production`, `staging`, `beta`) untuk menargetkan kelompok pengguna tertentu.
181
-
182
- #### 6. Praktik Terbaik Performa
183
- - **FlashList**: Pengganti FlatList yang jauh lebih cepat untuk daftar panjang.
184
- - **react-native-reanimated v3**: Animasi 60/120fps yang berjalan di UI thread.
185
- - **react-native-gesture-handler**: Pengenalan gesture di native thread.
186
- - **Hermes Engine**: Default di SDK 53 startup lebih cepat, memori lebih sedikit.
5
+ ---
6
+
7
+ # Mobile Expert — React Native & Expo (SDK 53 / RN 0.79 Edition)
8
+
9
+ [English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
10
+
11
+ ---
12
+
13
+ <a name="english"></a>
14
+ ## English
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
+
19
+ ### Description
20
+ Expert guide for building production-grade cross-platform mobile applications using **React Native 0.79+** and **Expo SDK 53+**. Covers the New Architecture (stable), Expo Router v4, OTA updates, native modules, and modern state management patterns for iOS and Android.
21
+
22
+ ### Trigger Conditions
23
+ - Building a new iOS/Android cross-platform mobile app.
24
+ - Using Expo SDK 53+ or React Native 0.79+ with the New Architecture.
25
+ - Implementing file-based routing with **Expo Router v4**.
26
+ - Setting up OTA (Over-the-Air) updates with EAS Update.
27
+ - Writing native modules using **JSI** (JavaScript Interface) or **Expo Modules API**.
28
+ - Integrating device features: camera, biometrics, notifications, location.
29
+
30
+ ### What's New in 2026
31
+
32
+ #### React Native 0.79New Architecture Stable
33
+ The **New Architecture** (Fabric + JSI + TurboModules) is now **fully stable** and the default for all new Expo SDK 53 projects:
34
+ - **Fabric**: New rendering engine synchronous rendering, better animations.
35
+ - **JSI (JavaScript Interface)**: Direct C++ bridge — no more async serialization for native calls.
36
+ - **TurboModules**: Lazy-loaded native modules significantly faster startup time.
37
+ - **Concurrent React**: Full support for `useTransition`, `useDeferredValue`, and Suspense on mobile.
38
+
39
+ #### Expo SDK 53 Key Updates
40
+ - **Expo Router v4**: File-based routing with typed routes, API routes (Expo functions), and universal links.
41
+ - **Expo Camera v15**: Unified camera API for iOS and Android.
42
+ - **Expo SQLite v15**: Full SQLite with WAL mode and `useSQLiteContext` hook.
43
+ - **Expo Modules API v2**: Easier native module authoring with Swift/Kotlin.
44
+ - **EAS Build**: Faster builds with M-series Mac runners.
45
+
46
+ ### Core Architecture Patterns
47
+
48
+ #### 1. Project Setup (Expo SDK 53 + New Arch)
49
+ ```bash
50
+ npx create-expo-app@latest MyApp --template tabs
51
+ cd MyApp
52
+ # New Architecture is enabled by default in SDK 53
53
+ ```
54
+
55
+ #### 2. Expo Router v4 File-Based Routing
56
+ ```
57
+ app/
58
+ _layout.tsx # Root layout (navigation + providers)
59
+ (tabs)/
60
+ _layout.tsx # Tab navigator
61
+ index.tsx # Home tab
62
+ profile.tsx # Profile tab
63
+ (auth)/
64
+ login.tsx # Login screen
65
+ register.tsx
66
+ modal.tsx # Modal screen
67
+ ```
68
+
69
+ Use **typed routes** for compile-time safety:
70
+ ```typescript
71
+ import { Link, useRouter } from 'expo-router';
72
+
73
+ // Typed navigation — TypeScript errors on invalid paths
74
+ <Link href="/profile">Profile</Link>
75
+
76
+ const router = useRouter();
77
+ router.push('/modal');
78
+ ```
79
+
80
+ #### 3. API Routes (Expo Functions)
81
+ Expo Router v4 supports API routes for serverless backend logic:
82
+ ```typescript
83
+ // app/api/user+api.ts
84
+ export async function GET(request: Request) {
85
+ const user = await db.user.findFirst();
86
+ return Response.json(user);
87
+ }
88
+ ```
89
+
90
+ #### 4. State Management
91
+ - **TanStack Query v5**: Primary choice for server state (`useQuery`, `useMutation`).
92
+ - **Zustand**: Lightweight client state management (replace Context for complex state).
93
+ - **MMKV**: Ultra-fast synchronous storage (replace AsyncStorage).
94
+ - **Expo SQLite + Drizzle**: Local-first database with full SQL support.
95
+
96
+ #### 5. Navigation Patterns
97
+ ```typescript
98
+ // Deep linking & Universal Links configuration
99
+ // app.json
100
+ {
101
+ "expo": {
102
+ "scheme": "myapp",
103
+ "ios": { "associatedDomains": ["applinks:myapp.com"] },
104
+ "android": { "intentFilters": [{ "action": "VIEW", "data": [{ "scheme": "https", "host": "myapp.com" }] }] }
105
+ }
106
+ }
107
+ ```
108
+
109
+ #### 6. Native Modules Expo Modules API v2
110
+ ```typescript
111
+ // modules/my-sensor/src/MyModule.ts
112
+ import { requireNativeModule } from 'expo-modules-core';
113
+ const MyModule = requireNativeModule('MyModule');
114
+
115
+ export function readSensor(): Promise<number> {
116
+ return MyModule.readSensor();
117
+ }
118
+ ```
119
+
120
+ #### 7. OTA Updates with EAS Update
121
+ ```bash
122
+ # Push an instant OTA update (no App Store review)
123
+ eas update --branch production --message "Fix critical bug"
124
+ ```
125
+ Use **channels** to target specific user groups (production, staging, beta).
126
+
127
+ #### 8. Performance Best Practices
128
+ - Use **FlashList** (Shopify) instead of `FlatList` for large lists.
129
+ - Use **react-native-reanimated v3** for 60/120fps animations that run on the UI thread.
130
+ - Use **react-native-gesture-handler** for gesture recognition on the native thread.
131
+ - Enable **Hermes** engine (default in SDK 53) for faster startup and reduced memory.
132
+
133
+ ---
134
+
135
+ <a name="bahasa-indonesia"></a>
136
+ ## Bahasa Indonesia
137
+
138
+ ### Integrasi Orkestrasi
139
+ Terhubung dan mengorkestrasi skill domain yang relevan seperti `brainstorming`, `zero-to-prod-orchestrator`, dan `project-context-mapper` untuk memastikan eksekusi yang kohesif.
140
+
141
+ ### Deskripsi
142
+ Panduan ahli untuk membangun aplikasi mobile cross-platform tingkat produksi menggunakan **React Native 0.79+** dan **Expo SDK 53+**. Mencakup New Architecture (stabil), Expo Router v4, OTA updates, native modules, dan pola state management modern untuk iOS dan Android.
143
+
144
+ ### Kondisi Pemicu
145
+ - Membangun aplikasi mobile iOS/Android cross-platform baru.
146
+ - Menggunakan Expo SDK 53+ atau React Native 0.79+ dengan New Architecture.
147
+ - Mengimplementasikan routing berbasis file dengan **Expo Router v4**.
148
+ - Menyiapkan OTA (Over-the-Air) updates dengan EAS Update.
149
+ - Menulis native modules menggunakan JSI atau Expo Modules API v2.
150
+ - Mengintegrasikan fitur perangkat: kamera, biometrik, notifikasi, lokasi.
151
+
152
+ ### Yang Baru di 2026
153
+
154
+ #### React Native 0.79 — New Architecture Stabil
155
+ **New Architecture** (Fabric + JSI + TurboModules) kini **sepenuhnya stabil** dan menjadi default untuk semua proyek baru Expo SDK 53:
156
+ - **Fabric**: Engine rendering baru rendering sinkron, animasi lebih baik.
157
+ - **JSI**: Bridge C++ langsung tidak ada lagi serialisasi async untuk panggilan native.
158
+ - **TurboModules**: Modul native lazy-loaded startup jauh lebih cepat.
159
+ - **Concurrent React**: Dukungan penuh untuk `useTransition`, `useDeferredValue`, dan Suspense di mobile.
160
+
161
+ #### Expo SDK 53 — Pembaruan Utama
162
+ - **Expo Router v4**: Routing berbasis file dengan typed routes, API routes, dan universal links.
163
+ - **Expo Camera v15**: API kamera terpadu untuk iOS dan Android.
164
+ - **Expo SQLite v15**: SQLite lengkap dengan mode WAL dan hook `useSQLiteContext`.
165
+ - **Expo Modules API v2**: Pembuatan modul native yang lebih mudah dengan Swift/Kotlin.
166
+ - **EAS Build**: Build lebih cepat dengan runner Mac M-series.
167
+
168
+ ### Pola Arsitektur Inti
169
+
170
+ #### 1. Routing Berbasis File (Expo Router v4)
171
+ Expo Router menggunakan konvensi direktori `app/` untuk mendefinisikan semua layar dan navigasi. Gunakan **typed routes** untuk keamanan type-safe di waktu kompilasi.
172
+
173
+ #### 2. API Routes (Expo Functions)
174
+ Expo Router v4 mendukung API routes untuk logika backend serverless langsung di dalam proyek.
175
+
176
+ #### 3. State Management
177
+ - **TanStack Query v5**: Pilihan utama untuk server state.
178
+ - **Zustand**: State klien yang ringan.
179
+ - **MMKV**: Penyimpanan sinkron ultra-cepat (pengganti AsyncStorage).
180
+ - **Expo SQLite + Drizzle**: Database lokal-first dengan dukungan SQL penuh.
181
+
182
+ #### 4. Native Modules — Expo Modules API v2
183
+ Gunakan Expo Modules API untuk membuat modul native kustom dengan Swift (iOS) dan Kotlin (Android) dengan boilerplate minimal.
184
+
185
+ #### 5. OTA Updates dengan EAS Update
186
+ Dorong pembaruan instan ke pengguna tanpa melalui review App Store. Gunakan channel (`production`, `staging`, `beta`) untuk menargetkan kelompok pengguna tertentu.
187
+
188
+ #### 6. Praktik Terbaik Performa
189
+ - **FlashList**: Pengganti FlatList yang jauh lebih cepat untuk daftar panjang.
190
+ - **react-native-reanimated v3**: Animasi 60/120fps yang berjalan di UI thread.
191
+ - **react-native-gesture-handler**: Pengenalan gesture di native thread.
192
+ - **Hermes Engine**: Default di SDK 53 — startup lebih cepat, memori lebih sedikit.
@@ -0,0 +1,71 @@
1
+ ---
2
+ name: mobile-push-notification-expert
3
+ description: "Expert guide for Cross-Platform Push Notifications (Expo Push, FCM, APNs, Web Push), iOS Live Activities, and background payload handling / Panduan ahli notifikasi push mobile, FCM, APNs, dan Live Activities."
4
+ author: "Roedy Rustam"
5
+ ---
6
+
7
+ # Mobile Push Notification & Live Activities Expert
8
+
9
+ [English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
10
+
11
+ ---
12
+
13
+ <a name="english"></a>
14
+ ## English
15
+
16
+ ### Purpose & Overview
17
+ Comprehensive guide for configuring cross-platform push notifications (Expo Push API, Firebase Cloud Messaging FCM, Apple APNs, Web Push API), iOS Live Activities / ActivityKit, background payload handlers, deep-linking routing, and push token lifecycle management.
18
+
19
+ ### Key Capabilities
20
+ - **Expo & FCM Push**: Sending batched push notifications with rich media, actions, and custom data payloads.
21
+ - **iOS Live Activities**: Real-time status updates on iOS Dynamic Island and Lock Screen.
22
+ - **Deep Linking**: Routing push notification taps directly to targeted screens within Expo Router / React Native.
23
+
24
+ ```typescript
25
+ import * as Notifications from 'expo-notifications';
26
+
27
+ export async function registerForPushNotificationsAsync() {
28
+ const { status: existingStatus } = await Notifications.getPermissionsAsync();
29
+ let finalStatus = existingStatus;
30
+ if (existingStatus !== 'granted') {
31
+ const { status } = await Notifications.requestPermissionsAsync();
32
+ finalStatus = status;
33
+ }
34
+ if (finalStatus !== 'granted') return null;
35
+ const token = (await Notifications.getExpoPushTokenAsync()).data;
36
+ return token;
37
+ }
38
+ ```
39
+
40
+ ### Implementation Checklist
41
+ - [ ] Configure Apple Developer Account (APNs Key) and Google Firebase (FCM Service Account).
42
+ - [ ] Request push notification permissions explicitly from the user after they understand the value proposition.
43
+ - [ ] Save the device's Push Token to the database, associated with the user's ID.
44
+ - [ ] Handle token refresh events when the user uninstalls/reinstalls the app or changes devices.
45
+ - [ ] Set up background event handlers to process incoming messages when the app is killed.
46
+
47
+ ## Orchestration & Integration
48
+ - Integrates with: `mobile-expo-expert`, `event-driven-architect`, `database-orm-expert`.
49
+
50
+ ---
51
+
52
+ <a name="bahasa-indonesia"></a>
53
+ ## Bahasa Indonesia
54
+
55
+ ### Deskripsi
56
+ Panduan komprehensif untuk konfigurasi push notification lintas platform (Expo Push, FCM, APNs, Web Push), iOS Live Activities / ActivityKit, penanganan payload background, routing deep-linking, dan manajemen siklus token push.
57
+
58
+ ### Fitur Utama
59
+ - **Expo & FCM Push**: Pengiriman push notification masal dengan media kaya, tombol aksi, dan payload kustom.
60
+ - **iOS Live Activities**: Update status real-time di Dynamic Island dan Lock Screen iOS.
61
+ - **Deep Linking**: Mengarahkan ketukan notifikasi secara langsung ke layar target di Expo Router / React Native.
62
+
63
+ ### Checklist Implementasi
64
+ - [ ] Konfigurasi Akun Developer Apple (Kunci APNs) dan Google Firebase (Service Account FCM).
65
+ - [ ] Minta izin notifikasi push secara eksplisit dari pengguna setelah mereka memahami nilai gunanya.
66
+ - [ ] Simpan Push Token perangkat ke database, yang terkait dengan ID pengguna.
67
+ - [ ] Tangani event penyegaran token saat pengguna menghapus/menginstal ulang aplikasi atau mengganti perangkat.
68
+ - [ ] Siapkan handler event background untuk memproses pesan masuk saat aplikasi ditutup (killed).
69
+
70
+ ## Integrasi Orkestrasi
71
+ - Terintegrasi dengan: `mobile-expo-expert`, `event-driven-architect`, `database-orm-expert`.
@@ -0,0 +1,189 @@
1
+ ---
2
+ name: modern-css-native-expert
3
+ description: "Expert guide for cutting-edge Native CSS (2026 Standard) — CSS Anchor Positioning, @starting-style, View Transitions Level 2, Container Queries, and :has() / Panduan ahli fitur CSS native modern 2026."
4
+ author: "Roedy Rustam"
5
+ ---
6
+
7
+ # Modern Native CSS Expert (2026 Standard & Primitives)
8
+
9
+ [English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
10
+
11
+ ---
12
+
13
+ <a name="english"></a>
14
+ ## English
15
+
16
+ ### Purpose & Overview
17
+ Production-grade engineering guide for modern **Native CSS features (2026 Edition)** that replace cumbersome JavaScript libraries with pure browser-native primitives. Covers the **CSS Anchor Positioning API** for tooltips/popovers, **`@starting-style`** for smooth entry/exit animations on top-layer elements (`<dialog>`, `popover`), **View Transitions API Level 2**, **Container Queries (`@container`)**, and the **`:has()`** relational selector.
18
+
19
+ ### Key Capabilities
20
+ 1. **CSS Anchor Positioning**: Eliminating Floating UI / Popper.js dependencies. Tether tooltips, menus, and popovers to trigger elements natively with auto-flip fallbacks (`position-try-fallbacks`).
21
+ 2. **Smooth Top-Layer Transitions**: Animating `<dialog>` and `[popover]` elements from `display: none` to visible with `@starting-style` and `transition-behavior: allow-discrete`.
22
+ 3. **Container Queries (`@container`)**: Component-level responsive design based on parent container dimensions rather than viewport width.
23
+ 4. **Relational `:has()` Selector**: Styling parent containers or sibling trees based on nested child states without React/JS state overhead.
24
+ 5. **Native CSS Nesting & `@layer`**: Structuring clean, zero-build styles with cascade priority layers.
25
+
26
+ ---
27
+
28
+ ### Production Implementation Recipes
29
+
30
+ #### Recipe 1: Pure Native Anchor Positioning for Tooltips & Dropdowns (No JS)
31
+ ```css
32
+ /* Define the anchor trigger button */
33
+ .anchor-trigger {
34
+ anchor-name: --my-dropdown-anchor;
35
+ }
36
+
37
+ /* Tether the popover menu to the anchor trigger */
38
+ .dropdown-menu {
39
+ position: fixed;
40
+ position-anchor: --my-dropdown-anchor;
41
+
42
+ /* Place below the anchor by default */
43
+ top: anchor(bottom);
44
+ left: anchor(left);
45
+ margin-top: 8px;
46
+
47
+ /* Automatic flip to top if screen boundary is reached */
48
+ position-try-fallbacks: flip-block;
49
+ }
50
+ ```
51
+
52
+ #### Recipe 2: Smooth `<dialog>` Entry/Exit Animation with `@starting-style`
53
+ ```css
54
+ /* Dialog element with discrete transition support */
55
+ dialog {
56
+ opacity: 0;
57
+ transform: scale(0.95) translateY(10px);
58
+ transition: opacity 0.25s ease-out, transform 0.25s ease-out, display 0.25s allow-discrete;
59
+ }
60
+
61
+ /* Open state */
62
+ dialog[open] {
63
+ opacity: 1;
64
+ transform: scale(1) translateY(0);
65
+ }
66
+
67
+ /* Starting style when transitioning from display: none to open */
68
+ @starting-style {
69
+ dialog[open] {
70
+ opacity: 0;
71
+ transform: scale(0.95) translateY(10px);
72
+ }
73
+ }
74
+
75
+ /* Backdrop smooth fade */
76
+ dialog::backdrop {
77
+ background-color: rgb(0 0 0 / 0%);
78
+ transition: background-color 0.25s ease-out, display 0.25s allow-discrete;
79
+ }
80
+
81
+ dialog[open]::backdrop {
82
+ background-color: rgb(0 0 0 / 50%);
83
+ }
84
+
85
+ @starting-style {
86
+ dialog[open]::backdrop {
87
+ background-color: rgb(0 0 0 / 0%);
88
+ }
89
+ }
90
+ ```
91
+
92
+ ---
93
+
94
+ ### Implementation Checklist
95
+ - [ ] Replace JS positioning libraries (Popper, Floating UI) with native `anchor-name` and `position-anchor`.
96
+ - [ ] Use `@starting-style` and `transition-behavior: allow-discrete` for animating modals and popovers without JavaScript timers.
97
+ - [ ] Use `@container` on modular components to allow seamless reuse across sidebars, grids, and modals.
98
+ - [ ] Organize design tokens and reset styles into `@layer` (e.g. `@layer base, components, utilities;`).
99
+
100
+ ## Orchestration & Integration
101
+ - Integrates with: `design-system-architect`, `ui-components-expert`, `tailwind-expert`, `senior-frontend`.
102
+
103
+ ---
104
+
105
+ <a name="bahasa-indonesia"></a>
106
+ ## Bahasa Indonesia
107
+
108
+ ### Tujuan & Gambaran Umum
109
+ Panduan rekayasa tingkat produksi untuk memanfaatkan **Fitur CSS Native Modern (Standar 2026)** yang menggantikan pustaka JavaScript berukuran besar dengan fitur asli browser. Mencakup **CSS Anchor Positioning API** untuk tooltip dan popover, **`@starting-style`** untuk animasi masuk dan keluar yang mulus pada elemen *top-layer* (`<dialog>`, `popover`), **View Transitions API Level 2**, **Container Queries (`@container`)**, dan selektor relasional **`:has()`**.
110
+
111
+ ### Kemampuan Utama
112
+ 1. **CSS Anchor Positioning**: Menghapus ketergantungan pada pustaka seperti Floating UI atau Popper.js. Mengikat tooltip, menu, dan popover ke tombol pemicu secara native dengan pembalikan posisi otomatis (`position-try-fallbacks`).
113
+ 2. **Animasi Mulus Top-Layer**: Menganimasikan dialog dari status `display: none` ke tampil menggunakan `@starting-style` dan `transition-behavior: allow-discrete`.
114
+ 3. **Container Queries (`@container`)**: Desain responsif berbasis ukuran kontainer induk, bukan lebar layar viewport.
115
+ 4. **Selektor Relasional `:has()`**: Menata gaya elemen induk berdasarkan status elemen anak di dalamnya tanpa membutuhkan *state* JavaScript.
116
+ 5. **Nesting Native & `@layer`**: Mengatur hierarki gaya CSS tanpa alat build dan mengontrol urutan spesifisitas secara terstruktur.
117
+
118
+ ---
119
+
120
+ ### Resep Implementasi Produksi
121
+
122
+ #### Resep 1: Anchor Positioning Murni untuk Menu Dropdown (Tanpa JavaScript)
123
+ ```css
124
+ /* Definisikan tombol pemicu sebagai jangkar (anchor) */
125
+ .tombol-pemicu {
126
+ anchor-name: --jangkar-menu;
127
+ }
128
+
129
+ /* Hubungkan menu popover ke tombol pemicu */
130
+ .menu-dropdown {
131
+ position: fixed;
132
+ position-anchor: --jangkar-menu;
133
+
134
+ /* Posisikan di bawah tombol pemicu */
135
+ top: anchor(bottom);
136
+ left: anchor(left);
137
+ margin-top: 8px;
138
+
139
+ /* Balik posisi ke atas jika terpotong batas layar */
140
+ position-try-fallbacks: flip-block;
141
+ }
142
+ ```
143
+
144
+ #### Resep 2: Animasi Modal `<dialog>` dengan `@starting-style`
145
+ ```css
146
+ dialog {
147
+ opacity: 0;
148
+ transform: scale(0.95) translateY(10px);
149
+ transition: opacity 0.25s ease-out, transform 0.25s ease-out, display 0.25s allow-discrete;
150
+ }
151
+
152
+ dialog[open] {
153
+ opacity: 1;
154
+ transform: scale(1) translateY(0);
155
+ }
156
+
157
+ @starting-style {
158
+ dialog[open] {
159
+ opacity: 0;
160
+ transform: scale(0.95) translateY(10px);
161
+ }
162
+ }
163
+
164
+ dialog::backdrop {
165
+ background-color: rgb(0 0 0 / 0%);
166
+ transition: background-color 0.25s ease-out, display 0.25s allow-discrete;
167
+ }
168
+
169
+ dialog[open]::backdrop {
170
+ background-color: rgb(0 0 0 / 50%);
171
+ }
172
+
173
+ @starting-style {
174
+ dialog[open]::backdrop {
175
+ background-color: rgb(0 0 0 / 0%);
176
+ }
177
+ }
178
+ ```
179
+
180
+ ---
181
+
182
+ ### Checklist Implementasi
183
+ - [ ] Ganti library positioning pihak ketiga dengan CSS `anchor-name` dan `position-anchor`.
184
+ - [ ] Gunakan `@starting-style` dan `transition-behavior: allow-discrete` untuk animasi modal tanpa jeda JavaScript.
185
+ - [ ] Gunakan `@container` pada komponen reusable agar adaptif di semua layout.
186
+ - [ ] Tata arsitektur CSS menggunakan `@layer base, components, utilities;`.
187
+
188
+ ## Integrasi Orkestrasi
189
+ - Terintegrasi dengan: `design-system-architect`, `ui-components-expert`, `tailwind-expert`, `senior-frontend`.