Take your SolidJS skills to the next level with this focused guide to SolidStart, the full-stack framework built on top of SolidJS. Designed for developers who already understand the fundamentals, this book dives into the essential production features that transform SolidJS from a reactive UI library into a complete application platform.
Through detailed chapters and hands-on examples, you’ll learn how to:
- Structure and scale SolidJS apps for real-world deployment.
- Manage sessions, authentication, and secure data flow.
- Preload data, optimize rendering, and handle async workflows.
- Build isomorphic applications designed for modern serverless environments.
The book culminates in a complete project: Echoes, a quote-management app that integrates authentication, protected routes, forms, error handling, and client–server coordination. By the end, you’ll have the skills to confidently build and deploy SolidStart applications that are fast, reactive, and production-ready.
Adapted from the comprehensive SolidJS: The Complete Guide, this volume zeroes in on the advanced concepts that matter most when building real-world apps. Step by step, it shows you how to structure, deliver, and scale production-ready SolidJS projects with confidence.
If you’re ready to move beyond the basics and harness the full power of SolidStart, this book will be your practical roadmap.
Print Length: 218 pages
Payment & Security
All purchases are processed securely through Stripe,
a trusted global payment platform. Stripe uses advanced encryption and
is PCI DSS compliant, ensuring your payment information is always safe.
We never store or have access to your credit card details, so you can
buy with complete confidence.
Table of Contents
- 1. Introduction
- 2. Server Side Rendering
- Issues With Single Page Applications
- SSR: Visible Content From the First Byte
- Three Rendering Approaches for SSR Applications
renderToString
- Synchronous HTML
Generation
renderToStringAsync
- Asynchronous HTML
Generation
renderToStream
- Streaming with
Progressive Rendering
- Hydration: Breathing Life into Server-Rendered
Pages
- Targeting the Server Context
- Targeting the Development Build
- Practical Guide to Server-Rendering
- Separating Application Shell from Client Logic
- Building a Full-Stack App with Express and Solid
Router
- 3. Solid Router
- Setting Up Development Environment
- Client-Only Development Environment
- SolidStart Development Environment
- Installing Solid Router
- Routing Strategies
- Anatomy of a URL
- Clean URLs
- Introducing the
Router
Component
- Error Handling Considerations
- Defining Routes
- Lazy Loading Route Components
- Matching Dynamic Paths
- Filtering Dynamic Paths
- Optional Parameters
- Catch-All Routes and Handling 404s
- Named Wildcards for Flexibility
- Wildcards Beyond Catch-All Routes
- Use Cases for Wildcard Routes
- Matching Multiple Paths in a Route
- Attaching Metadata
- Layouts
- Rendering Different Layouts Conditionally
- Rendering Different Layouts via Nested
Routes
- Nested Routes
- Providing a Shared Layout
- Nested Routes via Configuration
- Alternative Routers
- Hash Mode Router
- Memory Router
- Linking and Navigation
- Using Anchor Elements
- Targeting New Tabs or Frames
- Adding Keyboard Shortcuts with
accesskey
- Security Considerations for Anchor
Elements
- Using the
A
Component
- Programmatic Navigation
- The
redirect
Function
- Using redirect in Queries and Actions
- Single Flight Mutations
throw
vs
return
- Hosting Apps in Subdirectories
- Preloading
- Inside the preload Function
- Manually Preloading with
usePreloadRoute
- Accessing Route Related Data
- Accessing URL Information with
useLocation
- Managing Query Parameters with
useSearchParams
- Extracting Route Parameters with
useParams
- Matching Routes with
useMatch
and
useCurrentMatches
- Displaying Transition Indicators
- Intercepting Route Changes with
useBeforeLeave
- Fetching Async Data
- Deduplicated Data Fetching
- Updating Remote Data With Web Forms
- Working With Web Forms
- Collecting User Inputs and Performing Data
Updates
- Providing Unique Names For Serialization
- Passing Arguments Directly
- Programmatically Invoking Actions
- Handling Form Errors
- Helper Functions
- Tracking Form Submissions with
useSubmission
and useSubmissions
- Reactive Forms with Authentication and
Validation
- 4. Isomorphic Apps with SolidStart
- Introducing SolidStart
- Project Setup & Configuration
- Project Structure
- Building Navigation with File-Based Routes
- Dynamic Parameters
- Optional Parameters
- Catch-All Routes
- Logical Naming for Cleaner File Organization
- Renaming index.tsx for Discoverability
- Using Folders for Logical Grouping
- Escaping Folder-Based Nesting
- Creating Shared Page Structures with Layouts
- Defining Layouts for Nested Routes
- Escaping Nested Layouts
- Serving Static Assets
- Using
import
Statements
- Styling Components
- Using Stylesheets
- Using CSS Modules
- CSS-in-JS
- Data Exchange Between the Server and Client
- Basic Data Fetching: API Endpoints
- Idiomatic Data Fetching: Server Functions
- Performing Server-Side Mutations: Server
Actions
- Caching Data for Request Deduplication
- Preloading Data
- Pre-rendering Routes
- Registering API Endpoints
- Using the file router API
- Using application configuration
- Using a Middleware
- Using the
GET
function
- Accessing Server Events
- Managing
<head>
Elements
- Setting HTTP Headers and Status Codes
- Setting HTTP Headers
- Setting HTTP Status Codes
- Creating Client-Only Components
- Building Echoes: A Quote Management App with
SolidStart
- Project Setup
- Application Structure and Routes
- Route Organization
- Protected Routes
- Public Routes
- Application Layout
- Styling
- Error Handling
- Fetching Data
- Updating Data
- Authentication and Authorization
- Notifications and Confirmation Dialogs
- Mounting the Client-Only Layers
- Notifications: Decoupled, Event-Driven
Toasts
- Confirmation Dialogs: Explicit Consent for
Destructive Actions
- Closing Thoughts