Marketing site for Rare Digits, built with Eleventy (@11ty/eleventy).
git pull
npm install
npm run buildnpm startThe app runs on http://localhost:8080 and automatically rebuilds when files change.
.eleventy.js: main Eleventy config_config/filters.js: custom date/time and numeric filters used across templates_data/: global data files and navigation data_includes/: partial templates_layouts/: page layoutsabout/newsroom/: newsroom landing page and news postsassets/: static assets copied through to the output
The Eleventy config in .eleventy.js is intentionally small and mostly does four things:
- registers
@11ty/eleventy-plugin-rss - enables YAML data files with
addDataExtension("yml,yaml", ...) - defines passthrough copy for
assets,CNAME,.nojekyll, androbots.txt - points Eleventy at
_includes,_layouts, and_data
Most project-specific logic that used to live directly in the config has been moved into _config/filters.js.
_config/filters.js contains the template filters used by the site:
- date/time filters:
formatDate,formatLongDate,formatTime,formatYear,currentYear - numeric/display filters:
inThousands,inMillions,inMillionsOneDecimal,percentOf
These are ordinary project utilities, not migration shims from Jekyll.
News posts live in about/newsroom/posts/.
Important details:
about/newsroom/index.htmlrenders the newsroom landing pageabout/newsroom/posts/posts.jsonis a native Eleventy directory data fileposts.jsonapplies shared data to all newsroom posts:layout: "post"tags: "news"
- the
newstag creates the native collectioncollections.news - each post keeps its own explicit
permalink - user-facing post tags are stored in
labels, not intags categoryis kept as a normal content field for display
This means:
- use
collections.newswhen rendering newsroom content - use
post.data.labelswhen rendering visible labels on cards or post pages
- Most site pages use front matter like
layout: pageand explicitpermalink - News posts use shared layout from
posts.jsonand keep per-file permalinks - Layouts are in
_layouts/, includes are in_includes/
- If you are changing page chrome, start in
_layouts/and_includes/ - If you are changing menus or shared site data, check
_data/ - If you are changing newsroom behavior, check both
about/newsroom/index.htmlandabout/newsroom/posts/posts.json - If you are changing formatting logic used in templates, check
_config/filters.js
Before shipping changes, run:
npm run build