We're sorry but this app doesn't work properly without JavaScript enabled. Please enable it to continue.

Build a Static Site Generator in Python

Build the kind of tool that turns Markdown into a website, then understand static site generators from the inside.

Browse Lessons (read-only)

What will you learn?

Ever wondered how SEO and performance-optimized static site generators like Hugo work? In this guided project you'll build your own from scratch using Python. You'll put a lot of your learnings from Object-Oriented Programming and Functional Programming to use in a tangible web project. This project isn't for the faint of heart, but it's well worth the effort. You'll come away with a deeper understanding of static content management.

Chapter List

1
Static Sites
Learn about what a static site is, and start building the functionality necessary to process and move static HTML and Markdown files.
2
Nodes
Build the core HTML generation logic that will power your static site generator. Use recursion and OOP to build an easily understandable and maintainable system.
3
Inline
Build the inline markdown parsing logic, and the logic to generate inline HTML elements.
4
Blocks
Handle entire blocks of markdown, and generate the HTML nodes that represent them.
5
Website
Put the entire static site generator together, and publish your first website.

Join 15,088 students in the Build a Static Site Generator in Python course

Read reviews of their learning experiences

hard

(3/5)
Lucas Strauss profile image

Lucas Strauss

United States

This is a lot of work! It took me a week to get through it! The coding of the project is only half of it, learning to think up and create unit tests added hugely to the amount of time it took me. But it was valuable to learn that! And I haven't worked directly with HTML much in forever, so it was learning so much more than just how to code this project. Big, big lift, but worth it.

(4/5)
Mireille C profile image

Mireille C

United States

A big step up in difficulty, with submissions that do not rigorously test understanding and implementation

(2/5)
Christopher Short profile image

Christopher Short

United Kingdom

讚!

(5/5)
子揚 曾 profile image

子揚 曾

Taiwan

One of the greatest courses on the platform. At the level of syntax or features, it does not have many new things—mostly operations on the OS file system. But where it shines is in guiding you through putting together a whole project. This is one of those projects that I can say 'has something interesting; it is not just a tutorial. It is built, and I can show it off any time.'

(5/5)
SERGIO  profile image

SERGIO

Argentina

Really loved it! Helps you see how you organize a project, to use and get used to the doc and very satisfying.

(5/5)
Laura  profile image

Laura

France

awesome course

(5/5)
Mitarth Pandey profile image

Mitarth Pandey

India

Awesome learning experience. Hard but worth it.

(5/5)
Andrei Tudor Patru profile image

Andrei Tudor Patru

Bucharest, Romania

I did not leave 5 stars for this course because I enjoyed it. Frankly, I did not. However, I learned a lot about building a difficult project and I think if you're serious about becoming a software developer, this course is a must. Humble yourself and ask for help. You will need it. Also it's spelled "tolkien" FYI

(5/5)
Andreas O'Rourke profile image

Andreas O'Rourke

United States

Showing 1-9 of 426

Browse Lessons (read-only)

or view more reviews

Mediocrity doesn't cut it anymore

The only way to become a great developer is to write a lot of code

Avoid tutorial hell

by writing a ton of code

Stay motivated with

a game-like curriculum

Build portfolio projects

to prove your skills

Delve deeper

into foundational concepts

Learn flexibly online

without interrupting your life

For 1% the price of college

to minimize your financial risk

Frequently asked Questions

Got questions? We've got answers

Yes! It's free to create an account and start learning. You'll get all the immersive and interactive features for free for a few chapters. After that, if you still haven't paid for a membership, you'll be in read-only (content only) mode.