seedproject-web/app
Carlos Arias fc84d095b8 feat: config-driven identity (site.config.json) + buildable sample content
- site.config.json  single source of identity (name/url/description/author/social)
- scripts/configure.mjs  stamps it into app, content-pipeline, and astroagent configs
- app/src/lib/blog-data.js  SITE + author now read from app/src/config/site.json
- astro.config.mjs  default site URL from config
- index.astro / Footer.astro  neutralized hardcoded title, hero alt, social link
- sample 'welcome' post + placeholder hero/avatar so the site builds out of the box

Verified: cd app && npm ci && npm run build -> 13 pages, Complete.
Remaining comiida demo prose in about/faq/services/contact + Newsletter (sample content).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SYHWLHihq3v9nxNwoPCKSn
2026-07-04 23:06:23 +00:00
..
.astroagent/skills/ui-ux chore: scaffold SeedProject base (Phase 1) 2026-07-04 22:53:10 +00:00
.github chore: scaffold SeedProject base (Phase 1) 2026-07-04 22:53:10 +00:00
src feat: config-driven identity (site.config.json) + buildable sample content 2026-07-04 23:06:23 +00:00
.gitignore chore: scaffold SeedProject base (Phase 1) 2026-07-04 22:53:10 +00:00
.prettierignore chore: scaffold SeedProject base (Phase 1) 2026-07-04 22:53:10 +00:00
.prettierrc chore: scaffold SeedProject base (Phase 1) 2026-07-04 22:53:10 +00:00
AGENTS.md chore: scaffold SeedProject base (Phase 1) 2026-07-04 22:53:10 +00:00
astro.config.mjs feat: config-driven identity (site.config.json) + buildable sample content 2026-07-04 23:06:23 +00:00
CHANGELOG.md chore: scaffold SeedProject base (Phase 1) 2026-07-04 22:53:10 +00:00
LICENSE chore: scaffold SeedProject base (Phase 1) 2026-07-04 22:53:10 +00:00
package-lock.json chore: scaffold SeedProject base (Phase 1) 2026-07-04 22:53:10 +00:00
package.json chore: scaffold SeedProject base (Phase 1) 2026-07-04 22:53:10 +00:00
preview.webp chore: scaffold SeedProject base (Phase 1) 2026-07-04 22:53:10 +00:00
README.md chore: scaffold SeedProject base (Phase 1) 2026-07-04 22:53:10 +00:00

QuietPages - Astro Magazine Theme

Quiet Pages theme preview

Astro 6 Tailwind CSS 4 MDX License MIT

Preview: quietpages-eta.vercel.app

QuietPages is a calm Astro theme for independent magazines, personal journals, and long-form editorial sites. It keeps the reading experience simple and fast while including the pieces a production-ready publication needs: archives, taxonomy pages, author pages, RSS, sitemap, structured metadata, and self-hosted fonts.

Features

  • Editorial homepage with a full-bleed visual lead story
  • Blog archive with search, category filters, tag filters, and load-more pagination
  • MDX blog posts powered by Astro content collections
  • Category, tag, and author index pages
  • Article pages with breadcrumbs, table of contents, sharing actions, related posts, and adjacent navigation
  • RSS feed, XML sitemap, and dynamic robots.txt
  • Canonical URLs, Open Graph tags, Twitter card metadata, and article JSON-LD
  • Light and dark modes with system preference support
  • Self-hosted Inter, Fraunces, and JetBrains Mono fonts
  • Accessible landmarks, visible focus states, skip link, and reduced-motion handling
  • Responsive images through Astro's image pipeline
  • Contact page and custom 404 page

Tech Stack

  • Astro 6
  • Tailwind CSS 4 via the Vite plugin
  • MDX
  • Astro content collections
  • Self-hosted woff2 fonts

Getting Started

Install dependencies:

npm install

Start the development server:

npm run dev

Build for production:

npm run build

Preview the production build locally:

npm run preview

Theme Setup

The main theme settings live in src/lib/blog-data.js:

  • SITE.name
  • SITE.description
  • SITE.url
  • navigation-adjacent data such as authors, categories, and tags

Set your production URL before deploying:

SITE_URL=https://your-domain.com

You can also use:

PUBLIC_SITE_URL=https://your-domain.com

This keeps canonical URLs, Open Graph URLs, RSS links, robots.txt, and the sitemap aligned with the deployed domain.

Content

Blog posts live in src/content/blog. Each post uses an index.mdx file inside its own folder, with local images stored beside the content.

Required frontmatter is validated in src/content.config.js:

  • title
  • excerpt
  • date
  • readingTime
  • category
  • tags
  • author
  • thumbnail

SEO

QuietPages includes:

  • unique page titles and descriptions
  • canonical URLs generated from the configured site URL
  • Open Graph and Twitter card metadata
  • article JSON-LD on post pages
  • XML sitemap at /sitemap.xml
  • RSS feed at /rss.xml
  • robots.txt with a sitemap reference

Main SEO files:

Images and Assets

The repository includes preview.webp for the README preview. Content images live beside each MDX post, and shared theme assets live in src/assets.

Fonts are self-hosted in public/fonts. Replace those files and the @font-face declarations in src/styles.css if you want a different type system.

Customization

Deployment

QuietPages works anywhere Astro can deploy. For Vercel, Netlify, or another static host, set SITE_URL to the production domain before building so metadata and feeds use absolute URLs.

License

This project is licensed under the MIT License.