diff --git a/www/apps/book/app/learn/advanced-development/environment-variables/page.mdx b/www/apps/book/app/learn/advanced-development/environment-variables/page.mdx
new file mode 100644
index 0000000000..5a0b131d12
--- /dev/null
+++ b/www/apps/book/app/learn/advanced-development/environment-variables/page.mdx
@@ -0,0 +1,96 @@
+import { Table } from "docs-ui"
+
+export const metadata = {
+ title: `${pageNumber} Environment Variables`,
+}
+
+# {metadata.title}
+
+In this chapter, you'll learn how environment variables are loaded in Medusa.
+
+## System Environment Variables
+
+The Medusa application loads and uses system environment variables.
+
+For example, if you set the `PORT` environment variable to `8000`, the Medusa application runs on that port instead of `9000`.
+
+In production, you should always use system environment variables that you set through your hosting provider.
+
+---
+
+## Environment Variables in .env Files
+
+During development, it's easier to set environment variables in a `.env` file in your repository.
+
+Based on your `NODE_ENV` system environment variable, which is considered as `development` if not set, Medusa will try to load environment variables from the following `.env` files:
+
+
+
+
+ Environment
+
+
+ `.env` File
+
+
+
+
+
+
+
+
+ `NODE_ENV` = `development` or not set
+
+
+
+
+ `.env`
+
+
+
+
+
+
+ `NODE_ENV` = `production`
+
+
+
+
+ `.env.production`
+
+
+
+
+
+
+ `NODE_ENV` = `staging`
+
+
+
+
+ `.env.staging`
+
+
+
+
+
+
+ `NODE_ENV` = `test`
+
+
+
+
+ `.env.test`
+
+
+
+
+
+
+### Set Environment in `loadEnv`
+
+In the `medusa-config.ts` file of your Medusa application, you'll find a `loadEnv` function used that accepts `process.env.NODE_ENV` as a first parameter.
+
+This function is responsible for loading the correct `.env` file based on the value of `process.env.NODE_ENV`.
+
+To ensure that the correct `.env` file is loaded as shown in the table above, only specify `development`, `production`, `staging` or `test` as the value of `process.env.NODE_ENV` or as the parameter of `loadEnv`.
diff --git a/www/apps/book/generated/edit-dates.mjs b/www/apps/book/generated/edit-dates.mjs
index c1a14cd970..43b7205f0a 100644
--- a/www/apps/book/generated/edit-dates.mjs
+++ b/www/apps/book/generated/edit-dates.mjs
@@ -112,5 +112,6 @@ export const generatedEditDates = {
"app/learn/architecture/overview/page.mdx": "2024-09-23T12:55:01.339Z",
"app/learn/advanced-development/data-models/infer-type/page.mdx": "2024-09-30T08:43:53.123Z",
"app/learn/advanced-development/custom-cli-scripts/seed-data/page.mdx": "2024-10-03T11:11:07.181Z",
- "app/learn/basics/modules/page.mdx": "2024-10-16T08:49:39.997Z"
+ "app/learn/basics/modules/page.mdx": "2024-10-16T08:49:39.997Z",
+ "app/learn/advanced-development/environment-variables/page.mdx": "2024-10-25T14:59:07.831Z"
}
\ No newline at end of file
diff --git a/www/apps/book/sidebar.mjs b/www/apps/book/sidebar.mjs
index d59f705bc3..fe8c35acc7 100644
--- a/www/apps/book/sidebar.mjs
+++ b/www/apps/book/sidebar.mjs
@@ -507,6 +507,11 @@ export const sidebar = numberSidebarItems(
},
],
},
+ {
+ type: "link",
+ title: "Environment Variables",
+ path: "/learn/advanced-development/environment-variables"
+ }
],
},
{