# How Early Adopter Status Is Determined on Resume.GitHub.com

> Discover how early adopter status is determined on Resume.GitHub.com. Learn the criteria for users who registered before 2008 or during the platform's initial launch.

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

---

**Early adopter status on Resume.GitHub.com is awarded to GitHub users who registered before 2008 or within the first four months of the platform's public launch (February–May 2008), as calculated client-side in the [`js/githubresume.js`](https://github.com/resume/resume.github.com/blob/main/js/githubresume.js) file.**

The open-source project `resume/resume.github.com` generates automatic résumés from GitHub profile data. One distinctive feature is the **early adopter status** badge, which highlights users who joined the platform during its infancy. This status is determined entirely by parsing the account creation date from the GitHub API response.

## The Client-Side Logic Behind Early Adopter Status

Unlike server-side calculations, the early adopter flag is computed in the browser after fetching user data. The logic resides in [`js/githubresume.js`](https://github.com/resume/resume.github.com/blob/main/js/githubresume.js), where the script extracts temporal metadata and applies a specific date-based heuristic to set `view.earlyAdopter`.

### Extracting the Account Creation Date

When the `github_user` function retrieves profile data, it parses the `created_at` field to derive two variables: `since` (the full year) and `sinceMonth` (the zero-based month index).

```javascript
var sinceDate  = new Date(data.created_at);
var since      = sinceDate.getFullYear();  // e.g., 2008
var sinceMonth = sinceDate.getMonth();     // 0 = Jan, 5 = Jun

```

### The Early Adopter Cutoff Criteria

The script applies a boolean flag based on two conditions:

1. **Pre-2008 accounts**: Any user who joined in 2007 or earlier.
2. **First months of 2008**: Accounts created during the initial launch period.

The exact conditional from [`js/githubresume.js`](https://github.com/resume/resume.github.com/blob/main/js/githubresume.js) (lines 41–45) implements this check:

```javascript
// We consider a limit of 4 months since the GitHub opening (Feb 2008) to be considered as an early adopter
if ((since == '2008' && sinceMonth <= 5) || since <= '2007') {
    view.earlyAdopter = 1;
}

```

Note that while the comment references a four-month window following GitHub’s February 2008 public launch, the code uses `sinceMonth <= 5` (where `5` represents June in zero-based JavaScript Date objects), effectively capturing January through June 2008 plus all prior years.

## Rendering the Early Adopter Badge in Templates

Once `view.earlyAdopter` is set to `1`, the Mustache templating engine conditionally renders the badge text. The flag is interpolated in two primary views:

**Individual Résumé ([`views/resume.html`](https://github.com/resume/resume.github.com/blob/main/views/resume.html), line 38):**

```mustache
{{#earlyAdopter}}as an early adopter {{/earlyAdopter}}

```

**Organization Résumé ([`views/resumeOrgs.html`](https://github.com/resume/resume.github.com/blob/main/views/resumeOrgs.html), line 42):**

```mustache
{{#earlyAdopter}}, therefore we're early adopters,{{/earlyAdopter}}

```

When the boolean evaluates to truthy, the enclosed text appears in the generated HTML; otherwise, Mustache omits the section entirely.

## Summary

- **Early adopter status** is determined entirely by account creation date parsed from the GitHub API `created_at` field.
- The calculation occurs client-side in [`js/githubresume.js`](https://github.com/resume/resume.github.com/blob/main/js/githubresume.js) by comparing the registration year and month against a fixed cutoff.
- Users qualify if they joined **before 2008** or during **the first several months of 2008** (specifically January through June based on the `sinceMonth <= 5` condition).
- The resulting `view.earlyAdopter` boolean drives conditional text rendering in Mustache templates ([`views/resume.html`](https://github.com/resume/resume.github.com/blob/main/views/resume.html) and [`views/resumeOrgs.html`](https://github.com/resume/resume.github.com/blob/main/views/resumeOrgs.html)).

## Frequently Asked Questions

### What specific date range qualifies as an early adopter on Resume.GitHub.com?

Accounts created in **2007 or earlier** automatically receive early adopter status. For 2008 registrations, the code checks if the month index is less than or equal to 5 (representing June in zero-based JavaScript Date objects), effectively covering January through June 2008.

### Is the early adopter calculation performed on the server or in the browser?

The calculation is performed **client-side** in the browser. The JavaScript file [`js/githubresume.js`](https://github.com/resume/resume.github.com/blob/main/js/githubresume.js) fetches user data from the GitHub API, parses the `created_at` timestamp, and sets the `view.earlyAdopter` flag before rendering the Mustache templates.

### Which template files display the early adopter badge?

The badge appears in two Mustache templates: [`views/resume.html`](https://github.com/resume/resume.github.com/blob/main/views/resume.html) for individual user profiles and [`views/resumeOrgs.html`](https://github.com/resume/resume.github.com/blob/main/views/resumeOrgs.html) for organization accounts. Both use conditional blocks (`{{#earlyAdopter}}...{{/earlyAdopter}}`) to toggle the early adopter text.

### Does having early adopter status affect API rate limits or repository permissions?

No, the early adopter flag is purely **cosmetic**. It only controls the display of text in the generated résumé template and has no impact on GitHub API rate limits, repository access permissions, or any functional behavior of the application.