# CedarJS > CedarJS is the full-stack web framework designed to help you grow from side project to startup. CedarJS features an end-to-end development workflow that weaves together the best parts of React, GraphQL, Prisma, TypeScript, Vitest, and Storybook. ## Introduction - [Introduction](/docs/introduction.md): CedarJS is the full-stack web framework designed to help you grow from side project to startup ## Quick Start - [Quick Start](/docs/quick-start.md): CedarJS quick start ## Tutorial - [Afterword](/docs/tutorial/afterword.md): You made it! Get yourself some ice cream or a slice of pie: you definitely deserve it. - [What is CedarJS?](/docs/tutorial/chapter0/what-is-cedarjs.md): What follows is a high-level description of CedarJS and how it works. If you want to get right to the meat and potatoes of building something, skip ahead to Chapter 1. - [Cedar File Structure](/docs/tutorial/chapter1/file-structure.md): Let's take a look at the files and directories that were created for us (config files have been excluded for now): - [Our First Page](/docs/tutorial/chapter1/first-page.md): Let's give our users something to look at besides the (awesome) Cedar welcome page (thanks @alicelovescake!). We'll use the cedar command line tool to create a page for us: - [Installation & Starting Development](/docs/tutorial/chapter1/installation.md): We'll use yarn (yarn is a requirement) to create the basic structure of our app: - [Layouts](/docs/tutorial/chapter1/layouts.md): One way to solve the duplication of the ` would be to create a component and include it in both HomePage and AboutPage. That works, but is there a better solution? Ideally there should only be one reference to the ` anywhere in our code. - [Prerequisites](/docs/tutorial/chapter1/prerequisites.md): Cedar is composed of several popular libraries to make full-stack web development easier. Unfortunately, we can't teach all of those technologies from scratch during this tutorial, so we're going to assume you are already familiar with a few core concepts: - [A Second Page and a Link](/docs/tutorial/chapter1/second-page.md): Let's create an "About" page for our blog so everyone knows about the geniuses behind this achievement. We'll create another page using cedar: - [Cells](/docs/tutorial/chapter2/cells.md): The features we listed at the end of the last page (loading state, error messaging, blank slate text) are common in most web apps. We wanted to see if there was something we could do to make developers' lives easier when it comes to adding them to a typical component. We think we've come up with something to help. We call them Cells. Cells provide a simpler and more declarative approach to data fetching. (Read the full documentation about Cells.) - [Getting Dynamic](/docs/tutorial/chapter2/getting-dynamic.md):