79 Commits
Author SHA1 Message Date
Jinho Jang 3e36fc9790 Increase small text to 12px (#114)
* fix: increase small text to 12px

* fix: use initiative CTA label

* refactor: use Tailwind text-xs utility

* fix: make homepage banner dismissible

* fix: update Discord links and banner text

* fix: refresh Discord invite links
2026-07-23 20:58:59 +09:00
Jinho Jang 96be50d8d0 refactor: make @repo/content the single source for home, get-started & movement page copy (#62)
* docs: add page-copy single-source spec and implementation plan

* feat(content): add typed home section schemas and migrate home copy into content

Add 7 bespoke home* section schemas (+ techStack ctas) to the page section
union and populate content/pages/en/home.json with home copy moved verbatim
from messages.

* refactor(web): source home page copy from @repo/content; drop home namespace from messages

Feed every home section from content via findSection/data props (replacing
next-intl getTranslations), remove the home namespace from messages/en.json,
and add a regression guard plus content-based tests. Render output unchanged.

* docs: add get-started/movement page-copy dedup spec and plan

* feat(content): add get-started & movement section schemas and content docs

Move get-started/movement page copy verbatim into content/pages so it is
single-sourced in @repo/content.

* refactor(web): source get-started/movement copy from content; drop those namespaces from messages

Feed both pages from content via findSection/data props (replacing next-intl),
switch them to content-based metadata, delete pages.getStarted/movement from
messages, and add content-based tests + ownership guard. Render unchanged.

* docs: add navbar-pages CMS copy spec and plan

* feat(content): add navbar page section schemas + Pages docs (book, brand-kit, research, node-programme, lambda-prize, manifesto, media, podcast, broadcast, tech-stack explorer)

* refactor(web): source navbar pages copy from content; drop those namespaces from messages

Migrate book, brand-kit, research (incl. rich-text via a tagged-text renderer),
node-programme, lambda-prize, manifesto, media, podcast, logos-broadcast-network,
and the tech-stack explorer to read copy from content via findSection/data props
and content-based metadata; remove the migrated pages.* namespaces from messages;
update guards + contracts. Render output unchanged.

* feat(web): source activist/coalition pages copy from content (CMS title/description)

Migrate activistBuilder, activistLeaderSteward, and coalitionPartner page
metadata from next-intl messages.pages.* into @repo/content PageCopy JSON,
following the established bookCopy pattern.

- Add activistBuilderCopySectionSchema, activistLeaderStewardCopySectionSchema,
  coalitionPartnerCopySectionSchema to packages/content/src/schemas/pages.ts
  and wire them into the pageSectionSchema discriminated union
- Create content/pages/en/activist-builder.json,
  activist-leader-steward.json, coalition-partner.json with verbatim
  title/description/heading values from the old messages namespace
- Switch all three route pages from createTranslatedPageMetadata to
  createPageMetadata(ROUTE), removing the NAMESPACE constant
- Remove activistBuilder, activistLeaderSteward, coalitionPartner from
  apps/web/messages/en.json pages object
- Add schema parse tests, renderToStaticMarkup page tests, messages ownership
  guards, and content-route contract entries for all three pages

* chore(web): remove dead faq (pages.faq + unused FaqSection components)

* fix: remove stale faq links

* fix: pass payload env through turbo build

* fix: preserve lambda prize support labels

* fix: preserve live copy after master rebase

* fix: address page copy review feedback

* refactor: move design guide copy to content

* feat: add schemas for home and page copy sections

- Introduced home section schemas including homeSocialProof, homeChoosePath, homeDecide, homeStartBuilding, homeAbout, homeUseCases, and homeBuilderPortal.
- Added page copy section schemas such as getStartedCopy, movementCopy, bookCopy, designGuideCopy, activistBuilderCopy, activistLeaderStewardCopy, coalitionPartnerCopy, researchCopy, nodeProgrammeCopy, lambdaPrizeCopy, mediaCopy, podcastCopy, broadcastCopy, and manifestoCopy.
- Created shared schema for section keys to maintain consistency across sections.

* chore(web): remove dead pages.faq from messages

* fix: resolve page copy migration conflicts

* fix: source connect form page copy from content

* fix: remove duplicated afform page copy exports

* fix: stop generating afform page copy exports

* fix(cms): require only server actions key

* fix(cms): load env files before build validation

* fix(cms): make env loader available during build

* fix(cms): load next env via require

* test(cms): isolate missing env validation

* feat: add homepage testnet highlight

* fix: restore lambda prize support links
2026-07-06 19:09:02 +09:00
jinhojang6 6214dc6978 fix(cms): use preview host for Vercel admin 2026-07-02 22:52:46 +09:00
jinhojang6 a4ef6066f6 fix(cms): respect Vercel deployment ids 2026-07-02 22:52:46 +09:00
jinhojang6 79b00479a0 fix(cms): stabilise deployed server actions 2026-07-02 22:52:46 +09:00
jinhojang6 55f95cde8d fix: correct YouTube handle casing in resource links for consistency 2026-06-23 20:17:53 +09:00
jinhojang6 e9b9481e4a chore(web): update footer tagline and enhance research and infrastructure links 2026-06-04 23:03:08 +09:00
jinhojang6 ff9da710b7 refactor(layout): remove unused meta tags from RootLayout 2026-06-03 03:09:14 +09:00
FelicioandJulesFILIOT ee04d72683 add forms for CRM funnels
* add forms for CRM funnels

* a

* set profile and lead source

- https://civicrm.logos.co/civicrm/admin/afform/submissions#/?name=afformActivistBuilder
- https://civicrm.logos.co/civicrm/contact/view?reset=1&cid=1000
- https://civicrm.logos.co/civicrm/contact/view?reset=1&cid=1000
- https://civicrm.logos.co/civicrm/contact/view/case?reset=1&id=388&cid=1000&action=view&context=case&selectedChild=case&key=CRMCaseFormSearch3vjNUK027Z0YMdmpnTbHyNePydwogixSnFN3Z2YluYYR4_8939

* default checkboxes to true

* remove titles

* u

* add policy

* t

* fix(civi-crm): avoid readonly env writes in CORS test

Use a keyed env helper in the public CORS test so cleanup and setup no longer rely on delete or readonly typed env properties.

* fix(web): align node programme route keys

Rename node program route/message keys to node programme and update links, metadata, sitemap entries, and contract tests.

---------

Co-authored-by: JulesFILIOT <dev@julesfiliot.com>
2026-06-01 17:59:37 +09:00
jinhojang6 44eb54e3bc feat: update giant switch hover effect for subtle image shift and add related test 2026-05-29 09:14:05 +09:00
jinhojang6 c84c3d09fb feat: add CMS content sync on boot feature and update related documentation 2026-05-29 09:00:12 +09:00
jinhojang6 afb28862c8 feat(migrations): add initial migration for database schema setup
- Created initial migration file to set up the database schema with necessary tables and types.
- Added migration index file to register the new migration.
- Introduced a production-ready Docker Compose configuration for deploying the CMS with a self-hosted PostgreSQL database.
2026-05-29 08:55:41 +09:00
Jinho Jang 1a37cf1f22 fix: use British English for public copy and paths (#5) 2026-05-26 19:22:57 +09:00
jinhojang6 cb7675db1b fix(env): update GitHub owner and repository names for consistency 2026-05-26 17:04:28 +09:00
jinhojang6 113902fc3a fix(ci): get pnpm test:release fully green end-to-end
- apps/cms: auto-formatted prettier warnings in scripts and tests
  (schema-push-prompts.test.ts, dev.ts, schema-push-prompts.ts).
- apps/web: auto-formatted prettier warnings in lib/press-engine.ts.
- apps/web/lib/__tests__/link-policy.test.ts: drop docs.logos.co
  from the blocked-URL list — the live Get Started page now uses it
  as the canonical docs entry point via EXTERNAL_URLS.docs.
- apps/cms/.../save-site-content-as-pr.test.ts: footerSchema now
  requires a newsletter object; add it to the test fixture so the
  builder passes Zod parsing.
- apps/web/package.json: declare tsx as an explicit devDependency so
  test:perf / test:static find it under apps/web/node_modules/.bin
  after the pnpm 11 lockfile regeneration changed hoisting.
- apps/web/test/performance/budgets.ts: bump maxHtmlBytes 325k -> 430k
  to cover homepage growth from recent motion polish and Get Started.
- pnpm-lock.yaml: refresh after adding tsx to apps/web.

Verified: pnpm test:release passes locally end-to-end.
2026-05-21 20:24:54 +09:00
jinhojang6 ca887f85ae chore: downgrade @types/node to ^24.12.4 across multiple packages 2026-05-20 14:42:29 +09:00
jinhojang6 dd27fe829c feat: enhance pull request loading with toast notifications and refactor loadRecentPullRequest function 2026-05-18 19:42:43 +09:00
jinhojang6 45a6d535c2 feat: enhance GitHub App private key handling and add schema push automation tests 2026-05-18 18:50:32 +09:00
jinhojang6 7d5ec94efd test: cover cms document lock config 2026-05-18 18:29:55 +09:00
jinhojang6 58d14504e6 fix: disable cms document locks 2026-05-18 18:25:01 +09:00
jinhojang6 50f4fa9dd1 ci: add release test workflow 2026-05-18 14:55:20 +09:00
jinhojang6 9cced1de5e test: cover app environment guards 2026-05-18 14:46:16 +09:00
jinhojang6 2686287ad1 test: cover cms content workflow contracts 2026-05-18 14:34:43 +09:00
jinhojang6 95bb87b975 docs: align cms workflow notes with save flow 2026-05-18 03:15:40 +09:00
jinhojang6 c67b97774e refactor: remove legacy cms publish routes 2026-05-18 03:13:10 +09:00
jinhojang6 bcda04c148 test: guard cms content pr hook timing 2026-05-18 02:03:37 +09:00
jinhojang6 8c63bc2de4 fix: match recent cms pull requests by target path 2026-05-18 01:58:34 +09:00
jinhojang6 85bd68e736 fix: tighten cms content workflow integration 2026-05-18 01:51:15 +09:00
jinhojang6 989acefdce feat: Update content descriptions and improve Press Engine integration for articles 2026-05-14 21:30:57 +09:00
jinhojang6 a96eb1e06d feat: Implement site content management with new collections for site settings, navigation, and footer
- Added new collections for site settings, navigation, and footer with pull request hooks for saving changes.
- Introduced media collection for managing uploaded assets.
- Updated page management to include route validation and JSON schema compliance.
- Refactored existing code to accommodate new site content structure and ensure proper data handling.
- Enhanced link policy tests to prevent shipping of placeholder or broken links.
2026-05-14 20:48:12 +09:00
jinhojang6 db8822b1de Refactor Builders Hub settings and resources
- Updated London and Porto circle configurations to use new forum and join URLs.
- Changed initiative hrefs to point to the resources section.
- Modified resource links in the English resources file to point to the new structure.
- Introduced new collections for Builder Hub settings and resources with appropriate hooks for saving changes as pull requests.
- Added tests for saving builder resources as pull requests.
- Updated the technology stack pages to reflect new link structures and improved SEO keywords.
2026-05-14 20:34:22 +09:00
jinhojang6 feadb64d74 feat: update .env.example for GitHub App configuration and enhance sync-from-content script with circle-resources mapping 2026-05-14 20:13:44 +09:00
jinhojang6 9437b0c049 feat: enhance ContentPrSaveButton with status panel dismissal and update lambda-prize page structure 2026-05-13 18:09:32 +09:00
jinhojang6 6bd889ef87 feat: add status messaging and styling for pull request and sync operations in ContentPrSaveButton 2026-05-12 19:48:42 +09:00
jinhojang6 1e47c41753 feat: enhance error messaging in ContentPrSaveButton for PR lookup and sync status 2026-05-12 19:34:12 +09:00
jinhojang6 b9db24c76b feat: add sync status messages to ContentPrSaveButton and ProductionSyncPanel 2026-05-12 19:29:53 +09:00
jinhojang6 9bf5f1bc6d feat: enforce GitHub App authentication and remove personal access token support 2026-05-12 19:27:17 +09:00
jinhojang6 9890df1c7d feat: enhance pull request handling with draft status and related UI updates 2026-05-12 19:15:40 +09:00
jinhojang6 a60dd26318 feat: add recent pull request loading and error handling to ContentPrSaveButton 2026-05-12 19:15:39 +09:00
jinhojang6 0a3259cb24 feat: implement middleware for admin URL redirection and add tests for URL handling 2026-05-12 18:23:45 +09:00
jinhojang6 9ed8a74267 feat: add production sync panel and merge PR functionality
- Implemented a new ProductionSyncPanel component for managing production branch synchronization.
- Added API routes for merging pull requests and syncing production to staging.
- Created services for merging content pull requests and syncing production branches.
- Enhanced RecentPrBanner with merge functionality for pull requests.
- Refactored CirclesMap to use Leaflet for better map handling.
- Updated ESLint configuration to ignore next-env.d.ts.
- Added tests for branch sync decision logic.
2026-05-12 17:52:45 +09:00
jinhojang6 8c57adf18e feat: add ContentPrSaveButton component and integrate into admin components 2026-05-11 17:25:39 +09:00
jinhojang6 dd27112632 feat: update database pool max for Vercel and modify health check query 2026-05-11 17:03:14 +09:00
jinhojang6 e77d0886ad feat: add regions configuration to vercel.json 2026-05-11 16:27:45 +09:00
jinhojang6 feb4131dc3 feat: enhance health check response with detailed error formatting and database diagnostics 2026-05-11 16:17:58 +09:00
jinhojang6 9f79be0c5e feat: add timeout configurations for database connections and health checks 2026-05-11 16:11:52 +09:00
jinhojang6 944252da9f feat: update environment variables and enhance Recent PR banner functionality 2026-05-11 15:44:35 +09:00
jinhojang6 8a1740c80d feat: add Recent PR banners to import map for enhanced visibility in admin 2026-05-11 15:29:03 +09:00
jinhojang6 aee063e607 feat: add Recent PR banner component for displaying recent pull requests in collections 2026-05-11 15:27:23 +09:00
jinhojang6 bc63496855 feat: implement GET endpoint for retrieving recent pull requests with filtering 2026-05-11 15:25:43 +09:00