The Solo Mom Project
Markdown file
README.md
The Solo Mom Project
The Solo Mom Project is a Next.js application for the SMC community. It combines:
- a public resource directory
- a blog and editorial publishing surface
- admin moderation and curation tools
- Neon-backed data workflows
- AI-assisted enrichment and taxonomy operations
DOCS/ is the documentation source of truth. The root README is meant to be the fastest orientation layer for a human collaborator or an agent.
Quick Start
- Install dependencies:
pnpm i
- Copy envs and set at minimum:
cp .env.example .env.local
Required:
DATABASE_URL
Common optional envs:
OPENAI_API_KEYANTHROPIC_API_KEYR2_ENDPOINTR2_ACCESS_KEY_IDR2_SECRET_ACCESS_KEYR2_BUCKETR2_PUBLIC_BASE_URLNEXT_PUBLIC_SITE_URL
- Run the baseline migration:
pnpm db:migrate:neon
- Start the app:
pnpm dev
- Open
http://localhost:3000
The first authenticated user is auto-promoted to admin.
Repo Map
app/ Next.js app router surfaces
components/ UI and feature components
lib/ shared runtime/domain logic
auth/ Better Auth server, client, and error helpers
blog/ blog feed, markdown, field contract, and types
editorial/ editorial corpus, retrieval, and content-ops helpers
media/ placeholder-image helpers
resources/ resource feed, URL, contact, contract, card, and duplicate helpers
server/ server-only product/taxonomy helpers
site/ SEO config and analytics helpers
storage/ R2 upload and presign helpers
taxonomy/ taxonomy resolution, routing, policy, and theming
style-guide/ style-guide manifest and preview support data
workflow/ permission and approval helpers
db/ Neon schema, migrations, seed pipeline
taxonomy/ canonical taxonomy spec and generated JSON artifact
scripts/ operator tooling
blog/ blog-specific seed and maintenance scripts
compat/ runtime compatibility shims for Node-based script execution
db/ DB checks, migrations, hygiene, cleanup
editorial/ WhatsApp intake, retrieval, content-ops, and review scripts
taxonomy/ taxonomy normalization, migration, audit tools
docs/ docs manifest/frontmatter/link tooling
evals/ evaluation harnesses and experiment runners
qa/ accessibility and mobile-surface checks
style-guide/ component catalog and usage-audit generators
tests/ unit and integration tests
e2e/ Playwright coverage
perf/ performance budgets and Lighthouse automation
DOCS/ canonical docs and project planning
docs-site/ local VitePress wrapper for DOCS
artifacts/ durable review/audit artifacts worth keeping in repo
tmp/ output/ local/generated working directories
Core Commands
App:
pnpm devpnpm buildpnpm startpnpm lintpnpm check-types
Tests:
pnpm testpnpm test:e2epnpm test:e2e:adminpnpm test:e2e:full
DB and taxonomy:
pnpm db:migrate:neonpnpm db:migrate:neon:allpnpm db:check:neonpnpm db:normalize:taxonomypnpm db:prune:taxonomypnpm db:hygiene:dry-runpnpm db:hygiene:applypnpm db:report:website-duplicates:strict
Seed and quality:
pnpm seed:neonpnpm seed:neon:latestpnpm check:routespnpm check:seopnpm check:a11y:public-surfacespnpm check:mobile-surfaces
Docs:
pnpm docs:devpnpm docs:buildpnpm docs:manifestpnpm docs:linkspnpm docs:timestamp
Where To Start
If you are new to the repo, read in this order:
AGENTS.mdCHANGELOG.mdROADMAP.mdDOCS/index.mdDOCS/development/architecture-overview.mdDOCS/development/operations-and-automations.mdDOCS/PROJECTS/completed/3036_editorial-platform-architecture-and-repo-boundaries.mdlib/README.mdscripts/README.mdapp/README.md
Current Architecture Direction
The repo is intentionally staying as one product repository.
Current long-term organization posture:
- product runtime stays in
app/,components/, andlib/ - script lanes are grouped by purpose under
scripts/blog/,scripts/compat/,scripts/db/,scripts/docs/,scripts/evals/,scripts/qa/,scripts/style-guide/, andscripts/taxonomy/ - editorial operator work now lives alongside those lanes under
scripts/editorial/ - the first
lib/regrouping passes are now in place underlib/auth/,lib/blog/,lib/editorial/,lib/resources/,lib/site/,lib/media/, andlib/storage/ - new domain logic should prefer an existing
lib/*/folder before adding more flatlib/*.tsfiles - durable evidence belongs in
artifacts/ - local/generated material should stay out of the source tree when possible
- future editorial-system work will extend this repo rather than split into a separate codebase
3036is now completed; it defines the repo-wide structure and the editorial handoff boundary, but not the downstream feature implementation- the first editorial-governance slice is now live in code: blog review-gate fields, review-state/byline metadata, admin review-queue surfaces, and reviewer decision linkage are implemented; broader provenance and direct brief/draft linkage remain downstream
Docs Source Of Truth
Key docs:
DOCS/index.mdDOCS/getting-started/index.mdDOCS/development/architecture-overview.mdDOCS/development/scripts-reference.mdDOCS/development/operations-and-automations.mdDOCS/features/submission-and-enrichment.mdDOCS/features/blog.mdDOCS/PROJECTS/README.md
For active planning and repo-organization work, see:
DOCS/PROJECTS/active/3035_blog-editorial-ai-and-voice-program.mdDOCS/PROJECTS/completed/3036_editorial-platform-architecture-and-repo-boundaries.md