diff --git a/bin/sitemap.js b/bin/sitemap.js
new file mode 100644
index 0000000..e96dcae
--- /dev/null
+++ b/bin/sitemap.js
@@ -0,0 +1,30 @@
+const fs = require('fs');
+
+const layouts = [
+ 'Holy grail', 'Sidebar', 'Split screen', 'Sticky footer', 'Sticky header',
+];
+
+const patterns = [
+ 'Badge', 'Breadcrumb', 'Button with icon', 'Card', 'Centering',
+ 'Dot navigation', 'Feature list', 'Fixed at corner', 'Input addon', 'Media object',
+ 'Menu', 'Modal', 'Notification', 'Pagination', 'Previous next buttons',
+ 'Pricing table', 'Progress bar', 'Same height columns', 'Search box', 'Separator',
+ 'Simple grid', 'Slider', 'Split navigation', 'Stepper input', 'Switch',
+ 'Tab', 'Wizard',
+];
+
+const items = layouts.concat(patterns);
+
+const slug = item => item.toLowerCase().split(' ').join('-');
+const output = ['\n']
+ .concat(
+ items.map((item) => `https://csslayout.io/${slug(item)}\n`)
+ )
+ .concat(
+ ['\n']
+ )
+ .join('');
+
+fs.writeFile('./sitemap.xml', output, (err) => {
+ console.log(err || 'Sitemap generated successfully');
+});
diff --git a/package.json b/package.json
index b576330..4364659 100644
--- a/package.json
+++ b/package.json
@@ -3,7 +3,9 @@
"scripts": {
"dev": "parcel client/index.html --out-dir dist",
"build": "parcel build client/index.html --out-dir dist",
- "postbuild": "react-snap"
+ "sitemap": "cp robots.txt dist && node bin/sitemap && cp sitemap.xml dist",
+ "prebuild": "rm -rf dist/*",
+ "postbuild": "npm run sitemap && react-snap"
},
"dependencies": {
"highlight.js": "^9.16.2",
diff --git a/robots.txt b/robots.txt
new file mode 100644
index 0000000..6c3f882
--- /dev/null
+++ b/robots.txt
@@ -0,0 +1,3 @@
+User-agent: *
+Disallow:
+Sitemap: https://csslayout.io/sitemap.xml
\ No newline at end of file
diff --git a/sitemap.xml b/sitemap.xml
new file mode 100644
index 0000000..8906cfd
--- /dev/null
+++ b/sitemap.xml
@@ -0,0 +1,34 @@
+
+https://csslayout.io/holy-grail
+https://csslayout.io/sidebar
+https://csslayout.io/split-screen
+https://csslayout.io/sticky-footer
+https://csslayout.io/sticky-header
+https://csslayout.io/badge
+https://csslayout.io/breadcrumb
+https://csslayout.io/button-with-icon
+https://csslayout.io/card
+https://csslayout.io/centering
+https://csslayout.io/dot-navigation
+https://csslayout.io/feature-list
+https://csslayout.io/fixed-at-corner
+https://csslayout.io/input-addon
+https://csslayout.io/media-object
+https://csslayout.io/menu
+https://csslayout.io/modal
+https://csslayout.io/notification
+https://csslayout.io/pagination
+https://csslayout.io/previous-next-buttons
+https://csslayout.io/pricing-table
+https://csslayout.io/progress-bar
+https://csslayout.io/same-height-columns
+https://csslayout.io/search-box
+https://csslayout.io/separator
+https://csslayout.io/simple-grid
+https://csslayout.io/slider
+https://csslayout.io/split-navigation
+https://csslayout.io/stepper-input
+https://csslayout.io/switch
+https://csslayout.io/tab
+https://csslayout.io/wizard
+