Quick Start
Create and run your first tulip site in under a minute.
1. Create a project
Run the interactive init command:
tulip init my-sitetulip will prompt you for a few details:
Site name: My Site
Description: A personal blogThis creates the full project structure with starter templates, a layout, and a sample page.
2. Start the dev server
cd my-site
tulip serveThis builds your site and starts a local server at http://localhost:3000. The dev server watches all files for changes and reloads the browser automatically via WebSocket — no manual refresh needed.
3. Edit a page
Open pages/index.tulip in your editor. You'll see a template that extends the main layout:
@extends('layouts/main')
@section('content')
<div>
<h1>Welcome to {{ site.name }}</h1>
<p>{{ site.description }}</p>
</div>
@endsectionMake a change and save — the browser updates instantly.
4. Add a new page
Create a new file at pages/about.tulip:
@extends('layouts/main')
@section('content')
<div>
<h1>About</h1>
<p>This is my about page.</p>
</div>
@endsectionIt's available immediately at http://localhost:3000/about/.
5. Add markdown content
Create a file at content/hello.md:
---
title: Hello World
layout: layouts/main
---
# Hello World
This is a markdown page rendered by tulip.6. Build for production
tulip buildThis compiles everything into static HTML in the dist/ directory. If Tailwind is enabled, CSS is generated automatically. The output is plain HTML that you can deploy anywhere: GitHub Pages, Netlify, Vercel, S3, or any static host.