diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 37a8a847fccc3b3f9cedc427bfb35ba4f2b2bbcd..b401223f97ca98486bdf172f07e762903223add1 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -2,86 +2,58 @@
 
 ## Structure
 
-This is a monorepo built with Turborepo
+LlamaIndex.TS uses pnpm monorepo.
 
-Right now, for first-time contributors, these three packages are of the highest importance:
+We recommend you to understand the basics of Node.js, TypeScript, pnpm, and of course, LLM before contributing.
 
-- `packages/llamaindex` which is the main NPM library `llamaindex`
-- `examples` is where the demo code lives
-- `apps/docs` is where the code for the documentation of https://ts.llamaindex.ai/ is located
+There are some important folders in the repository:
 
-### Turborepo docs
-
-You can checkout how Turborepo works using the default [README-turborepo.md](/README-turborepo.md)
+- `packages/*`: Contains the source code of the packages. Each package is a separate npm package.
+  - `llamaindex`: The starter package for LlamaIndex.TS, which contains the all sub-packages.
+  - `core`: The core package of LlamaIndex.TS, which contains the abstract classes and interfaces. It is designed for
+    all JS runtime environments.
+  - `env`: The environment package of LlamaIndex.TS, which contains the environment-specific classes and interfaces. It
+    includes compatibility layers for Node.js, Deno, Vercel Edge Runtime, Cloudflare Workers...
+- `apps/*`: The applications based on LlamaIndex.TS.
+  - `next`: Our documentation website based on Next.js.
+- `examples`: The code examples of LlamaIndex.TS using Node.js.
 
 ## Getting Started
 
-Install NodeJS. Preferably v18 using nvm or n.
-
-Inside the LlamaIndexTS directory:
+Make sure you have Node.js LIS (Long-term Support) installed. You can check your Node.js version by running:
 
+```shell
+node -v
+# v20.x.x
 ```
-npm i -g pnpm ts-node
-pnpm install
-```
-
-Note: we use pnpm in this repo, which has a lot of the same functionality and CLI options as npm but it does do some things better in a monorepo, like centralizing dependencies and caching.
-
-PNPM's has documentation on its [workspace feature](https://pnpm.io/workspaces) and Turborepo had some [useful documentation also](https://turbo.build/repo/docs/core-concepts/monorepos/running-tasks).
 
-### Running Typescript
-
-When we publish to NPM we will have a tsc compiled version of the library in JS. For now, the easiest thing to do is use ts-node.
-
-### Test cases
-
-To run them, run
+### Use pnpm
 
+```shell
+corepack enable
 ```
-pnpm run test
-```
-
-To write new test cases write them in [packages/llamaindex/tests](/packages/llamaindex/tests)
-
-We use Vitest https://vitest.dev to write our test cases. Vitest comes with a bunch of built-in assertions using the expect function: https://vitest.dev/api/expect.html#expect
 
-### Demo applications
+### Install dependencies
 
-There is an existing ["example"](/examples/README.md) demos folder with mainly NodeJS scripts. Feel free to add additional demos to that folder. If you would like to try out your changes in the `llamaindex` package with a new demo, you need to run the build command in the README.
-
-You can create new demo applications in the apps folder. Just run pnpm init in the folder after you create it to create its own package.json
-
-### Installing packages
-
-To install packages for a specific package or demo application, run
-
-```
-pnpm add [NPM Package] --filter [package or application i.e. llamaindex or docs]
+```shell
+pnpm install
 ```
 
-To install packages for every package or application run
+### Build the packages
 
-```
-pnpm add -w [NPM Package]
+```shell
+# Build all packages
+turbo build --filter "./packages/*"
 ```
 
 ### Docs
 
-To contribute to the docs, go to the docs website folder and run the Docusaurus instance.
-
-```bash
-cd apps/docs
-pnpm install
-pnpm start
-```
-
-That should start a webserver which will serve the docs on https://localhost:3000
-
-Any changes you make should be reflected in the browser. If you need to regenerate the API docs and find that your TSDoc isn't getting the updates, feel free to remove apps/docs/api. It will automatically regenerate itself when you run pnpm start again.
+See the [docs](./apps/next/README.md) for more information.
 
 ## Changeset
 
-We use [changesets](https://github.com/changesets/changesets) for managing versions and changelogs. To create a new changeset, run in the root folder:
+We use [changesets](https://github.com/changesets/changesets) for managing versions and changelogs. To create a new
+changeset, run in the root folder:
 
 ```
 pnpm changeset
@@ -95,6 +67,6 @@ The [Release Github Action](.github/workflows/release.yml) is automatically gene
 PR called "Release {version}".
 
 This PR will update the `package.json` and `CHANGELOG.md` files of each package according to
-the current changesets in the [.changeset](.changeset/) folder.
+the current changesets in the [.changeset](.changeset) folder.
 
 If this PR is merged it will automatically add version tags to the repository and publish the updated packages to NPM.
diff --git a/apps/next/README.md b/apps/next/README.md
index b56a7b9a978790ba8c63a91f94dbf6f5f7f34d19..26667de7c791136c33fedcdc6baab6e804f29d1b 100644
--- a/apps/next/README.md
+++ b/apps/next/README.md
@@ -1,4 +1,4 @@
-# next
+# Docs
 
 This is a Next.js application generated with
 [Create Fumadocs](https://github.com/fuma-nama/fumadocs).
@@ -6,15 +6,10 @@ This is a Next.js application generated with
 Run development server:
 
 ```bash
-npm run dev
-# or
-pnpm dev
-# or
-yarn dev
+turbo run dev
+# turbo will build all required packages before running the dev server
 ```
 
-Open http://localhost:3000 with your browser to see the result.
-
 ## Learn More
 
 To learn more about Next.js and Fumadocs, take a look at the following
diff --git a/apps/next/turbo.json b/apps/next/turbo.json
new file mode 100644
index 0000000000000000000000000000000000000000..b98ab04da1ca36abc24f313002b6e92deac8110e
--- /dev/null
+++ b/apps/next/turbo.json
@@ -0,0 +1,8 @@
+{
+  "extends": ["//"],
+  "tasks": {
+    "dev": {
+      "dependsOn": ["^build"]
+    }
+  }
+}