Cinnog uses Leptos with static site generation and island mode to render a static website. Dynamic parts of the website (islands) use WebAssembly to hydrate in the browser.
All date required to build the website is collected and prepared in a data layer. Cinnog's data layer is a Bevy ECS World and can be queried using Bevy systems.
I wrote an example project using Cinnog and deployed it.
The preparation of the data layer currently looks like this in the example project:
#[tokio::main]
async fn main() -> io::Result<()> {
DataLayer::new()
.insert_resource(SiteName("Bevy ECS + Leptos = 💕".to_owned()))
.read_markdown_directory::<PostFrontMatter>("blog")
.read_ron_directory::<PersonData>("people")
.add_plugins(ConvertMarkdownToHtml)
.build(App)
.await
}
Also see the blogpost about the idea of Cinnog.