
Template details
Memory Atlas
Bilingual Astro starter for shared memories with timelines, annual recaps, an illustrated place map, and anniversary countdowns.
About this template
Memory Atlas is a bilingual Astro starter template for building a private, deployable memory website for two people, shipped with a demo built entirely from fictional people, dates, places, and original abstract illustrations. It takes your own text and image data as input and produces a static site with six sections, deployable to GitHub Pages.
What is Memory Atlas?
Memory Atlas is an Astro-based static site template for a shared memory site, pairing a photo archive with a relationship timeline, annual recaps, an illustrated place map, and future wishes. You supply content as JavaScript data files and images, and the build outputs a static bilingual site. The repository is published under the MIT license, and the live demo is hosted at liyuk.com/astro-memory-atlas/.
Key Features
- Six page areas — home, memory photo album, relationship timeline, annual recaps, place map, and shared future wishes.
- Bilingual by data — every memory, place, recap, timeline entry, and wish carries separate
zhandencopy; interface strings live insrc/i18n/copy.js. - Album browsing — keyword search, year filtering, paginated reading, and a lightbox-style image viewer.
- Offline-friendly map — the place map uses Leaflet files bundled in the repo plus original map illustrations, with no online tile or external font requests.
- Subset Chinese fonts — Chinese glyphs are split between on-demand page text and a GB2312 common-character file; a
python3 scripts/subset-font.pyscript regenerates subsets after content changes. - Data validation —
npm run validatechecks dates, unique IDs, data references, and zh/en copy completeness, and runs automatically on production builds. - Debug panel — a default-on panel can simulate dates, preview anniversaries and birthdays, and exercise album and map interactions; disable it via
debugPanelinsrc/config/site.js. - GitHub Actions deploy — pushes to
mainpublish automatically; aBASE_PATHenvironment variable supports subpath builds.
Who is it for?
- Couples building a private keepsake site: record memories, places, and anniversaries as data, then deploy to GitHub Pages under their own path.
- Astro developers wanting a bilingual content template: use the zh/en data pattern, validation script, and font subsetting pipeline as a starting point.
- Anyone who needs an offline-capable map page: the bundled Leaflet setup works without third-party tile servers.
What can you do with Memory Atlas?
- Couples: replace the fictional demo memories, places, and images with real ones, and set the anniversary and birthday dates in
src/config/site.jsto drive countdowns. - Static-site builders: fork the repo, run
npm cithennpm run devfor a local preview, andnpm test,npm run build,npm run previewbefore shipping. - Subpath deployers: build with
BASE_PATH=/astro-memory-atlas/ npm run buildand adjustsiteUrlandbasePathto match your domain.
How does Memory Atlas work?
Run npm ci and npm run dev to see the demo, edit src/config/site.js plus the five data files (memories.js, places.js, annual-recaps.js, relationship-timeline.js, shared-wishes.js), replace src/assets/images/demo/ assets, then validate and build.
FAQ
What Node.js version does Memory Atlas require?
The template requires Node.js 22 or higher along with npm; installation is done with npm ci.
Can I publish Memory Atlas somewhere other than GitHub Pages?
Yes. The included GitHub Actions workflow targets GitHub Pages, but changing siteUrl and basePath in src/config/site.js and building with a matching BASE_PATH adapts the output to another domain or subpath.
What is the license?
The project uses the MIT license; font and third-party dependency notices are listed in THIRD_PARTY_NOTICES.md.
















