Public Wiki35,067View on GitHub
Want solidjs/solid knowledge in your AI?

Express.js

This is the SolidJS framework monorepo — a fine-grained reactive JavaScript UI framework that compiles JSX into direct DOM manipulations without a virtual DOM. It includes the core reactive system (signals, effects, memos), a component model with control flow primitives (Show, For, Switch, Suspense), server-side rendering support (string, streaming, and static generation), a store system with proxy-based nested reactivity, and adapter packages for Web Components (solid-element) and custom renderers (universal runtime).

Tech Stack

Express.jsVitest

Key Features

  • Fine-grained Reactive Primitives
  • Compiled JSX with Babel Preset
  • Control Flow Components
  • Proxy-based Reactive Stores
  • Server-Side Rendering
  • Universal Runtime
  • Web Components Integration
  • HyperScript and HTML Tagged Templates
  • DOM Event Delegation
  • Hydration Support

Coding Conventions

Standards and patterns used in this codebase

file-organization

Monorepo structure: apps/ contains deployable applications, packages/ contains shared libraries

Packages: packages/babel-preset-solid, packages/solid, packages/solid-element
packages/babel-preset-solidpackages/solid
naming

File naming uses: kebab-case, camelCase, PascalCase (for components/classes)

index.js, babel.config.cjs, jsx-runtime.d.ts, rollup.config.js, vite.config.mjs
packages/babel-preset-solid/index.jspackages/solid/babel.config.cjspackages/solid/jsx-runtime.d.ts
code-style

TypeScript is the primary language

All new files should be .ts or .tsx
packages/solid/jsx-runtime.d.tspackages/solid-element/src/index.tspackages/solid/src/index.ts
testing

Tests use .spec. pattern

Test files are named like component.test.ts or placed in __tests__/
packages/test-integration/tests/downloaded.spec.tspackages/solid/store/test/store.spec.ts
configuration

Configuration is centralized in config files

Config files: packages/solid/babel.config.cjs, packages/solid/rollup.config.js
packages/solid/babel.config.cjspackages/solid/rollup.config.jspackages/solid/vite.config.mjs
module-exports

Use index.ts barrel files to export module public API

Each module has index.ts that re-exports public functions
packages/babel-preset-solid/index.jspackages/solid-element/src/index.tspackages/solid/src/index.ts
typescript

Types are defined in dedicated type files

Type files: packages/solid/jsx-runtime.d.ts, packages/solid-ssr/static/index.d.ts
packages/solid/jsx-runtime.d.tspackages/solid-ssr/static/index.d.ts