MCPcopy Index your code
hub / github.com/solidjs/solid-start

github.com/solidjs/solid-start @0.3.0 sqlite

repository ↗ · DeepWiki ↗ · release 0.3.0 ↗
641 symbols 1,434 edges 307 files 12 documented · 2%
README

Banner

Version Downloads Stars Discord Reddit

[!IMPORTANT] This is the branch for the SolidStart 2.0.0-alpha that is currently under heavy development.

Current SolidStart is maintained at 1.x.

Prerequisites

  • Node.js: Use the version specified in .nvmrc. To manage multiple versions across your system, we recommend a version manager such as fnm, or another of your choice.
  • pnpm: Install globally via npm install -g pnpm. Or let Corepack handle it in the setup step below.
  • Git: Ensure Git is installed for cloning and managing the repository.

Monorepo Structure

SolidStart is a pnpm-based monorepo with nested workspaces. Key directories include:

  • packages/start: The core @solidjs/start package.
  • apps/landing-page: The official landing page.
  • apps/tests: Unit and end-to-end (E2E) tests using Vitest and Playwright.
  • apps/fixtures: Fixture projects for testing.

Use pnpm filters (e.g. pnpm --filter @solidjs/start ...) to target specific packages.

Local Setup

  1. Clone the repository

bash git clone https://github.com/solidjs/solid-start.git cd solid-start

  1. Enable the correct pnpm version specified in package.json

bash corepack enable

  1. Install dependencies

bash pnpm dedupe

(pnpm dedupe will install dependencies and clean the lockfile from duplicates, useful for preventing conflicts).

  1. Build all packages and the landing page bash pnpm run build:all

If you encounter issues (e.g. missing node_modules), clean the workspace

pnpm run clean:all

Then reinstall dependencies and rebuild.

Running Tests

End-to-end tests are located in apps/tests projects. For manual testing and development use the apps/fixtures apps, and finally, integration and unit tests live inside their respective packages.

  1. Install the Chromium for Playwright binary (required only once)

bash pnpm --filter tests exec playwright install chromium

  1. For unit tests that check build artifacts, build the test app first

bash pnpm --filter tests run build

  1. Run unit tests (puts vitest in watch mode)

bash pnpm --filter tests run unit

  • CI mode (run once): pnpm --filter tests run unit:ci
  • UI mode: pnpm --filter tests run unit:ui

  • Run E2E tests

bash pnpm --filter tests run e2e

  • UI mode: pnpm --filter tests run e2e:ui

  • Clean test artifacts bash pnpm run clean:test

Development

  1. Make your changes in the relevant package (e.g. packages/start)

  2. Rebuild affected packages

bash pnpm run packages:build

For a full rebuild: pnpm run build:all

  1. Test your changes

  2. For fixtures, pick the name of the fixture and run the dev with workspace filtering. bash pnpm --filter fixture-basic dev

  3. For the landing page (from the root directory) bash pnpm run lp:dev

  4. Clean builds if needed bash pnpm run packages:clean # Cleans packages' node_modules and dist folders pnpm run lp:clean # Cleans the landing page pnpm run clean:root # Cleans root-level caches


If you have read all the way here, you're already a champ! 🏆 Thank you.

Extension points exported contracts — how you extend this code

RequestEventLocals (Interface)
(no doc)
packages/start/env.d.ts
Todo (Interface)
(no doc)
apps/fixtures/todomvc/src/types.ts
Register (Interface)
(no doc)
apps/landing-page/src/global.d.ts
StartManifest (Interface)
(no doc)
packages/start/src/virtual.d.ts
Directives (Interface)
(no doc)
apps/fixtures/todomvc/src/routes/index.tsx
DatabaseUserAttributes (Interface)
(no doc)
apps/landing-page/src/global.d.ts
ImportMetaEnv (Interface)
(no doc)
packages/start/src/env.d.ts
RequestEventLocals (Interface)
(no doc)
apps/fixtures/experiments/src/entry-server.tsx

Core symbols most depended-on inside this repo

cn
called by 46
apps/landing-page/src/lib/utils.ts
createWrapperFunction
called by 36
packages/start/src/http/index.ts
getEvent
called by 16
packages/start/src/http/index.ts
story
called by 13
apps/fixtures/hackernews/src/lib/api.ts
isPathValid
called by 12
packages/start/src/directives/paths.ts
mount
called by 10
packages/start/src/client/spa/index.tsx
createHandler
called by 10
packages/start/src/server/handler.ts
solidStart
called by 10
packages/start/src/config/index.ts

Shape

Function 540
Interface 61
Method 29
Class 10
Enum 1

Languages

TypeScript100%

Modules by API surface

packages/start/src/http/index.ts20 symbols
packages/start/src/directives/index.ts20 symbols
packages/start/src/fns/serialization.ts19 symbols
packages/start/src/directives/plugin.ts19 symbols
packages/start/src/shared/dev-overlay/DevOverlayDialog.tsx18 symbols
packages/start/src/config/fs-routes/router.ts17 symbols
packages/start/src/config/fs-routes/tree-shake.ts16 symbols
packages/start/src/config/fs-routes/fs-watcher.ts11 symbols
apps/landing-page/src/components/ui/dropdown-menu.tsx11 symbols
packages/start/src/config/fs-router.ts10 symbols
apps/landing-page/src/components/ui/context-menu.tsx10 symbols
apps/fixtures/todomvc/src/routes/index.tsx10 symbols

Dependencies from manifests, versioned

@babel/core7.29.0 · 1×
@babel/traverse7.29.0 · 1×
@babel/types7.29.0 · 1×
@changesets/cli2.30.0 · 1×
@kobalte/core0.13.11 · 1×
@kobalte/utils0.9.1 · 1×
@playwright/test1.58.2 · 1×
@solidjs/meta0.29.4 · 1×
@solidjs/router0.15.4 · 1×
@solidjs/startworkspace:* · 1×
@solidjs/testing-library0.8.10 · 1×
@tailwindcss/typography0.5.19 · 1×

For agents

$ claude mcp add solid-start \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact