diff --git a/src/lib/BlogCard/Meta.svelte b/src/lib/BlogCard/Meta.svelte
new file mode 100644
index 0000000..01da437
--- /dev/null
+++ b/src/lib/BlogCard/Meta.svelte
@@ -0,0 +1,24 @@
+
+
+
+	{#if post.tags.length > 0}
+		
+			
+			{#each post.tags as tag}
+				
{tag.name}
+			{/each}
+		
+	{/if}
+	{#each post.authors as author}
+		
{author.name}
+	{/each}
+	
 {dayjs
+		(post.published_at)
+		.format("ddd, DD MMM YYYY HH:mm")}
+	
 {post.plaintext.trim().split(/\s+/).length} words
+	
 {post.reading_time} minute read
+
+	{@html data.post.html}
+
\ No newline at end of file
diff --git a/src/lib/BlogCard/PostOuter.svelte b/src/lib/BlogCard/PostOuter.svelte
new file mode 100644
index 0000000..1178810
--- /dev/null
+++ b/src/lib/BlogCard/PostOuter.svelte
@@ -0,0 +1,3 @@
+
+	
+
\ No newline at end of file
diff --git a/src/lib/BlogCard/PostsContainer.svelte b/src/lib/BlogCard/PostsContainer.svelte
new file mode 100644
index 0000000..586d715
--- /dev/null
+++ b/src/lib/BlogCard/PostsContainer.svelte
@@ -0,0 +1,7 @@
+
+
+
+	
+
\ No newline at end of file
diff --git a/src/lib/BlogCard/ReadMore.svelte b/src/lib/BlogCard/ReadMore.svelte
new file mode 100644
index 0000000..22f10aa
--- /dev/null
+++ b/src/lib/BlogCard/ReadMore.svelte
@@ -0,0 +1,6 @@
+
+
+{post.plaintext.split(" ").slice(0, 20).join(" ") + "..."}
+Read more...
\ No newline at end of file
diff --git a/src/lib/BlogCard/SingleWordLists.svelte b/src/lib/BlogCard/SingleWordLists.svelte
new file mode 100644
index 0000000..b343f83
--- /dev/null
+++ b/src/lib/BlogCard/SingleWordLists.svelte
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/lib/BlogCard/Title.svelte b/src/lib/BlogCard/Title.svelte
new file mode 100644
index 0000000..a45dd91
--- /dev/null
+++ b/src/lib/BlogCard/Title.svelte
@@ -0,0 +1,5 @@
+
+
+{post.title}
\ No newline at end of file
diff --git a/src/lib/BlogCard/TitleWithBackButton.svelte b/src/lib/BlogCard/TitleWithBackButton.svelte
new file mode 100644
index 0000000..96b0cdc
--- /dev/null
+++ b/src/lib/BlogCard/TitleWithBackButton.svelte
@@ -0,0 +1,5 @@
+
+
+ Back - {data.post.title}
\ No newline at end of file
diff --git a/src/lib/BlogCard/index.ts b/src/lib/BlogCard/index.ts
new file mode 100644
index 0000000..2b1c33c
--- /dev/null
+++ b/src/lib/BlogCard/index.ts
@@ -0,0 +1,8 @@
+export { default as PostsContainer } from "./PostsContainer.svelte";
+export { default as PostOuter } from "./PostOuter.svelte";
+export { default as Title } from "./Title.svelte";
+export { default as Meta } from "./Meta.svelte";
+export { default as ReadMore } from "./ReadMore.svelte";
+export { default as TitleWithBackButton } from "./TitleWithBackButton.svelte";
+export { default as PostContent } from "./PostContent.svelte";
+export { default as SingleWordLists } from "./SingleWordLists.svelte";
\ No newline at end of file
diff --git a/src/routes/blog/+page.svelte b/src/routes/blog/+page.svelte
index 5a46f80..374b0ed 100644
--- a/src/routes/blog/+page.svelte
+++ b/src/routes/blog/+page.svelte
@@ -1,9 +1,9 @@
 
 
 
@@ -34,30 +34,12 @@
 	
 
 
-
+
 	{#each data.posts as post}
-		
-			
{post.title}
-			
-				{#if post.tags.length > 0}
-					
-						
-						{#each post.tags as tag}
-							
{tag.name}
-						{/each}
-					
-				{/if}
-				{#each post.authors as author}
-					
{author.name}
-				{/each}
-				
 {dayjs
-					(post.published_at)
-					.format("ddd, DD MMM YYYY HH:mm")}
-				
 {post.plaintext.trim().split(/\s+/).length} words
-				
 {post.reading_time} minute read
-			
-			
{post.plaintext.split(" ").slice(0, 20).join(" ") + "..."}
-			
Read more...
-		
-	
 Back - {data.post.title}
-	
-		{#if data.post.tags.length > 0}
-			
-				
-				{#each data.post.tags as tag}
-					
{tag.name}
-				{/each}
-			
-		{/if}
-		{#each data.post.authors as author}
-			
{author.name}
-		{/each}
-		
 {dayjs
-			(data.post.published_at)
-			.format("ddd, DD MMM YYYY HH:mm")}
-		
 {data.post.plaintext.trim().split(/\s+/).length} words
-		
 {data.post.reading_time} minute read
-	
-	{@html data.post.html}
-
Blog authors
 
-
\ No newline at end of file
+
+
diff --git a/src/routes/blog/authors/[author]/+page.svelte b/src/routes/blog/authors/[author]/+page.svelte
index b3b83c9..1ba5b88 100644
--- a/src/routes/blog/authors/[author]/+page.svelte
+++ b/src/routes/blog/authors/[author]/+page.svelte
@@ -1,35 +1,22 @@
 
 
+
+	Blog author {data.authorName} | Project Segfault Blog
+
+
 Blog author {data.authorName}
 
-
+
 	{#each data.posts as post}
-		
-			
{post.title}
-			
-				{#if post.tags.length > 0}
-					
-						
-						{#each post.tags as tag}
-							
{tag.name}
-						{/each}
-					
-				{/if}
-				{#each post.authors as author}
-					
{author.name}
-				{/each}
-				
 {dayjs
-					(post.published_at)
-					.format("ddd, DD MMM YYYY HH:mm")}
-				
 {post.plaintext.trim().split(/\s+/).length} words
-				
 {post.reading_time} minute read
-			
-			
{post.plaintext.split(" ").slice(0, 20).join(" ") + "..."}
-			
Read more...
-		
Blog tags
 
-
-	{#each data.tags as tag}
-		
{tag.name}
-	{/each}
-
Blog tag {data.tagName}
 
-
+
 	{#each data.posts as post}
-		
-			
{post.title}
-			
-				{#if post.tags.length > 0}
-					
-						
-						{#each post.tags as tag}
-							
{tag.name}
-						{/each}
-					
-				{/if}
-				{#each post.authors as author}
-					
{author.name}
-				{/each}
-				
 {dayjs
-					(post.published_at)
-					.format("ddd, DD MMM YYYY HH:mm")}
-				
 {post.plaintext.trim().split(/\s+/).length} words
-				
 {post.reading_time} minute read
-			
-			
{post.plaintext.split(" ").slice(0, 20).join(" ") + "..."}
-			
Read more...
-