2048: source & credits
Created by Gabriele Cirulli. This is a modified, self-hosted open-source edition provided by Tab Arcade without in-game ads. It is not the author's official website.
Source repository · Original license file
The unminified game files are served alongside this page. Upstream history and local modifications are recorded below.
Version and modifications
# 2048 — self-hosted edition ## Upstream and license - Authoritative game source: https://github.com/gabrielecirulli/2048 - Pinned commit: `478b6ec346e3787f589e4af751378d06ded4cbbc`. - Source tree: https://github.com/gabrielecirulli/2048/tree/478b6ec346e3787f589e4af751378d06ded4cbbc - Original license: https://github.com/gabrielecirulli/2048/blob/478b6ec346e3787f589e4af751378d06ded4cbbc/LICENSE.txt - Game JavaScript and CSS are MIT, copyright 2014 Gabriele Cirulli. The complete upstream notice is retained unchanged in `LICENSE.txt`; visible creator attribution appears inside the game. - The board and tiles use CSS and text. No upstream screenshots, app icons, startup images, audio, or third-party game artwork are distributed here. This adapted copy does not claim to be the official 2048 site. ## Font assets `style/fonts/` contains unchanged copies of Tab Arcade's already local IBM Plex Sans regular and bold TTF files, with their complete SIL Open Font License 1.1 notice (`ibmplexsans-OFL.txt`). These fonts are separately licensed under OFL, not MIT. Official font project/license: https://github.com/IBM/plex/blob/master/LICENSE.txt. The existing font source is recorded in the site's `public/fonts/source-1.css`; no Google font CSS or remote resource is requested at runtime. Exact SHA-256 checksums of the redistributed files: - Regular: `6dbe082463cf749cfa057d45c3048c90f4df031496498e5b5bdfd0b6babb9d16`. - Bold: `e129a20e8ff7c907ffd07124b573e88c323b7b18afc934d4aa539a3e0f2fe100`. ## Adaptation - Kept upstream 4×4 gameplay, scoring, keyboard/WASD input, swipes, restart, win/lose states, and local save behavior. - Replaced the upstream document's official-version claim and outbound promotional links with concise instructions and creator/license attribution. Removed unused upstream icon/startup-image links and Clear Sans font imports. - Added `style/embed.css` for a compact responsive iframe board, native 44 px action buttons, keyboard focus, local font faces, and reduced-motion support. The upstream tile colors and animation states remain. - Converted anchor-shaped game actions to semantic buttons and labeled the game board and score. - Namespaced local save keys as `tabarcade:2048:bestScore` and `tabarcade:2048:gameState` to avoid colliding with other same-origin games. - Added `js/embed.js` and a startup guard in `js/application.js` for visible initialization/network errors, reload recovery, and an unavailable-storage notice. No ad SDK, analytics, donation, or remote font loader is included. - Added a restrictive content security policy and `noindex, follow` to the raw runtime. The enclosing `/games/` detail page supplies the searchable game content. All runtime scripts, styles, and fonts load from this directory on the site's own origin. There are no external frames, outbound runtime requests, ad placements, or tracking calls. This describes this vendored runtime, not any third-party game elsewhere in the catalog. ## Validation boundary Static validation checks JavaScript/CSS syntax, local resource resolution, no external runtime URLs/network APIs, the retained notices, and deterministic upstream move/merge, score, win, restart, persistence and unavailable-storage behavior in a Node VM. Real browser rendering, keyboard/touch input, iframe sizing and network-request verification are separate integration checks performed by the site's release workflow.
License
The MIT License (MIT) Copyright (c) 2014 Gabriele Cirulli 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.