diff --git a/src/inbound/renderer/page.rs b/src/inbound/renderer/page.rs
index 1153751..b8ef3a3 100644
--- a/src/inbound/renderer/page.rs
+++ b/src/inbound/renderer/page.rs
@@ -74,12 +74,13 @@ pub fn BlockElement(block: Block) -> Element {
 
 #[cfg(test)]
 mod tests {
-    use meta::SiteContext;
+    use meta::{PageContext, SiteContext};
 
     use crate::{
         domain::entities::{
+            self,
             cursor::Paginated,
-            site::{Image, SiteInfo},
+            site::{CollectionKind, Image, SiteInfo},
         },
         outbound::services::site::{MockSiteService, SiteServiceProvider},
     };
@@ -186,4 +187,130 @@ mod tests {
         assert!(elem_str.contains("Hello, world!"));
         assert!(elem_str.contains("Something else!"));
     }
+
+    #[test]
+    fn page_renders_collection() {
+        let mut app = VirtualDom::new(|| {
+            rsx! {
+                Page {}
+            }
+        });
+
+        app.provide_root_context(SiteContext {
+            info: SiteInfo {
+                title: "test".to_string(),
+                domain: "test".to_string(),
+                pages: vec![],
+            },
+        });
+
+        app.provide_root_context(PageContext {
+            data: entities::site::Page {
+                info: entities::site::PageInfo {
+                    title: "test".to_string(),
+                    name: "test".to_string(),
+                    order: 0,
+                },
+                content: PageContent::Collection {
+                    kind: CollectionKind::Blog,
+                    collection_id: "".to_string(),
+                },
+            },
+        });
+
+        let mut mock_service = MockSiteService::new();
+        mock_service
+            .expect_get_posts()
+            .times(1)
+            .returning(move |_, _, _| {
+                Box::pin(async {
+                    Ok(Paginated {
+                        data: vec![Post {
+                            blocks: vec![Block::Text {
+                                text: "some post here!".to_string(),
+                            }],
+                        }],
+                        next: None,
+                    })
+                })
+            });
+
+        server_context().insert(SiteServiceProvider::with(mock_service));
+
+        app.rebuild_in_place();
+        let elem_str = dioxus::ssr::render(&app);
+        assert!(elem_str.contains("some post here!"));
+    }
+
+    #[test]
+    fn page_renders_flat_post() {
+        let mut app = VirtualDom::new(|| {
+            rsx! {
+                Page {}
+            }
+        });
+
+        app.provide_root_context(SiteContext {
+            info: SiteInfo {
+                title: "test".to_string(),
+                domain: "test".to_string(),
+                pages: vec![],
+            },
+        });
+
+        app.provide_root_context(PageContext {
+            data: entities::site::Page {
+                info: entities::site::PageInfo {
+                    title: "test".to_string(),
+                    name: "test".to_string(),
+                    order: 0,
+                },
+                content: PageContent::Single {
+                    content: Post {
+                        blocks: vec![Block::Text {
+                            text: "single post!".to_string(),
+                        }],
+                    },
+                },
+            },
+        });
+
+        app.rebuild_in_place();
+        let elem_str = dioxus::ssr::render(&app);
+        assert!(elem_str.contains("single post!"));
+    }
+
+    #[test]
+    fn page_renders_title() {
+        let mut app = VirtualDom::new(|| {
+            rsx! {
+                Page {}
+            }
+        });
+
+        app.provide_root_context(SiteContext {
+            info: SiteInfo {
+                title: "test".to_string(),
+                domain: "test".to_string(),
+                pages: vec![],
+            },
+        });
+
+        app.provide_root_context(PageContext {
+            data: entities::site::Page {
+                info: entities::site::PageInfo {
+                    title: "Page name here".to_string(),
+                    name: "test".to_string(),
+                    order: 0,
+                },
+                content: PageContent::Single {
+                    content: Post { blocks: vec![] },
+                },
+            },
+        });
+
+        app.rebuild_in_place();
+        let elem_str = dioxus::ssr::render(&app);
+        assert!(elem_str.contains("Page name here"));
+    }
 }
diff --git a/src/inbound/renderer/server.rs b/src/inbound/renderer/server.rs
index aa705e7..200bf83 100644
--- a/src/inbound/renderer/server.rs
+++ b/src/inbound/renderer/server.rs
@@ -37,7 +37,6 @@ pub async fn get_posts(
     domain: String,
     collection_id: String,
 ) -> Result<Paginated<Post, String>, ServerFnError> {
-    println!("server_context: {:#?}", server_context().request_parts());
     use crate::outbound::services::site::SiteServiceProvider;
     let FromContext(SiteServiceProvider { service }) = extract().await?;