content/
Every Markdown file is a page, at the address its path gives (writing pages). A folder declared as a collection in site.toml holds items of one type: posts, events, members, or a type the theme adds (content types). Any other file, an image or a PDF, is copied to the site at the same path, so an image lives next to the page that shows it.
theme/
layout.html is the only file a theme must have: the HTML around every page, filled with placeholders. The rest is optional: style.css, scripts, fonts, other layouts, content types in Python, and theme.toml. The starter's theme is a complete, minimal one to begin with (themes).
assets/
The project's own files, served at the root of the site as they are: assets/logo.svg is /logo.svg. It is also the source the build draws the icons and the link preview from. A file in assets/ wins over the theme's file of the same name, so a site can replace one file of a theme it did not write, style.css or layout.html, without touching the theme.