diff --git a/.editorconfig b/.editorconfig
deleted file mode 100644
index ae2ebfee..00000000
--- a/.editorconfig
+++ /dev/null
@@ -1,9 +0,0 @@
-root = true
-
-[*]
-charset = utf-8
-indent_style = space
-indent_size = 2
-end_of_line = lf
-trim_trailing_whitespace = true
-insert_final_newline = true
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index fcb2476d..00000000
--- a/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-_site
-.sass-cache
-.jekyll-metadata
-.jekyll-cache
diff --git a/DEPLOYMENT-GUIDE.md b/DEPLOYMENT-GUIDE.md
new file mode 100644
index 00000000..4fa2e881
--- /dev/null
+++ b/DEPLOYMENT-GUIDE.md
@@ -0,0 +1,44 @@
+# Portfolio Deployment Guide
+
+## How to deploy to ireney2050.github.io
+
+### Option A: Replace your existing repo contents
+1. Back up your current repo (or create a branch)
+2. Delete all existing files in your `ireney2050.github.io` repo
+3. Copy all files from this `portfolio/` folder into the repo root
+4. Commit and push — GitHub Pages will build automatically
+
+### Option B: Fresh start
+1. Clone your repo: `git clone https://github.com/ireney2050/ireney2050.github.io.git`
+2. Remove old files, copy in the new portfolio files
+3. Push to `main` branch
+
+### Testing locally (optional)
+```bash
+cd portfolio
+bundle install
+bundle exec jekyll serve
+```
+Then visit http://localhost:4000
+
+## File structure
+```
+_config.yml # Jekyll configuration
+_layouts/
+ default.html # Base HTML layout
+ project.html # Individual project page layout
+_includes/
+ nav.html # Navigation bar
+ footer.html # Footer
+_projects/ # One .md file per project (8 total)
+assets/css/
+ style.css # All styles
+index.html # Homepage (hero, skills, projects, experience, contact)
+Gemfile # Ruby dependencies
+```
+
+## Customisation notes
+- To add your resume as a download: place the PDF in `assets/` and add a button link in the hero section
+- To add a headshot: place the image in `assets/` and add an `
` tag in the hero section
+- Colours can be changed via CSS variables at the top of `style.css`
+- To add/remove projects: create/delete files in `_projects/` and update `index.html`
diff --git a/Gemfile b/Gemfile
index f592fca6..1e4dda04 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,7 +1,8 @@
-# frozen_string_literal: true
-
source "https://rubygems.org"
-gemspec
-gem "jekyll", ENV["JEKYLL_VERSION"] if ENV["JEKYLL_VERSION"]
-gem "webrick", "~> 1.7"
+gem "jekyll", "~> 4.3"
+gem "kramdown-parser-gfm"
+
+group :jekyll_plugins do
+ gem "jekyll-seo-tag"
+end
diff --git a/Gemfile.lock b/Gemfile.lock
deleted file mode 100644
index 541520b8..00000000
--- a/Gemfile.lock
+++ /dev/null
@@ -1,76 +0,0 @@
-PATH
- remote: .
- specs:
- voyager (1.0.0)
- jekyll (>= 3.5, < 5.0)
-
-GEM
- remote: https://rubygems.org/
- specs:
- addressable (2.8.0)
- public_suffix (>= 2.0.2, < 5.0)
- colorator (1.1.0)
- concurrent-ruby (1.1.9)
- em-websocket (0.5.2)
- eventmachine (>= 0.12.9)
- http_parser.rb (~> 0.6.0)
- eventmachine (1.2.7)
- ffi (1.15.4)
- forwardable-extended (2.6.0)
- http_parser.rb (0.6.0)
- i18n (1.8.10)
- concurrent-ruby (~> 1.0)
- jekyll (4.2.0)
- addressable (~> 2.4)
- colorator (~> 1.0)
- em-websocket (~> 0.5)
- i18n (~> 1.0)
- jekyll-sass-converter (~> 2.0)
- jekyll-watch (~> 2.0)
- kramdown (~> 2.3)
- kramdown-parser-gfm (~> 1.0)
- liquid (~> 4.0)
- mercenary (~> 0.4.0)
- pathutil (~> 0.9)
- rouge (~> 3.0)
- safe_yaml (~> 1.0)
- terminal-table (~> 2.0)
- jekyll-sass-converter (2.1.0)
- sassc (> 2.0.1, < 3.0)
- jekyll-watch (2.2.1)
- listen (~> 3.0)
- kramdown (2.3.1)
- rexml
- kramdown-parser-gfm (1.1.0)
- kramdown (~> 2.0)
- liquid (4.0.3)
- listen (3.7.0)
- rb-fsevent (~> 0.10, >= 0.10.3)
- rb-inotify (~> 0.9, >= 0.9.10)
- mercenary (0.4.0)
- pathutil (0.16.2)
- forwardable-extended (~> 2.6)
- public_suffix (4.0.6)
- rb-fsevent (0.11.0)
- rb-inotify (0.10.1)
- ffi (~> 1.0)
- rexml (3.2.5)
- rouge (3.26.1)
- safe_yaml (1.0.5)
- sassc (2.4.0)
- ffi (~> 1.9)
- terminal-table (2.0.0)
- unicode-display_width (~> 1.1, >= 1.1.1)
- unicode-display_width (1.8.0)
- webrick (1.7.0)
-
-PLATFORMS
- x86_64-darwin-20
-
-DEPENDENCIES
- bundler
- voyager!
- webrick (~> 1.7)
-
-BUNDLED WITH
- 2.2.28
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 7e3f319c..00000000
--- a/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2021 redVi
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/README.md b/README.md
deleted file mode 100644
index 1b856e6e..00000000
--- a/README.md
+++ /dev/null
@@ -1,73 +0,0 @@
-## Voyager
-
-Just another jekyll theme. Demo:
-
-### Feathures:
-
-All HTML files are compressed (see `_layouts/compress.html`).
-
-**Post**
-
-All post settings can be changed. Example:
-
-```
----
-layout: post
-bg: '2016/background.jpg'
-title: "Post Heading"
-crawlertitle: "page title"
-summary: "post description"
-date: 2016-06-29
-tags : ['front-end']
-slug: post-url
-author: "Author"
-categories: posts
----
-```
-
-`bg` is a path to background of your article. By default backgrounds are placed in the `assets/images` directory.
-
-**Page**
-
-If page contains `active` tag, it will be show on site menu.
-
-```
----
-layout: page
-title: "About"
-permalink: /about/
-active: about
----
-```
-
-**Archive**
-
-Archive page is sorting posts by tags. No more than one tag in one post.
-
-Good:
-
-```
-tags : ['front-end']
-```
-
-Bad:
-
-```
-tags : ['front-end', 'jekyll']
-```
-
-Don't forget to change `_config.yml`.
-
-**Relative paths**
-
-If your blog is not in the root directory, you can include images with a relative path. For example:
-
-```
-
-```
-
-## Production environment
-
-Build for production:
-
-`JEKYLL_ENV=production jekyll build`
diff --git a/_config.yml b/_config.yml
index 6a088d1b..32861f6f 100644
--- a/_config.yml
+++ b/_config.yml
@@ -1,43 +1,32 @@
-# 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 need to edit after that.
-# For technical reasons, this file is *NOT* reloaded automatically when you use
-# 'jekyll serve'. If you change this file, please restart the server process.
-
# Site settings
-title: Your awesome title
-email: your-email@domain.com
-description: > # this means to ignore newlines until "baseurl:"
- Write an awesome description for your new site here. You can edit this
- line in _config.yml. It will appear in your document head meta (for
- Google search results) and in your feed.xml site description.
-baseurl: "" # the subpath of your site, e.g. /blog
-lang: "en"
-url: "http://localhost:4000" # the base hostname & protocol for your site
-twitter_username: jekyllrb
-github_username: jekyll
-disqus_username:
+title: Irene Yuan | Data & Analytics
+description: "Portfolio of Irene Yuan — Data Analyst specialising in customer analytics, BI, and applied AI."
+url: "https://ireney2050.github.io"
+baseurl: ""
+
+# Collections
+collections:
+ projects:
+ output: true
+ permalink: /projects/:path/
# Build settings
markdown: kramdown
-permalink: /:categories/:title/
-
-# Posts settings
-future: true
-safe: false
-lsi: false
-excerpt_separator: "\n\n"
-
-# Theme settings
-compress_html:
- comments: [""]
- clippings: all
- endings: all
-
-
-sass:
- style: compressed
-
-
-images: '/assets/images'
+highlighter: rouge
+kramdown:
+ input: GFM
+ syntax_highlighter: rouge
+
+# Defaults
+defaults:
+ - scope:
+ path: ""
+ type: "projects"
+ values:
+ layout: "project"
+
+# Exclude
+exclude:
+ - README.md
+ - Gemfile
+ - Gemfile.lock
diff --git a/_includes/aside.html b/_includes/aside.html
deleted file mode 100644
index 2b8671a7..00000000
--- a/_includes/aside.html
+++ /dev/null
@@ -1,33 +0,0 @@
-{% if page.bg %}
-