5/10/2025
Frameworks love to treat your folders like logic.
Drop a file in posts/, and it's magically a post. Nest something in projects/ and it’s supposed to mean something special. But what if your site has 3 languages? Or multiple content types? Or multiple post formats?
Then you're stuck organizing content for your generator, not your team.
Rift flips that.
In Rift, you declare your collection by adding a frontmatter key:
collection: posts
That’s it.
You can put the file anywhere. Name it anything. Rift doesn’t care where it lives — just what it is.
Other SSGs make dangerous assumptions:
content/blog/ must be a blog postprojects/ must follow some plugin logicThat’s fragile.
Rift avoids all of this by letting you group by metadata — not paths. You get clean intent, not guesswork.
Want all your posts? In a controller, it’s just:
const posts = context.collections.posts
From there, paginate, filter, localize, or do anything else you need — based on actual content values, not file hierarchy hacks.
With Rift collections, you can:
collection: docs, locale: frcollection: changelog, collection: helpreact”And since it’s all just objects, you can manipulate it however you want.
You shouldn’t have to fight your folder tree to make your content work.
Rift gives you simple, intentional, metadata-driven grouping — so your site structure reflects your needs, not your framework’s opinions.
npm create rift@latest
Group your content your way. Rift won’t stand in your way.
Rift is a zero-guesswork static site generator built for developers. Try it today:
npm create rift@latest