# solid-start
**Repository Path**: wcc210/solid-start
## Basic Information
- **Project Name**: solid-start
- **Description**: fork
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-01-09
- **Last Updated**: 2024-01-09
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# SolidStart
### Start has just entered a new Beta Phase ###
v0.4.x marks a significant change in the project. Please check the updated docs and example projects to see how things have changed. A summary of the chances can be found in the [RFC](https://github.com/solidjs/solid-start/discussions/1052).
------------------------------------
This is the home of the Solid app framework. This is still a **work in progress**. Many features are missing or incomplete. Experimental status does not even mean beta status. Patch releases will break everything.
## Features
- File-system based routing
- Supports all rendering modes:
- Server-side rendering (SSR)
- Streaming SSR
- Client-side rendering (CSR)
- Static Site Generation (SSG)
- Streaming
- Build optimizations with Code splitting, tree shaking and dead code elimination
- API Routes
- Built on Web standards like Fetch, Streams, and WebCrypto
- Adapters for deployment to all popular platforms
- CSS Modules, SASS/SCSS Support
- TypeScript-first
### Getting started
Create a SolidStart application and run a development server using your preferred package manager:
```bash
mkdir my-app
cd my-app
# with npm
npm init solid@latest
npm install
npm run dev
# or with pnpm
pnpm create solid@latest
pnpm install
pnpm dev
# or with Bun
bunx create-solid@latest
bun install
bun run dev
```
### Development
You should use a node version manager [compatible with `.node-version`](https://stackoverflow.com/a/62978089/565877) ([asdf-vm](https://asdf-vm.com/) is a great option mac/linux users)
The monorepo uses `pnpm` as the package manager. To install `pnpm`, run the following command in your terminal.
```bash
npm install -g pnpm
```
Run `pnpm install` to install all the dependencies for the packages and examples in your monorepo.
Monorepo & project.json "workspace" support
If you are using Solid Start within a monorepo that takes advantage of the `package.json` `"workspaces"` property (e.g. [yarn workspaces](https://classic.yarnpkg.com/en/docs/workspaces/)) with hoisted dependencies (the default for yarn), you must include `solid-start` within the optional `"nohoist"` (for yarn v2 or higher, see further down for instructions) workspaces property.
- _In the following, "workspace root" refers to the root of your repository while "project root" refers to the root of a child package within your repository_
For example, if specifying `"nohoist"` options from the workspace root (i.e. for all packages):
```jsonc
// in workspace root
{
"workspaces": {
"packages": [
/* ... */
],
"nohoist": ["**/solid-start"]
}
}
```
If specifying `"nohoist"` options for a specific package using `solid-start`:
```jsonc
// in project root of a workspace child
{
"workspaces": {
"nohoist": ["solid-start"]
}
}
```
Regardless of where you specify the `nohoist` option, you also need to include `solid-start` as a `devDependency` in the child `package.json`.
The reason why this is necessary is because `solid-start` creates an `index.html` file within your project which expects to load a script located in `/node_modules/solid-start/runtime/entry.jsx` (where `/` is the path of your project root). By default, if you hoist the `solid-start` dependency into the workspace root then that script will not be available within the package's `node_modules` folder.
**Yarn v2 or higher**
The `nohoist` option is no longer available in Yarn v2+. In this case, we can use the `installConfig` property in the `package.json` (either workspace package or a specific project package) to make sure our deps are not hoisted.
```jsonc
// in project root of a workspace child
{
"installConfig": {
"hoistingLimits": "dependencies"
}
}
```
### Credits
All credit for the work on Forms and Sessions goes to the @remix-run team, MIT License, Copyright 2021 Remix Software Inc.