Back to templates

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 zh and en copy; interface strings live in src/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.py script regenerates subsets after content changes.
  • Data validation — npm run validate checks 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 debugPanel in src/config/site.js.
  • GitHub Actions deploy — pushes to main publish automatically; a BASE_PATH environment 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.js to drive countdowns.
  • Static-site builders: fork the repo, run npm ci then npm run dev for a local preview, and npm test, npm run build, npm run preview before shipping.
  • Subpath deployers: build with BASE_PATH=/astro-memory-atlas/ npm run build and adjust siteUrl and basePath to 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.

Screenshot of Memory Atlas