Skip to content
cccskills
FreePublished on GitHub

solidjs-expert

Expert guide for SolidJS 2 and SolidStart — fine-grained reactivity, signals, createResource, and server-first rendering / Panduan ahli SolidJS 2 dan SolidStart — reaktivitas fine-grained, signals, createResource, dan rendering server-first.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md7.2 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

SolidJS & SolidStart Expert (2026 Edition)

English | Bahasa Indonesia


<a name="english"></a>

English

Description

Expert guide for SolidJS 2 and SolidStart, the reactive framework with zero Virtual DOM overhead. Covers fine-grained reactivity primitives (createSignal, createMemo, createEffect), reactive state trees (createStore), avoiding reactivity destruction (proper usage of mergeProps and splitProps), SolidStart server functions ("use server"), streaming SSR, and micro-benchmarked UI rendering patterns.

Trigger Conditions

  • Developing high-performance, real-time web applications where Virtual DOM diffing is a bottleneck.
  • Choosing SolidJS or SolidStart for low-latency dashboards, streaming financial terminals, or edge-rendered apps.
  • Migrating from React to SolidJS while maintaining clean reactive state boundaries.
  • Building reactive components with Tailwind CSS v4.

Core Architectural Rules: SolidJS vs React

  1. Components Run Exactly Once: A SolidJS component function is a setup function, not a render function. Do NOT write side-effects directly in the function body; place them in createEffect or onMount.
  2. Never Destructure Props: Destructuring const { name } = props strips reactive getters. Always use props.name, mergeProps(defaultProps, props), or splitProps(props, ['keys']).
  3. Control Flow Primitives: Always use <Show>, <For>, <Index>, and <Switch> instead of JavaScript ternary operators or array.map() to maximize DOM node reuse.

Production SolidStart Server Action & Store Pattern

// src/components/CartManager.tsx
import { createSignal, createResource, For, Show } from 'solid-js';
import { createStore, produce } from 'solid-js/store';
import { action, json } from '@solidjs/router';

interface CartItem {
  id: string;
  title: string;
  quantity: number;
  priceCents: number;
}

// Server Action executing strictly on the server
export const updateCartServerAction = action(async (formData: FormData) => {
  'use server';
  const itemId = formData.get('itemId') as string;
  const quantity = parseInt(formData.get('quantity') as string, 10);
  // Atomic database update via ORM...
  return json({ success: true, itemId, quantity });
});

export function CartManager() {
  const [store, setStore] = createStore<{ items: CartItem[]; promoCode: string }>({
    items: [
      { id: '1', title: 'Developer Pro License', quantity: 1, priceCents: 9900 }
    ],
    promoCode: ''
  });

  const totalCents = () => store.items.reduce((acc, i) => acc + i.priceCents * i.quantity, 0);

  const incrementItem = (id: string) => {
    setStore(
      'items',
      (item) => item.id === id,
      produce((item) => {
        item.quantity += 1;
      })
    );
  };

  return (
    <div class="rounded-xl border border-slate-200 bg-white p-6 shadow-sm">
      <h2 class="text-xl font-bold text-slate-900">Shopping Cart</h2>
      <div class="mt-4 divide-y divide-slate-100">
        <For each={store.items}>
          {(item) => (
            <div class="flex items-center justify-between py-3">
              <span class="font-medium text-slate-800">{item.title}</span>
              <div class="flex items-center gap-3">
                <span class="text-sm text-slate-500">Qty: {item.quantity}</span>
                <button
                  onClick={() => incrementItem(item.id)}
                  class="rounded bg-slate-100 px-2 py-1 text-xs font-semibold hover:bg-slate-200 transition"
                >
                  +
                </button>
              </div>
            </div>
          )}
        </For>
      </div>
      <div class="mt-4 border-t border-slate-100 pt-4 flex justify-between font-bold text-slate-900">
        <span>Total:</span>
        <span class="tabular-nums">${(totalCents() / 100).toFixed(2)}</span>
      </div>
    </div>
  );
}

Orchestration & Integration

  • performance-web-vitals: Leverages Solid's direct DOM manipulation for near-zero INP and top-tier Lighthouse scores.
  • tailwind-expert: Styles Solid components with Tailwind CSS v4 @theme design tokens.
  • state-management-expert: Explains fine-grained signal patterns compared to React hooks and Zustand.
  • typescript-expert: Provides type-safe store and props interfaces.

<a name="bahasa-indonesia"></a>

Bahasa Indonesia

Deskripsi

Panduan ahli untuk SolidJS 2 dan SolidStart, framework reaktif tanpa overhead Virtual DOM. Mencakup primitif reaktivitas fine-grained (createSignal, createMemo, createEffect), pohon state reaktif (createStore), pencegahan hilangnya reaktivitas (penggunaan mergeProps dan splitProps), fungsi server SolidStart ("use server"), streaming SSR, dan pola rendering antarmuka berkecepatan tinggi.

Kondisi Pemicu

  • Membangun aplikasi web dengan tuntutan performa ekstrem di mana proses rekonsiliasi Virtual DOM menjadi beban (bottleneck).
  • Memilih SolidJS atau SolidStart untuk dashboard analitik real-time atau terminal data streaming.
  • Migrasi kode dari React ke SolidJS dengan pemisahan batas reaktivitas yang benar.
  • Mengembangkan komponen dengan sistem desain Tailwind CSS v4.

3 Hukum Utama Reaktivitas SolidJS

  1. Fungsi Komponen Hanya Dijalankan Sekali: Berbeda dari React yang mengeksekusi ulang seluruh fungsi komponen saat state berubah, SolidJS hanya menjalankan fungsi komponen satu kali saat inisialisasi. Jangan taruh side-effect langsung di badan fungsi; gunakan createEffect atau onMount.
  2. Jangan Pernah Melakukan Destrukturisasi Props: Menulis const { nama } = props akan memutus getter reaktif. Selalu gunakan props.nama, mergeProps(defaultProps, props), atau splitProps.
  3. Gunakan Komponen Kontrol Bawaan: Gunakan <Show> dan <For> alih-alih && atau .map() agar DOM node dapat digunakan kembali secara optimal tanpa rekonsiliasi ulang.

Contoh Pelestarian Reaktivitas Props

// src/components/UserCard.tsx
import { mergeProps, splitProps } from 'solid-js';

interface CardProps {
  name: string;
  role?: string;
  class?: string;
}

export function UserCard(rawProps: CardProps) {
  // Gabungkan nilai default tanpa merusak reaktivitas
  const props = mergeProps({ role: 'Member' }, rawProps);
  
  // Pisahkan styling class dari data bisnis
  const [local, others] = splitProps(props, ['class']);

  return (
    <div class={`rounded-lg border p-4 ${local.class || ''}`} {...others}>
      <h3 class="font-bold">{props.name}</h3>
      <p class="text-sm text-slate-500">{props.role}</p>
    </div>
  );
}

Integrasi Orkestrasi

  • performance-web-vitals: Memaksimalkan manipulasi DOM langsung untuk mencapai responsivitas instan (<10ms).
  • tailwind-expert: Menata gaya komponen Solid dengan utilitas Tailwind CSS v4.
  • state-management-expert: Menjelaskan perbandingan arsitektur signal vs selector Zustand.
  • typescript-expert: Menjaga keamanan tipe pada Store dan Server Actions.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Expert guide for automated and manual Web Accessibility (a11y) testing — axe-core, Pa11y, Playwright a11y, screen reader testing, and WCAG 2.2 Level AA/AAA compliance / Panduan ahli pengujian aksesibilitas web.

The English summary is being prepared. Showing the original description.

roedyrustam/vibes-plug77Updated Oct 18, 2026

Expert guide for intelligent model cascading and routing — complexity-scored task routing from Flash/Haiku to Sonnet/Opus/Astra, dynamic escalation with quality gates, 40-60% token cost reduction while maintaining output quality / Panduan ahli untuk kaskade dan routing model cerdas — routing tugas berbasis skor kompleksitas dari Flash/Haiku ke Sonnet/Opus/Astra, eskalasi dinamis dengan gerbang kualitas, pengurangan biaya token 40-60% dengan kualitas output terjaga.

The English summary is being prepared. Showing the original description.

roedyrustam/vibes-plug77Updated Oct 18, 2026

Expert guide for Affective Computing, emotional AI, and real-time sentiment analysis through native multimodal tokens (voice intonation and facial micro-expressions) / Panduan ahli komputasi afektif, AI emosional, dan analisis sentimen real-time melalui token multimodal native.

The English summary is being prepared. Showing the original description.

roedyrustam/vibes-plug77Updated Oct 18, 2026

Expert guide for AI-assisted coding workflows — agentic code generation, multi-agent code swarms, self-healing CI/CD, automated PR review, spec-to-code pipelines, codebase knowledge graphs, and human-in-the-loop approval gates / Panduan ahli untuk workflow pengkodean berbasis AI — generasi kode agentic, code swarm multi-agen, CI/CD self-healing, review PR otomatis, pipeline spec-to-code, knowledge graph codebase, dan gate persetujuan human-in-the-loop.

The English summary is being prepared. Showing the original description.

roedyrustam/vibes-plug77Updated Oct 18, 2026

Expert guide for autonomous Machine-to-Machine (M2M) agent settlement, dual-rail fiat & stablecoin micro-clearing, dynamic budget envelopes, and cryptographic agent invoicing / Panduan ahli settlement otonom antar-agen (M2M), kliring mikro dual-rail fiat & stablecoin, pagu anggaran dinamis, dan penagihan agen kriptografis.

The English summary is being prepared. Showing the original description.

roedyrustam/vibes-plug77Updated Oct 18, 2026

Expert guide for long-term episodic memory integration (Mem0 v2, Letta/MemGPT, Zep v2), memory tier architecture, pgvector HNSW storage, and unified context management for autonomous AI agents / Panduan ahli untuk integrasi memori episodik jangka panjang (Mem0 v2, Letta/MemGPT, Zep v2), arsitektur tier memori, penyimpanan pgvector HNSW, dan manajemen konteks terpadu untuk agen AI otonom.

The English summary is being prepared. Showing the original description.

roedyrustam/vibes-plug77Updated Oct 18, 2026

See all skills by roedyrustam

Report a problem with this skill