SeedProject base — cloneable Astro + PHP foundation for new sites
Find a file
Carlos Arias 6fec3498f2 framework(core): clone tooling + docs (Phase 4)
- FRAMEWORK.md: the host + pluggable-agent contract, the roster, and the
  clone+assign flow
- configure.mjs: ensure a default agents roster on a fresh clone
- .memory/{qa-agent,webdesigner}.md: framework notes pointing at the module layout
Verified: a scratch clone with a different site.config.json yields a different
identity + roster from identical core code.
2026-07-24 08:05:38 -04:00
.claude/skills qa: QA agent — HTTP site testing with one-click Web Designer fixes 2026-07-24 03:30:13 +00:00
.memory framework(core): clone tooling + docs (Phase 4) 2026-07-24 08:05:38 -04:00
.pre-seed-backup Baseline: full site build (brand, pages, DB, agent-editable) 2026-07-23 20:21:28 +00:00
.reference_files Baseline: full site build (brand, pages, DB, agent-editable) 2026-07-23 20:21:28 +00:00
.well-known/acme-challenge Baseline: full site build (brand, pages, DB, agent-editable) 2026-07-23 20:21:28 +00:00
agents framework(core): clone tooling + docs (Phase 4) 2026-07-24 08:05:38 -04:00
api Revert "web designer: Phase1 refactor test" 2026-07-24 07:50:18 -04:00
app Revert "web designer: Phase1 refactor test" 2026-07-24 07:50:18 -04:00
brand Baseline: full site build (brand, pages, DB, agent-editable) 2026-07-23 20:21:28 +00:00
mocks Baseline: full site build (brand, pages, DB, agent-editable) 2026-07-23 20:21:28 +00:00
scripts framework(core): clone tooling + docs (Phase 4) 2026-07-24 08:05:38 -04:00
.gitignore web designer: /admin/designer workspace (submit brief + poll queue) 2026-07-24 00:19:46 +00:00
.htaccess Baseline: full site build (brand, pages, DB, agent-editable) 2026-07-23 20:21:28 +00:00
.user.ini Baseline: full site build (brand, pages, DB, agent-editable) 2026-07-23 20:21:28 +00:00
404.html Baseline: full site build (brand, pages, DB, agent-editable) 2026-07-23 20:21:28 +00:00
502.html Baseline: full site build (brand, pages, DB, agent-editable) 2026-07-23 20:21:28 +00:00
AGENTS.md feat: content-pipeline/ → agents/ — formalize the agent system in the seed 2026-07-11 17:09:15 -05:00
astroagent.config.json site: enable in-page-console, project-builder, web-designer, qa (qa heartbeat 60) 2026-07-24 08:03:00 -04:00
CLAUDE.md docs: add root AGENTS.md + CLAUDE.md for fresh-clone agents; fix agentUser leftover 2026-07-04 23:33:50 +00:00
README.md feat: content-pipeline/ → agents/ — formalize the agent system in the seed 2026-07-11 17:09:15 -05:00
site.config.json content: remove outdated GitHub link (footer, resume, JSON-LD) 2026-07-24 10:33:16 +00:00

SeedProject base

A cloneable foundation for building websites — a static Astro frontend with a PHP backend, an AI authoring console, and an autonomous content pipeline. Clone it, set one config file, and build out a new site (a lawyer's office, a roofing company, a niche publication) the way you'd spin up a new WordPress install — but faster to host and safer to run.

What's inside

Path Role "WordPress equivalent"
app/ Astro theme — layouts, components, content collections, sample post theme + posts
api/ SeedProject PHP framework — the dynamic backend (DB, forms, metrics, agents) PHP core
agents/ Autonomous content engine — research, write, review, publish (no equivalent)
astroagent.config.json + app/.astroagent/ AI authoring console — change the site in plain English wp-admin
site.config.json Single source of site identity — the one file you edit per site wp-config + Site Settings

Quick start — spin up a new site

git clone https://repo.carlosarias.com/carlos/seedproject-web.git my-site
cd my-site
./scripts/new-site.sh          # prompts for name/URL/author → writes site.config.json,
                               # stamps every engine, (optionally) resets git + installs deps
cd app && npm run build        # builds the static site into ./public

Then point a web server's document root at ./public and alias /api to ./api (see Backend).

The one file you edit: site.config.json

All site identity lives here:

{
  "name": "Acme Roofing",
  "url": "https://acmeroofing.com",
  "description": "Denver's trusted roofing contractor since 1998.",
  "tagline": "Roofs done right",
  "language": "en",
  "timezone": "America/Denver",
  "topic": "residential and commercial roofing",
  "audience": "Denver-area homeowners and property managers",
  "author": { "slug": "acme", "name": "Acme Roofing", "jobTitle": "...", "avatar": "/avatar-placeholder.png", "bio": "...", "longBio": "...", "knowsAbout": [], "sameAs": [] },
  "social": { "twitter": "" }
}

After editing it, run:

node scripts/configure.mjs

This stamps the values into the Astro theme (app/src/config/site.json), agents/config.json, and astroagent.config.json so all three engines share one identity. new-site.sh runs it for you.

Backend (api/)

The api/ directory is the SeedProject PHP framework, meant to be served at /api on the same domain (the static frontend calls it same-origin). It needs:

  • Composer deps: cd api && composer install
  • Config: api/config.php with your database credentials (git-ignored). Until the CLI installer ships (see below), create it by hand or use the framework's web installer under api/install/.
  • A PHP-FPM handler in your web server for /api, with a front-controller rewrite to api/index.php. Example Apache/nginx snippets are in api/.memory/foundation.md.

Planned — the Foundation: a php console app:install (DB + config + schema) and php console db:migrate, plus a two-tier auth layer and a /api/health round-trip. Design + implementation plan: api/.memory/foundation.md and api/.memory/foundation-plan.md.

Content pipeline & authoring

  • agents/ — autonomous research/write/review/publish scripts driven by agents/config.json (populated from site.config.json). Runtime state (drafts/, state/, logs/, queues) is git-ignored and regenerates per site.
  • astroagent — the in-site console for making changes in plain English; its identity comes from astroagent.config.json.

Directory layout

my-site/
├── site.config.json          ← edit this
├── scripts/
│   ├── new-site.sh           ← one-time setup for a fresh clone
│   └── configure.mjs         ← stamp site.config.json into every engine
├── app/                      ← Astro frontend (build → ../public)
├── api/                      ← SeedProject PHP backend (served at /api)
├── agents/         ← autonomous content engine
└── public/                   ← build output (git-ignored)

What's git-ignored

Secrets (**/.env, api/config.php), dependencies (node_modules/, api/vendor/), build output (public/, app/dist/), and per-site runtime state. A fresh clone installs deps and generates the rest.