diff --git a/.gitignore b/.gitignore
index e43b0f9..51fde8e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,7 @@
.DS_Store
+._*
+docs/_site
+docs/.sass-cache
+docs/.jekyll-cache
+docs/.jekyll-metadata
+docs/vendor
diff --git a/_config.yml b/_config.yml
deleted file mode 100644
index c7c2536..0000000
--- a/_config.yml
+++ /dev/null
@@ -1,55 +0,0 @@
-# Welcome to Jekyll!
-#
-# This config file is meant for settings that affect your whole blog, values
-# which you are expected to set up once and rarely edit after that. If you find
-# yourself editing this file very often, consider using Jekyll's data files
-# feature for the data you need to update frequently.
-#
-# For technical reasons, this file is *NOT* reloaded automatically when you use
-# 'bundle exec jekyll serve'. If you change this file, please restart the server process.
-#
-# If you need help with YAML syntax, here are some quick references for you:
-# https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
-# https://learnxinyminutes.com/docs/yaml/
-#
-# Site settings
-# These are used to personalize your new site. If you look in the HTML files,
-# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
-# You can create any custom variable you would like, and they will be accessible
-# in the templates via {{ site.myvariable }}.
-
-title: "Gridwise: WebGPU Compute Primitives in JavaScript"
-email: jowens@ece.ucdavis.edu
-description: >- # this means to ignore newlines until "baseurl:"
- Gridwise defines WebGPU compute primitives using JavaScript.
-baseurl: "/gridwise" # the subpath of your site, e.g. /blog
-source: docs
-exclude:
- - misc/
-url: "https://gridwise-js.github.io" # the base hostname & protocol for your site, e.g. http://example.com
-twitter_username: jekyllrb
-github_username: jekyll
-
-# Build settings
-theme: minima
-plugins:
- - jekyll-feed
-# Exclude from processing.
-# The following items will not be processed, by default.
-# Any item listed under the `exclude:` key here will be automatically added to
-# the internal "default list".
-#
-# Excluded items can be processed by explicitly listing the directories or
-# their entries' file path in the `include:` list.
-#
-# exclude:
-# - .sass-cache/
-# - .jekyll-cache/
-# - gemfiles/
-# - Gemfile
-# - Gemfile.lock
-# - node_modules/
-# - vendor/bundle/
-# - vendor/cache/
-# - vendor/gems/
-# - vendor/ruby/
diff --git a/docs/.gitignore b/docs/.gitignore
deleted file mode 100644
index 918de83..0000000
--- a/docs/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-_site
-.sass-cache
-.jekyll-cache
-.jekyll-metadata
-vendor
-Gemfile.lock
diff --git a/docs/404.html b/docs/404.html
deleted file mode 100644
index 3a16ab5..0000000
--- a/docs/404.html
+++ /dev/null
@@ -1,25 +0,0 @@
----
-permalink: /404.html
-layout: page
----
-
-
-
-
+
+
+
\ No newline at end of file
diff --git a/docs/_layouts/home.html b/docs/_layouts/home.html
new file mode 100644
index 0000000..48c6abb
--- /dev/null
+++ b/docs/_layouts/home.html
@@ -0,0 +1,43 @@
+---
+layout: default
+---
+
+
+
+
+
+
+
+
+ {%- if page.title -%}
+
{{ page.title }}
+ {%- endif -%}
+
+ {{ content }}
+
+
+
\ No newline at end of file
diff --git a/docs/_layouts/page.html b/docs/_layouts/page.html
new file mode 100644
index 0000000..9732ba4
--- /dev/null
+++ b/docs/_layouts/page.html
@@ -0,0 +1,47 @@
+---
+layout: default
+---
+
+
+
+
+
+
+
+
+
+
{{ page.title | escape }}
+
+
+
+ {{ content }}
+
+
+
+
\ No newline at end of file
diff --git a/docs/_posts/2025-07-23-welcome-to-jekyll.markdown b/docs/_posts/2025-07-23-welcome-to-jekyll.markdown
deleted file mode 100644
index dc0180e..0000000
--- a/docs/_posts/2025-07-23-welcome-to-jekyll.markdown
+++ /dev/null
@@ -1,29 +0,0 @@
----
-layout: post
-title: "Welcome to Jekyll!"
-date: 2025-07-23 16:06:17 -0700
-categories: jekyll update
----
-You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated.
-
-Jekyll requires blog post files to be named according to the following format:
-
-`YEAR-MONTH-DAY-title.MARKUP`
-
-Where `YEAR` is a four-digit number, `MONTH` and `DAY` are both two-digit numbers, and `MARKUP` is the file extension representing the format used in the file. After that, include the necessary front matter. Take a look at the source for this post to get an idea about how it works.
-
-Jekyll also offers powerful support for code snippets:
-
-{% highlight ruby %}
-def print_hi(name)
- puts "Hi, #{name}"
-end
-print_hi('Tom')
-#=> prints 'Hi, Tom' to STDOUT.
-{% endhighlight %}
-
-Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk].
-
-[jekyll-docs]: https://jekyllrb.com/docs/home
-[jekyll-gh]: https://github.com/jekyll/jekyll
-[jekyll-talk]: https://talk.jekyllrb.com/
diff --git a/docs/about.markdown b/docs/about.markdown
index 8b4e0b2..073fadb 100644
--- a/docs/about.markdown
+++ b/docs/about.markdown
@@ -4,15 +4,6 @@ title: About
permalink: /about/
---
-This is the base Jekyll theme. You can find out more info about customizing your Jekyll theme, as well as basic Jekyll usage documentation at [jekyllrb.com](https://jekyllrb.com/)
+Gridwise is a JavaScript library for WebGPU compute primitives including scan, reduce, and sort.
-You can find the source code for Minima at GitHub:
-[jekyll][jekyll-organization] /
-[minima](https://github.com/jekyll/minima)
-
-You can find the source code for Jekyll at GitHub:
-[jekyll][jekyll-organization] /
-[jekyll](https://github.com/jekyll/jekyll)
-
-
-[jekyll-organization]: https://github.com/jekyll
+View the source code on [GitHub](https://github.com/gridwise-webgpu/gridwise).
diff --git a/docs/assets/css/style.scss b/docs/assets/css/style.scss
new file mode 100644
index 0000000..a6e8d03
--- /dev/null
+++ b/docs/assets/css/style.scss
@@ -0,0 +1,308 @@
+---
+---
+@import "minima";
+
+/* Header Button Styling */
+.button {
+ display: inline-block;
+ padding: 5px 10px;
+ border: 1px solid #4f4f4f;
+ border-radius: 4px;
+ transition: all 0.2s ease-in;
+ position: relative;
+ overflow: hidden;
+ font-size: 16px;
+ cursor: pointer;
+ color: black;
+ z-index: 1;
+ text-decoration: none;
+ line-height: 1.5;
+ vertical-align: middle;
+ margin-top: 0;
+}
+
+.button:before {
+ content: "";
+ position: absolute;
+ left: 50%;
+ transform: translateX(-50%) scaleY(1) scaleX(1.25);
+ top: 100%;
+ width: 140%;
+ height: 180%;
+ background-color: rgba(0, 0, 0, 0.05);
+ border-radius: 50%;
+ display: block;
+ transition: all 0.5s 0.1s cubic-bezier(0.55, 0, 0.1, 1);
+ z-index: -1;
+}
+
+.button:after {
+ content: "";
+ position: absolute;
+ left: 55%;
+ transform: translateX(-50%) scaleY(1) scaleX(1.45);
+ top: 180%;
+ width: 160%;
+ height: 190%;
+ background-color: #39bda7;
+ border-radius: 50%;
+ display: block;
+ transition: all 0.5s 0.1s cubic-bezier(0.55, 0, 0.1, 1);
+ z-index: -1;
+}
+
+.button:hover {
+ color: #ffffff;
+ border: 1px solid #39bda7;
+ text-decoration: none;
+}
+
+.button:hover:before {
+ top: -35%;
+ background-color: #39bda7;
+ transform: translateX(-50%) scaleY(1.3) scaleX(0.8);
+}
+
+.button:hover:after {
+ top: -45%;
+ background-color: #39bda7;
+ transform: translateX(-50%) scaleY(1.3) scaleX(0.8);
+}
+
+/* Override wrapper for documentation pages */
+.page-content .wrapper {
+ max-width: none;
+ padding: 0;
+ margin: 0;
+}
+
+/* Documentation Layout with Sidebar */
+.docs-container {
+ display: flex;
+ gap: 0;
+ max-width: 100%;
+ margin: 0;
+ padding: 0;
+}
+
+/* Left Sidebar - Fixed to left edge */
+.docs-sidebar {
+ width: 380px;
+ flex-shrink: 0;
+ background-color: #f8f9fa;
+ padding: 25px 20px 30px 20px;
+ border-right: 1px solid #e1e4e8;
+ position: fixed;
+ left: 0;
+ top: 56px;
+ /* Below the header */
+ height: calc(100vh - 56px);
+ overflow-y: auto;
+ z-index: 100;
+ box-shadow: 2px 0 10px rgba(0, 0, 0, 0.05);
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+}
+
+.docs-sidebar h3 {
+ margin-top: 0;
+ margin-bottom: 1rem;
+ font-size: clamp(1.3rem, 2vw, 1.6rem);
+ color: #333;
+ border-bottom: 2px solid #39bda7;
+ padding-bottom: 0.5rem;
+ font-weight: 600;
+ text-transform: uppercase;
+ letter-spacing: 0.5px;
+}
+
+.docs-nav {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+ flex: 1;
+ overflow-y: auto;
+ padding-bottom: 30px;
+ min-height: 0;
+}
+
+.docs-nav li {
+ margin-bottom: 0.15rem;
+}
+
+.docs-nav a {
+ display: block;
+ padding: 0.75rem 1rem;
+ color: #555;
+ text-decoration: none;
+ border-radius: 6px;
+ transition: all 0.3s ease;
+ font-size: clamp(1rem, 1.5vw, 1.2rem);
+ line-height: 1.5;
+ border-left: 3px solid transparent;
+}
+
+.docs-nav a:hover {
+ background-color: #e8eaed;
+ color: #111;
+ border-left-color: #39bda7;
+ transform: translateX(5px);
+ padding-left: 1.1rem;
+}
+
+.docs-nav a.active {
+ background-color: #39bda7;
+ color: white;
+ font-weight: 500;
+ border-left-color: #2ecc71;
+ box-shadow: 0 2px 8px rgba(57, 189, 167, 0.3);
+}
+
+/* Scrollbar styling for sidebar */
+.docs-sidebar::-webkit-scrollbar {
+ width: 8px;
+}
+
+.docs-sidebar::-webkit-scrollbar-track {
+ background: #f0f0f0;
+}
+
+.docs-sidebar::-webkit-scrollbar-thumb {
+ background: #39bda7;
+ border-radius: 4px;
+}
+
+.docs-sidebar::-webkit-scrollbar-thumb:hover {
+ background: #2ecc71;
+}
+
+/* Sidebar Footer */
+.sidebar-footer {
+ margin-top: 1rem;
+ padding-top: 1rem;
+ padding-bottom: 0.5rem;
+ border-top: 1px solid #e1e4e8;
+ flex-shrink: 0;
+ background-color: #f8f9fa;
+}
+
+.github-link {
+ display: flex;
+ align-items: center;
+ gap: 0.5rem;
+ padding: 0.75rem 1rem;
+ color: #555;
+ text-decoration: none;
+ border-radius: 6px;
+ transition: all 0.3s ease;
+ font-size: 1rem;
+ font-weight: 500;
+}
+
+.github-link:hover {
+ background-color: #e8eaed;
+ color: #111;
+}
+
+.github-icon {
+ flex-shrink: 0;
+}
+
+/* Main Content - Centered with left margin for sidebar */
+.docs-content {
+ flex: 1;
+ margin-left: 380px;
+ /* Same as sidebar width */
+ padding: 40px 100px 40px 100px;
+ max-width: calc(100vw - 380px);
+ width: 100%;
+}
+
+/* Override minima wrapper inside docs-content */
+.docs-content .wrapper {
+ max-width: 1200px;
+ margin: 0;
+ padding: 0;
+}
+
+.docs-content .home,
+.docs-content .post {
+ max-width: 1200px;
+}
+
+.docs-content .post-content,
+.docs-content .home {
+ font-size: 18px;
+ line-height: 1.8;
+}
+
+.docs-content h1 {
+ font-size: 2.75rem;
+ margin-bottom: 1.5rem;
+ color: #111;
+ font-weight: 600;
+}
+
+.docs-content h2 {
+ font-size: 2rem;
+ margin-top: 2.5rem;
+ margin-bottom: 1rem;
+ color: #111;
+ font-weight: 600;
+}
+
+.docs-content h3 {
+ font-size: 1.5rem;
+ margin-top: 1.75rem;
+ margin-bottom: 0.75rem;
+ color: #111;
+ font-weight: 600;
+}
+
+.docs-content p {
+ margin-bottom: 1.3rem;
+}
+
+.docs-content code {
+ font-size: 0.95em;
+ padding: 0.2em 0.4em;
+ background-color: #f6f8fa;
+ border-radius: 3px;
+}
+
+.docs-content pre {
+ padding: 18px;
+ overflow: auto;
+ font-size: 15px;
+ line-height: 1.5;
+ background-color: #f6f8fa;
+ border-radius: 6px;
+}
+
+/* Responsive */
+@media (max-width: 1024px) {
+ .docs-sidebar {
+ width: 300px;
+ }
+
+ .docs-content {
+ margin-left: 300px;
+ padding: 30px 50px;
+ }
+}
+
+@media (max-width: 768px) {
+ .docs-sidebar {
+ width: 100%;
+ position: static;
+ height: auto;
+ border-right: none;
+ border-bottom: 1px solid #e1e4e8;
+ }
+
+ .docs-content {
+ margin-left: 0;
+ padding: 20px;
+ }
+}
\ No newline at end of file
diff --git a/docs/gridwise/architecture.md b/docs/gridwise/architecture.md
index f756abd..447f7cf 100644
--- a/docs/gridwise/architecture.md
+++ b/docs/gridwise/architecture.md
@@ -1,7 +1,10 @@
---
-layout: post
+layout: page
title: "Gridwise Architecture"
-date: 2025-08-12
+category: gridwise
+permalink: /gridwise/architecture/
+excerpt: "Overview of Gridwise's core architecture, including Primitives and Buffers, and how they provide best-in-class WebGPU compute performance."
+order: 1
---
The primary goal of Gridwise is to deliver best-in-class performance on WebGPU compute primitives while minimizing the amount of code that must be written by the library user. Ideally, a Gridwise user will declare and then execute a primitive and Gridwise will handle all low-level details of setting up and calling the necessary WebGPU primitives.
diff --git a/docs/gridwise/binop.md b/docs/gridwise/binop.md
index 723835f..f66e1c4 100644
--- a/docs/gridwise/binop.md
+++ b/docs/gridwise/binop.md
@@ -1,7 +1,10 @@
---
-layout: post
+layout: page
title: "Gridwise's Binary Operator Class"
-date: 2025-09-16
+category: gridwise
+permalink: /gridwise/binop/
+excerpt: "Understanding the BinOp class that represents monoids with binary operations, datatypes, and identity elements for use in primitives."
+order: 3
---
Gridwise's binary operator class is called `binop`. This class represents a [monoid](https://en.wikipedia.org/wiki/Monoid), which has as its constituent parts a binary operation, a datatype for the data on which the operator is applied, and an identity element. (If we call the identity element `I` and the operator `op`, then `x = I op x`. For instance, addition's identity is zero, and multiplication's is one.) In Gridwise, we package these elements into an instance of a JS class, `BinOp`. This class then defines a number of objects that are used in WGSL code generation and CPU correctness checking.
diff --git a/docs/gridwise/buffer.md b/docs/gridwise/buffer.md
index ddee0e6..b14533e 100644
--- a/docs/gridwise/buffer.md
+++ b/docs/gridwise/buffer.md
@@ -1,7 +1,10 @@
---
-layout: post
+layout: page
title: "Gridwise's Buffer Class"
-date: 2025-09-16
+category: gridwise
+permalink: /gridwise/buffer/
+excerpt: "The Buffer class encapsulates data that spans both CPU (typed arrays) and GPU (GPUBuffer), providing a unified interface for data management."
+order: 2
---
During Gridwise's development, we found a need to encapsulate the concept of a single wad of data that spans CPU and GPU. We call this class `Buffer`. It contains both a CPU-side JS typed array and a GPU-side `GPUBuffer`. The abstraction is that these two objects are (roughly) consistent with each other (they are not meant to store two logically different objects).
diff --git a/docs/gridwise/builtins-strategy.md b/docs/gridwise/builtins-strategy.md
index 218a25f..eb2361b 100644
--- a/docs/gridwise/builtins-strategy.md
+++ b/docs/gridwise/builtins-strategy.md
@@ -1,5 +1,8 @@
---
-layout: post
+layout: page
title: "Gridwise WebGPU @builtins Strategy"
-date: 2025-08-22
+category: gridwise
+permalink: /gridwise/builtins-strategy/
+excerpt: "Exploring the use of WGSL @builtin functions in Gridwise for optimal WebGPU primitive performance."
+order: 6
---
diff --git a/docs/gridwise/primitive-design.md b/docs/gridwise/primitive-design.md
index a59317f..0e315be 100644
--- a/docs/gridwise/primitive-design.md
+++ b/docs/gridwise/primitive-design.md
@@ -1,7 +1,10 @@
---
-layout: post
+layout: page
title: "Gridwise WebGPU Primitive Strategy wrt Subgroups"
-date: 2025-08-21
+category: gridwise
+permalink: /gridwise/primitive-design/
+excerpt: "How Gridwise implements single-pass chained algorithms for sort, scan, and reduce with and without subgroup support."
+order: 7
---
We wish to implement WebGPU sort, scan, and reduce. The fastest known GPU techniques for these operations are single-pass (chained) algorithms that minimize overall memory bandwidth. However, these techniques have historically been written using warp/subgroup support, and that subgroup support appears to be critical for their high performance. This document looks at the different considerations for different primitive implementations.
diff --git a/docs/gridwise/scan-and-reduce.md b/docs/gridwise/scan-and-reduce.md
index 862a276..99475fa 100644
--- a/docs/gridwise/scan-and-reduce.md
+++ b/docs/gridwise/scan-and-reduce.md
@@ -1,7 +1,10 @@
---
-layout: post
+layout: page
title: "Gridwise Scan and Reduce"
-date: 2025-09-16
+category: gridwise
+permalink: /gridwise/scan-and-reduce/
+excerpt: "Implementation details of scan (parallel prefix) and reduce operations in Gridwise, including our SPAA 2025 paper findings."
+order: 4
---
[Scan](https://en.wikipedia.org/wiki/Prefix_sum) (parallel prefix) is a fundamental parallel compute primitive useful in both other primitives as well as a wide range of application domains. (The [Wikipedia page](https://en.wikipedia.org/wiki/Prefix_sum#Applications) describes many possible uses of scan.) Here we describe how our implementation works and how it is used in Gridwise. We published a [paper on our scan implementation](https://dl.acm.org/doi/10.1145/3694906.3743326) at SPAA 2025. Here we instead aim for a higher-level, more informal description of our implementation.
diff --git a/docs/gridwise/sort.md b/docs/gridwise/sort.md
index 095fb59..b6e4c5c 100644
--- a/docs/gridwise/sort.md
+++ b/docs/gridwise/sort.md
@@ -1,7 +1,10 @@
---
-layout: post
+layout: page
title: "Gridwise Sort"
-date: 2025-09-16
+category: gridwise
+permalink: /gridwise/sort/
+excerpt: "GPU radix sort implementation using the OneSweep architecture with chained scan and forward-progress guarantees."
+order: 5
---
The dominant approach to GPU sorting is a [radix sort](https://en.wikipedia.org/wiki/Radix_sort) over input keys. In general, radix sorts deliver high performance on GPUs because they require _O(n)_ work for inputs of _n_ elements, because their constituent memory accesses are generally fairly coalesced and thus deliver good memory performance, and because the underlying compute primitives that compose to make the sort are good matches for GPUs.
diff --git a/docs/gridwise/subgroup-strategy.md b/docs/gridwise/subgroup-strategy.md
index 88b0ec9..82964dd 100644
--- a/docs/gridwise/subgroup-strategy.md
+++ b/docs/gridwise/subgroup-strategy.md
@@ -1,7 +1,10 @@
---
-layout: post
+layout: page
title: "Gridwise WebGPU Subgroup Emulation Strategy"
-date: 2025-08-18
+category: gridwise
+permalink: /gridwise/subgroup-strategy/
+excerpt: "Strategies for writing high-performance code that uses WGSL subgroups when available and falls back to emulation when not."
+order: 8
---
WGSL's [subgroup built-in functions](https://gpuweb.github.io/gpuweb/wgsl/#subgroup-builtin-functions) have the potential to significantly improve performance on subgroup-capable hardware. A [large (and growing) fraction of WebGPU devices](https://web3dsurvey.com/webgpu) support subgroups. However, writing high-performance code that supports both using subgroups when available _and_ falls back to code with no subgroups is a challenge. This document describes my experience attempting to do exactly that.
diff --git a/docs/gridwise/timing-strategy.md b/docs/gridwise/timing-strategy.md
index ff017bd..601beab 100644
--- a/docs/gridwise/timing-strategy.md
+++ b/docs/gridwise/timing-strategy.md
@@ -1,7 +1,10 @@
---
-layout: post
+layout: page
title: "Gridwise WebGPU Timing Strategy"
-date: 2025-08-12
+category: gridwise
+permalink: /gridwise/timing-strategy/
+excerpt: "CPU and GPU timing methodologies for measuring and optimizing WebGPU primitive performance in Gridwise."
+order: 10
---
Building a high-performance WebGPU primitive library requires careful timing measurements to ensure that primitives deliver high performance to their users. In developing Gridwise, we designed both CPU and GPU timing methodologies and describe them here.
diff --git a/docs/gridwise/webgpu-object-caching-strategy.md b/docs/gridwise/webgpu-object-caching-strategy.md
index 8b7637b..9e8a8cb 100644
--- a/docs/gridwise/webgpu-object-caching-strategy.md
+++ b/docs/gridwise/webgpu-object-caching-strategy.md
@@ -1,7 +1,10 @@
---
-layout: post
+layout: page
title: "Gridwise WebGPU Object Caching Strategy"
-date: 2025-08-12
+category: gridwise
+permalink: /gridwise/webgpu-object-caching-strategy/
+excerpt: "How Gridwise caches WebGPU objects to improve performance by avoiding expensive object recreation."
+order: 9
---
## Gridwise WebGPU Object Caching Strategy
diff --git a/docs/gridwise/writing-a-webgpu-wgsl-workgroup-reduce-function.md b/docs/gridwise/writing-a-webgpu-wgsl-workgroup-reduce-function.md
index 6790a80..4265ce4 100644
--- a/docs/gridwise/writing-a-webgpu-wgsl-workgroup-reduce-function.md
+++ b/docs/gridwise/writing-a-webgpu-wgsl-workgroup-reduce-function.md
@@ -1,7 +1,10 @@
---
-layout: post
+layout: page
title: "Abstraction Challenges in Writing a WebGPU/WGSL Workgroup Reduce Function"
-date: 2025-04-08
+category: gridwise
+permalink: /gridwise/writing-a-webgpu-wgsl-workgroup-reduce-function/
+excerpt: "A practical walkthrough of implementing a workgroupReduce function in WGSL, exploring language challenges and abstraction pain points."
+order: 11
---
In this post, we'll walk through the process of writing a `workgroupReduce` function in WGSL. We write this function as if we were a library writer who would implement `workgroupReduce` with the intent that other unknown developers will call our function. Our goal is to explore the WGSL issues facing the library writer. Through this practical example of creating a `reduceWorkgroup` function, we will identify and discuss several pain points in the language.
diff --git a/docs/index.markdown b/docs/index.markdown
index 0671507..e4d427d 100644
--- a/docs/index.markdown
+++ b/docs/index.markdown
@@ -1,6 +1,3 @@
---
-# Feel free to add content and custom Front Matter to this file.
-# To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
-
layout: home
---
diff --git a/docs/updating-your-site-links.txt b/docs/updating-your-site-links.txt
deleted file mode 100644
index b5c913c..0000000
--- a/docs/updating-your-site-links.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-## The Crucial Next Step: Updating Your Site's Links 🔗
-Simply changing the _config.yml file is only half the battle. You must ensure your site's templates use these variables. If your links are hardcoded, they will break.
-
-You need to go through your layout files (_layouts), includes (_includes), and any other HTML or Markdown files to make sure all internal links and asset paths are prepended with {{ site.baseurl }}.
-
-Here are some examples of what to look for and how to fix them:
-
-CSS Stylesheets:
-
-Incorrect:
-
-Correct:
-
-JavaScript Files:
-
-Incorrect:
-
-Correct:
-
-Image Paths:
-
-Incorrect:
-
-Correct:
-
-Internal Page Links:
-
-Incorrect: About Us
-
-Correct: About Us
-
-By using {{ site.baseurl }}, you make your site portable. Jekyll will automatically insert /gridwise when building for your project site and an empty string if you ever move it back to an organization/user site.