Configuration Map

The entire “Thick-Client Serverless” architecture revolves around a single configuration file: _data/site_config.yml.

Editing this file alters the behavior, routing, and data-fetching of the live website without requiring JavaScript modifications.

Understanding site_config.yml

This file is written in YAML. Indentation is critical.

1. Global Settings

API_KEY: "AIzaSy..."

2. Folder IDs (FOLDER_IDS)

This block maps physical Google Drive folders to logic in the UI.

FOLDER_IDS:
  certificates: '1vXU0c...'
  newsletters: '14OT-O...'
  gallery: '1vXU0c...'

3. Study Material Folder IDs

FOLDER_IDS:
  pyq:
    sem_1:
      cse: '1ABC...'
      math: '1DEF...'

4. YouTube Playlist IDs (PLAYLIST_IDS)

PLAYLIST_IDS:
  c_programming: 'PLxyz...'
  dbms: 'PLabc...'

How It Reaches the Browser

You might wonder how a .yml file is read by the browser.

Jekyll compiles this file via a Liquid template located at assets/js/config.js:

// Jekyll translates the YAML into a raw JS JSON object during build
window.CONFIG = {"API_KEY":"AIza...","FOLDER_IDS":{...}};

Every other .js file relies on window.CONFIG existing. If you introduce a YAML syntax error in site_config.yml, Jekyll will fail to build, and the site deployment will crash. Always validate your YAML before pushing.