# Client-Side JavaScript Libraries Powering the Resume GitHub Project

> Discover the client-side JavaScript libraries powering the resume.github.com project including jQuery, Mustache, and HTML5 Shiv for enhanced functionality and broader browser compatibility.

- Repository: [GitHub resume generator/resume.github.com](https://github.com/resume/resume.github.com)
- Tags: how-to-guide
- Published: 2026-03-04

---

**The resume.github.com project relies on jQuery 2.1.4 for DOM manipulation and AJAX requests, Mustache 0.3.0 for logic-less templating, and HTML5 Shiv 3.7.0 for legacy IE support, all loaded via CDN with local fallbacks.**

The open-source repository `resume/resume.github.com` generates dynamic résumés from GitHub data using only browser-based execution. This article examines the specific **client-side JavaScript libraries** that drive the application’s data fetching, template rendering, and cross-browser compatibility.

## Core Client-Side JavaScript Libraries

The project employs a minimal stack of production-grade libraries loaded directly in [`index.html`](https://github.com/resume/resume.github.com/blob/main/index.html).

### jQuery 2.1.4 for DOM Manipulation and AJAX

**jQuery** handles all DOM operations, event binding, and asynchronous GitHub API requests. The library loads from Google’s CDN with a local fallback bundled in the repository.

In [`index.html`](https://github.com/resume/resume.github.com/blob/main/index.html) at lines 14–15, the loading mechanism appears as:

```html
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-2.1.4.min.js"><\/script>')</script>

```

The fallback ensures functionality even if the CDN is unreachable, referencing the vendored file at [`js/vendor/jquery-2.1.4.min.js`](https://github.com/resume/resume.github.com/blob/main/js/vendor/jquery-2.1.4.min.js).

### Mustache 0.3.0 for Logic-Less Templating

**Mustache.js** renders the résumé views dynamically without embedding logic in the templates. The library loads from CDNJS at line 16 of [`index.html`](https://github.com/resume/resume.github.com/blob/main/index.html):

```html
<script src="https://cdnjs.cloudflare.com/ajax/libs/mustache.js/0.3.0/mustache.min.js"></script>

```

Template files reside in the `views/` directory (e.g., [`views/resume.html`](https://github.com/resume/resume.github.com/blob/main/views/resume.html), [`views/job.html`](https://github.com/resume/resume.github.com/blob/main/views/job.html)). The application fetches these templates via AJAX and merges them with GitHub data using `Mustache.to_html()`.

### HTML5 Shiv 3.7.0 for Legacy Internet Explorer Support

**HTML5 Shiv** enables styling of HTML5 semantic elements in older IE versions. This library loads conditionally at line 7 of [`index.html`](https://github.com/resume/resume.github.com/blob/main/index.html):

```html
<!--[if lt IE 9]>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.0/html5shiv.min.js"></script>
<![endif]-->

```

This conditional comment ensures the shiv only downloads for browsers that require it.

## Application Architecture and Integration

The custom **orchestration script** [`js/githubresume.js`](https://github.com/resume/resume.github.com/blob/main/js/githubresume.js) (loaded at line 17 of [`index.html`](https://github.com/resume/resume.github.com/blob/main/index.html)) coordinates all library interactions. This file parses URL parameters, constructs GitHub API endpoints, normalizes response data, and invokes Mustache rendering.

### Rendering Templates with Mustache

The following pattern from [`githubresume.js`](https://github.com/resume/resume.github.com/blob/main/githubresume.js) demonstrates how the application combines jQuery’s AJAX capabilities with Mustache templating:

```javascript
$.ajax({
  url: resume,               // Template path, e.g., views/resume.html
  dataType: 'html',
  success: function(data) {
    var html = Mustache.to_html(data, view);   // view = GitHub data object
    $('#resume').html(html);
  }
});

```

### Fetching GitHub Data via jQuery

The project uses jQuery’s `$.getJSON` method with JSONP callbacks to bypass cross-origin restrictions when querying the GitHub API:

```javascript
$.getJSON('https://api.github.com/users/' + username + '?callback=?', function(data) {
  // Process user profile payload
});

```

## Summary

- **jQuery 2.1.4** powers DOM manipulation, event handling, and AJAX requests to the GitHub API, loaded from Google’s CDN with a local fallback at [`js/vendor/jquery-2.1.4.min.js`](https://github.com/resume/resume.github.com/blob/main/js/vendor/jquery-2.1.4.min.js).
- **Mustache 0.3.0** provides logic-less templating for dynamic résumé generation, fetching templates from the `views/` directory.
- **HTML5 Shiv 3.7.0** conditionally loads for IE compatibility to support HTML5 element styling.
- **githubresume.js** acts as the central controller, initializing API calls and rendering views without any server-side processing.

## Frequently Asked Questions

### What version of jQuery does resume.github.com use?

The project uses **jQuery 2.1.4**, sourced from Google’s CDN at `https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js` with a bundled fallback in [`js/vendor/jquery-2.1.4.min.js`](https://github.com/resume/resume.github.com/blob/main/js/vendor/jquery-2.1.4.min.js).

### How does the project handle CDN failures?

[`index.html`](https://github.com/resume/resume.github.com/blob/main/index.html) implements a **local fallback pattern** for jQuery. If `window.jQuery` is undefined after attempting to load from Google’s CDN, the document writes a new script tag pointing to the vendored copy in `js/vendor/`.

### What templating engine does the resume project use?

The application uses **Mustache.js version 0.3.0** for logic-less templating. The [`githubresume.js`](https://github.com/resume/resume.github.com/blob/main/githubresume.js) script fetches HTML templates from the `views/` directory and renders them using `Mustache.to_html(templateString, dataObject)`.

### Is there any server-side processing in this project?

No. The resume.github.com application is **entirely client-side**. All data processing, API communication, and template rendering occur in the browser using the JavaScript libraries loaded in [`index.html`](https://github.com/resume/resume.github.com/blob/main/index.html).