diff --git a/_layouts/homepage.html b/_layouts/homepage.html
new file mode 100644
index 000000000000..c26ae1708bf4
--- /dev/null
+++ b/_layouts/homepage.html
@@ -0,0 +1,99 @@
+---
+---
+{%- assign locale = page.locale | default: layout.locale | default: site.locale -%}
+{%- assign profile = site.data.profile -%}
+{%- unless profile -%}
+ {%- assign profile = site.author -%}
+{%- endunless -%}
+{%- assign profile_name = profile.name | default: site.name | default: site.title -%}
+{%- assign profile_headline = profile.headline | default: site.subtitle -%}
+{%- assign profile_avatar = profile.avatar -%}
+{%- assign profile_avatar_alt = profile.avatar_alt | default: profile_name -%}
+{%- assign profile_email = profile.email -%}
+
+
+{% include copyright.html %}
+
+
+ {% include head.html locale=locale %}
+ {% include head/custom.html %}
+
+
+
+
+
+
+
+
+
+
+ {% if profile_avatar %}
+
+
+
+ {% endif %}
+
+ {{ profile_name }}
+
+ {% if profile_headline %}
+ {{ profile_headline }}
+ {% endif %}
+
+ {% if profile.affiliation %}
+ {{ profile.affiliation }}
+ {% endif %}
+
+ {% if profile.location %}
+ {{ profile.location }}
+ {% endif %}
+
+ {% if profile_email %}
+
+ {{ profile_email }}
+
+ {% endif %}
+
+ {% if profile.links %}
+
+ {% for link in profile.links %}
+ {% if link.url %}
+ {% assign icon_class = link.icon %}
+ {% unless icon_class contains 'fa' %}
+ {% case icon_class %}
+ {% when 'envelope' %}
+ {% assign icon_class = 'fas fa-envelope' %}
+ {% when 'github' %}
+ {% assign icon_class = 'fab fa-github' %}
+ {% when 'x-twitter' %}
+ {% assign icon_class = 'fab fa-x-twitter' %}
+ {% when 'twitter' %}
+ {% assign icon_class = 'fab fa-twitter' %}
+ {% when 'linkedin' %}
+ {% assign icon_class = 'fab fa-linkedin' %}
+ {% when 'google-scholar' %}
+ {% assign icon_class = 'ai ai-google-scholar' %}
+ {% when 'cv' %}
+ {% assign icon_class = 'ai ai-cv' %}
+ {% else %}
+ {% assign icon_class = 'fas fa-link' %}
+ {% endcase %}
+ {% endunless %}
+
+
+
+ {% endif %}
+ {% endfor %}
+
+ {% endif %}
+
+
+
+ {{ content }}
+
+
+
+ {% include scripts.html locale=locale %}
+
+
diff --git a/assets/css/homepage.scss b/assets/css/homepage.scss
new file mode 100644
index 000000000000..a94498678c1d
--- /dev/null
+++ b/assets/css/homepage.scss
@@ -0,0 +1,214 @@
+---
+---
+
+body.layout--homepage {
+ background: #fff;
+ color: #222;
+}
+
+.homepage-wrapper {
+ width: calc(100% - 48px);
+ max-width: 1120px;
+ min-height: 100vh;
+ margin: 0 auto;
+ display: grid;
+ grid-template-columns: 260px minmax(0, 1fr);
+ gap: 64px;
+}
+
+.homepage-profile {
+ position: sticky;
+ top: 64px;
+ align-self: start;
+ padding-top: 64px;
+ text-align: center;
+}
+
+.homepage-avatar {
+ display: inline-block;
+ width: 168px;
+ height: 168px;
+ margin-bottom: 24px;
+ border-radius: 20%;
+ overflow: hidden;
+}
+
+.homepage-avatar img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ display: block;
+}
+
+.homepage-name {
+ margin: 0 0 12px;
+ color: #043361;
+ font-size: 28px;
+ font-weight: 500;
+ line-height: 1.15;
+}
+
+.homepage-headline,
+.homepage-affiliation,
+.homepage-location,
+.homepage-email {
+ margin: 0 0 8px;
+ color: #4f5d67;
+ font-size: 16px;
+ line-height: 1.45;
+}
+
+.homepage-email a,
+.homepage-content a {
+ color: #2476a8;
+ text-decoration: none;
+}
+
+.homepage-email a:hover,
+.homepage-content a:hover {
+ color: #095b86;
+ text-decoration: underline;
+}
+
+.homepage-social-links {
+ display: flex;
+ justify-content: center;
+ gap: 8px;
+ margin-top: 20px;
+}
+
+.homepage-social-links a {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ width: 40px;
+ height: 40px;
+ border: 1px solid #ccd7de;
+ border-radius: 50%;
+ color: #043361;
+ text-decoration: none;
+ transition: transform 120ms ease, border-color 120ms ease, color 120ms ease;
+}
+
+.homepage-social-links a:hover {
+ transform: translateY(-1px);
+ border-color: #2476a8;
+ color: #2476a8;
+}
+
+.homepage-content {
+ max-width: 800px;
+ padding: 64px 0 56px;
+ font-size: 17px;
+ line-height: 1.72;
+}
+
+.homepage-content h1,
+.homepage-content h2,
+.homepage-content h3 {
+ color: #043361;
+ line-height: 1.18;
+}
+
+.homepage-content h1 {
+ margin: 0 0 24px;
+ font-size: 32px;
+ font-weight: 500;
+}
+
+.homepage-content h2 {
+ margin: 32px 0 16px;
+ font-size: 26px;
+ font-weight: 500;
+}
+
+.homepage-content h3 {
+ margin: 28px 0 14px;
+ font-size: 20px;
+ font-weight: 600;
+}
+
+.homepage-content p,
+.homepage-content ul,
+.homepage-content ol {
+ margin: 0 0 20px;
+}
+
+@media (prefers-color-scheme: dark) {
+ body.layout--homepage {
+ background: #20212b;
+ color: #dadbdf;
+ }
+
+ .homepage-name,
+ .homepage-content h1,
+ .homepage-content h2,
+ .homepage-content h3 {
+ color: #3eb7f0;
+ }
+
+ .homepage-headline,
+ .homepage-affiliation,
+ .homepage-location,
+ .homepage-email {
+ color: #c8d0d6;
+ }
+
+ .homepage-email a,
+ .homepage-content a {
+ color: #64c5f2;
+ }
+
+ .homepage-email a:hover,
+ .homepage-content a:hover {
+ color: #93d8f7;
+ }
+
+ .homepage-social-links a {
+ border-color: #53616b;
+ color: #64c5f2;
+ }
+
+ .homepage-social-links a:hover {
+ border-color: #93d8f7;
+ color: #93d8f7;
+ }
+}
+
+@media print, screen and (max-width: 960px) {
+ .homepage-wrapper {
+ width: calc(100% - 32px);
+ max-width: none;
+ display: block;
+ }
+
+ .homepage-profile {
+ position: static;
+ padding: 32px 0 24px;
+ border-bottom: 1px solid #e5e5e5;
+ }
+
+ .homepage-content {
+ max-width: none;
+ padding: 28px 0 40px;
+ }
+}
+
+@media print, screen and (max-width: 480px) {
+ .homepage-wrapper {
+ width: calc(100% - 24px);
+ }
+
+ .homepage-avatar {
+ width: 120px;
+ height: 120px;
+ }
+
+ .homepage-name {
+ font-size: 26px;
+ }
+
+ .homepage-content {
+ font-size: 16px;
+ }
+}
diff --git a/index.html b/index.html
index 920bbda0460d..5977bf8931ea 100644
--- a/index.html
+++ b/index.html
@@ -1,6 +1,36 @@
---
-layout: home
-author_profile: true
-sidebar:
- nav: "sidebar-category"
+layout: homepage
+title: "Home"
---
+
+About Me
+
+Hello. My name is Junbo Koh, and I am an ongoing learner, practitioner, and researcher in Educational Technology at Seoul National University.
+
+I use this site as a learning archive for ideas I want to keep revisiting: software development, learning experience design, human-computer interaction, and generative AI. The notes here are intentionally practical. They help me connect what I study with what I build, teach, and evaluate.
+
+My current focus is understanding how people learn with emerging technologies, and how AI-supported tools can help learners reason, practice, reflect, and collaborate more effectively.
+
+
+
+Interests
+
+
+ Learning experience design: designing learning environments that support practice, feedback, reflection, and transfer.
+ Human-computer interaction: understanding how people make sense of interactive systems and where usability breaks down.
+ Generative AI and LLMs: exploring how language models can support learning, writing, inquiry, and tool use.
+ Software craftsmanship: building reliable systems while keeping implementation choices understandable and maintainable.
+
+
+Learning Topics
+
+
+ LLM : notes on generative AI, transformer models, prompt engineering, fine-tuning, and RLHF.
+ HCI : notes on interaction design, feedback cycles, mental models, task analysis, and design principles.
+ Instructional Systems Design : notes on problem analysis, needs assessment, and instructional design foundations.
+ Deep Learning for Coders : notes from practical deep learning study with fastai and PyTorch.
+
+
+Research Interests
+
+I am interested in the intersection of learning sciences, educational technology, and human-centered AI. More specifically, I want to study how learners interact with intelligent tools, how those tools shape learning processes, and how design decisions can make AI systems more explainable, useful, and accountable in educational contexts.