- Stable
2.0.1
Toggle Menu
1.93s
22.90s
Get Started
Eleventy v3.0.0 requires Node.js version 18 or higher.
You can check whether or not you have Node installed by running node --version
in a terminal application. (Well, waitβwhat is a Terminal?) If the command is not found or it reports a number lower than
18, you will need to download and install Node.js before moving on to the next step.
Prefer to watch videos instead? Check out 6 minutes to Build a Blog from Scratch.
Step 1 Make a Project Directory
Create a directory for your project using the mkdir
command (short for make directory):
mkdir eleventy-sample
Now move into that directory with the cd
command (short for change directory):
cd eleventy-sample
Step 2 Install Eleventy
Create a package.json
Installing Eleventy into a project requires a package.json
file.
npm init -y
The npm
command (included with Node.js) will create a package.json
file for you with npm init -y
. The -y
flag tells npm
to use default values and skips the questionnaire.
Use the following command if you want to use ESM in your project and not CommonJS.
npm pkg set type="module"
pnpm init
Learn more about pnpm (it requires separate installation).
yarn init
Learn more about yarn (it requires separate installation).
Install Eleventy
@11ty/eleventy
is published on npm and we can install and save it into our projectβs package.json
by running:
npm install @11ty/eleventy
pnpm install @11ty/eleventy
yarn add @11ty/eleventy
You may also install Eleventy globally but the package.json
installation method above is recommended.
Step 3 Run Eleventy
npx @11ty/eleventy
We can use the npx
command (also provided by Node.js) to run our local project's version of Eleventy.
pnpm exec eleventy
yarn exec eleventy
Hereβs what your command line might look like after you run Eleventy:
[11ty] Wrote 0 files in 0.03 seconds (v3.0.0)
If you see (v3.0.0)
in your output you know youβre using the newest version. However, Eleventy didnβt process any files! This is expectedβwe have an empty folder with no templates inside.
Step 4 Create some templates
A template is a content file written in a format such as Markdown, HTML, Liquid, Nunjucks, and more, which Eleventy transforms into a page (or pages) when building our site.
Letβs run two commands to create two new template files.
echo '<!doctype html><title>Page title</title><p>Hi</p>' > index.html
echo '# Heading' > README.md
echo '<!doctype html><title>Page title</title><p>Hi</p>' | out-file -encoding utf8 'index.html'
echo '# Heading' | out-file -encoding utf8 'README.md'
If the out-file
command is not available in your Windows Terminal window (itβs PowerShell specific), use the Cross Platform method instead.
npx @11ty/create index.html "<!doctype html><title>Page title</title><p>Hi</p>"
npx @11ty/create README.md "# Heading"
Learn more about @11ty/create
(requires Node.js 18 or newer).
Alternatively, you can create these using any text editorβjust make sure you save them into your project folder and they have the correct file extensions.
After youβve created an HTML template and a Markdown template, letβs run Eleventy again with the following command:
npx @11ty/eleventy
pnpm exec eleventy
yarn exec eleventy
The output might look like this:
[11ty] Writing _site/README/index.html from ./README.md (liquid)
[11ty] Writing _site/index.html from ./index.html (liquid)
[11ty] Wrote 2 files in 0.04 seconds (v3.0.0)
Weβve compiled our two content templates in the current directory into the output folder (_site
is the default).
Step 5 Gaze upon your templates
Use --serve
to start up a hot-reloading local web server.
npx @11ty/eleventy --serve
pnpm exec eleventy --serve
yarn exec eleventy --serve
Your command line might look something like:
[11ty] Writing _site/index.html from ./index.html (liquid)
[11ty] Writing _site/README/index.html from ./README.md (liquid)
[11ty] Wrote 2 files in 0.04 seconds (v3.0.0)
[11ty] Watchingβ¦
[11ty] Server at http://localhost:8080/
Open http://localhost:8080/
or http://localhost:8080/README/
in your favorite web browser to see your Eleventy site live! When you save your template filesβEleventy will refresh the browser with your new changes automatically!
Step 6 Put it online (optional)
Head over to our deployment documentation to read more about putting your Eleventy project online for everyone to see.
Step 7 Continue Learningβ¦
Congratulationsβyou made something with Eleventy! Now put it to work:
- Add more content! In the above tutorial we used HTML and Markdown. Why not JavaScript or WebC (for components) next? Nunjucks and Liquid are also very popular. Maybe youβre feeling super adventurous and want to add your own custom type?.
- Use a layout file so that you donβt have to repeat boilerplate on every template.
- Add a configuration file to unlock advanced Eleventy capabilities!
- Add CSS, JavaScript, or Web Fonts to your project.
- Learn more of the command line options for Eleventy.
- Perhaps youβd like to consume data from third party APIs in your project?
Tutorials and Starter Projects
For folks wanting to build a blog, you can learn how to start from scratch (learn how it works) or use our official Blog starter project (get up and running faster):
You can also use one of the many Starter Projects or read some of our excellent Community-contributed Tutorials (a curated few of which are included below):
More From the Community
Γ79 resources courtesy of 11tybundle.dev curated by Bob Monsour