Start here · 01
Getting started with Nift.
You do not need to learn a framework before you can use Nift. Install the executable, create a tiny project, understand the relationship between content and templates, then choose how much—or how little—Nift you want around the rest of your stack.
Nift tracks the files you want to build, combines page-specific content with reusable templates/partials, resolves project-aware paths, and rebuilds the outputs affected by your changes.
Before you start
Make sure Nift is installed and visible in your terminal:
nift version
If that command is not available yet, start with the installation guide →.
Your first project in about a minute
mkdir my-site
cd my-site
nift init .html
nift init .html creates a complete barebones HTML project and builds its initial tracked files. You can open the project immediately; there is no package install step required for the Nift layer itself.
What Nift creates
content/
index.html
templates/
head.html
template.html
template.css
template.js
public/
index.html
assets/
css/
js/
.nift/
config.json
tracked.json
Nift v4 projects use public/ as the default web-facing output directory created by nift init .html. That keeps generated pages and assets in the convention used throughout these docs and by many deployment platforms.
The project model
Tracked name
Nift knows the page/item by a stable name such as /, about or docs/installing.
Content
The content file contains what is specific to that page.
Template
The template contains the shared document/layout structure.
Output
Nift combines them and writes the generated file into the configured output directory.
Content stays ordinary
A page-specific content file can simply be HTML:
<h1>About us</h1>
<p>This markup belongs to this page.</p>
The template owns what repeats
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>$[title]</title>
</head>
<body>
@input('templates/partials/header.html')
<main>
@content
</main>
@input('templates/partials/footer.html')
</body>
</html>
@content inserts the current tracked page's content. @input(...) processes and inserts reusable files. That small relationship is the centre of a Nift project.
Track another page
nift track about "About us"
Nift creates/tracks the corresponding content relationship using the project defaults. Edit the page-specific content, then build:
nift build
With no names supplied, nift build dispatches to the updated-build workflow. During normal development this is usually the command you want: Nift checks what changed and builds affected tracked outputs rather than requiring you to deliberately rebuild everything.
Link pages and local assets with @pathto
<a href="@pathto('about')">About</a>
<link
rel="stylesheet"
href="@pathto('public/assets/css/site.css')">
<img
src="@pathto('public/assets/images/logo.svg')"
alt="Site logo">
For tracked names, Nift calculates the correct relative URL from the page being built. For concrete local paths, the target must exist—so a typo can become a build error instead of a broken link or image after deployment.
Choose your starting path
Once Nift is installed, there are three especially easy ways to begin a real project.
Build it yourself
Start with nift init .html, keep the starter tiny, and add pages/templates/tooling only as the project needs them.
Start from a polished design
Download one of the complete Nift starters, build it immediately and turn it into your own site without adopting another framework.
Browse templates → Path 03 · AI-assistedDescribe the website you want
Download the barebones project, add the provided ai-context.txt, and let Copilot, ChatGPT or another assistant work inside the small Nift model.
Already have a website?
Keep the HTML/CSS/JS you already have. Extract repeated headers, navigation, footers and document structure into templates/partials, keep page-specific markup as content, and preserve the rest of your stack.
See the existing-site migration workflow →
What to learn next
If you understand HTML files, reusable includes and a build command, the Nift-specific part is intentionally small. Learn additional features when you encounter the problem they solve.