diff --git a/libs/client.js b/libs/client.js
new file mode 100644
index 0000000..07e54a2
--- /dev/null
+++ b/libs/client.js
@@ -0,0 +1,6 @@
+import { createClient } from 'microcms-js-sdk';
+
+export const client = createClient({
+ serviceDomain: 'yude',
+ apiKey: process.env.MICROCMS_API_KEY,
+});
\ No newline at end of file
diff --git a/pages/posts.js b/pages/posts.js
new file mode 100644
index 0000000..e89882a
--- /dev/null
+++ b/pages/posts.js
@@ -0,0 +1,54 @@
+// Base layout
+import Layout from "./components/Layout"
+
+// Next.js
+import Link from "next/link";
+
+// i18n
+import { useRouter } from 'next/router'
+import useTranslation from 'next-translate/useTranslation'
+
+// microCMS library
+import { client } from "../libs/client";
+
+// next-seo
+import { NextSeo } from 'next-seo';
+
+export default function Home({ blog }) {
+ const router = useRouter()
+ const { locale, locales, defaultLocale, pathname } = router
+ const { t, lang } = useTranslation("common")
+ return (
+ <>
+
+
+
+
{t('common:post_list')}
+
+
+
+ >
+ );
+}
+
+// Passing data to template
+export const getStaticProps = async () => {
+ const data = await client.get({ endpoint: "blog" });
+
+ return {
+ props: {
+ blog: data.contents,
+ },
+ };
+};
\ No newline at end of file
diff --git a/pages/posts/[id].js b/pages/posts/[id].js
new file mode 100644
index 0000000..cf4da22
--- /dev/null
+++ b/pages/posts/[id].js
@@ -0,0 +1,58 @@
+// Base layout
+import Layout from "../components/Layout"
+
+// microCMS library
+import { client } from "../../libs/client";
+
+// next-seo
+import { NextSeo } from 'next-seo';
+
+// React
+import * as React from "react";
+
+// React Moment
+import Moment from 'react-moment';
+
+export default function BlogId({ blog }) {
+ return (
+ <>
+
+
+ {blog.title}
+
+
+ {blog.updated}
+
+
+
+
+ >
+ );
+}
+
+// Specify path for static generator
+export const getStaticPaths = async () => {
+ const data = await client.get({ endpoint: "blog" });
+
+ const paths = data.contents.map((content) => `/posts/${content.id}`);
+ return { paths, fallback: false };
+};
+
+// Passing data to template
+export const getStaticProps = async (context) => {
+ const id = context.params.id;
+ const data = await client.get({ endpoint: "blog", contentId: id });
+
+ return {
+ props: {
+ blog: data,
+ },
+ };
+};
\ No newline at end of file