프로젝트 소개
Aetherfield는 기업이 배출 데이터를 추적, 모델링, 보고하고 조치를 취할 수 있도록 지원하는 B2B 지속가능성 인텔리전스 플랫폼입니다. 분산되고 수동적인 ESG 데이터와 운영 인사이트 사이의 격차를 해소하여 지속가능성을 연례 보고 작업에서 지속적인 관행으로 전환합니다.
이 저장소는 별도의 백엔드 서비스 없이 단일 Next.js App Router 애플리케이션에 사전 렌더링된 마케팅 사이트와 인증 플랫폼을 모두 포함합니다. 주요 기능은 다음과 같습니다:
- **마케팅 사이트**: 콘텐츠가 타입 상수로 제공되는 7개의 공개 라우트(홈페이지, 저널, 기사, 채용 정보, 채용 공고, 회사 소개, 디자인 시스템). 데모 요청, 더블 옵트인 뉴스레터 가입, 비공개 CV 업로드가 포함된 채용 지원을 위한 공개 쓰기 경로는 모두 속도 제한 및 봇 보호가 적용됩니다.
- **플랫폼**: 멤버십과 초대가 있는 멀티테넌트 조직, 단계별 행이 있는 CSV 활동 가져오기, 게시 및 고객 제공 배출 계수 세트(DEFRA 2025/2026 시드), 날짜 적용 계수 선택, Scope 1/2/3 계산 엔진(위치 기반 및 시장 기반 Scope 2), 프로젝션이 포함된 목표 추적, 생성된 ESG 보고서, 재계산, 임계값 알림 및 보존 삭제를 위한 3개의 야간 크론 작업.
- **AI 통합**: 하나의 모듈이 Vercel AI Gateway를 통해 ESG 보고서용 서술형 산문을 작성합니다. LLM은 숫자를 생성하지 않으며 모든 산술은 순수 함수에서 결정적으로 수행됩니다. 생성된 서술은 계산된 수치의 폐쇄적 허용 목록에 대해 토큰별로 검사되며, 검사를 통과하지 못한 초안은 폐기됩니다. 렌더링되고 반올림된 보고서 섹션만 공급자에게 전송됩니다.
**기술 스택**: Next.js 16.2.12(App Router, Turbopack), React 19.2.4, TypeScript 5, Tailwind CSS 4(설정 불필요), node-postgres를 사용한 Neon Postgres, Drizzle ORM, Better Auth(자체 호스팅), Resend + React Email, Upstash Redis 속도 제한, Vercel Blob(비공개), BotID 봇 보호, Zod 검증, GSAP 및 Motion 애니메이션, AI SDK, Vitest 및 Playwright 테스트.
**아키텍처**: UI, Server Actions(유일한 변형 경로), Route Handlers(외부 호출자 전용), 데이터 계층(lib/db), 도메인 계층(순수 함수)으로 계층화됩니다. UI는 Route Handlers를 통해 변형하지 않으며 모든 변형은 서버 측에서 권한 부여 및 검증됩니다. 공개 양식은 클라이언트 검증, BotID 확인, 속도 제한, 서버 측 Zod 검증, 권한 부여, 데이터베이스 쓰기, 이메일 알림(실패가 쓰기를 실패시키지 않음)의 일관된 경로를 따릅니다.
**시작하기**: Node.js 20+, Neon Postgres 데이터베이스(풀 및 직접 연결 문자열)가 필요하며 선택적으로 Vercel CLI가 필요합니다. 설정에는 .env.example 복사, 마이그레이션 실행, 변환 계수 시딩이 포함됩니다. 로컬 데이터베이스 모드는 없습니다.
**테스트**: Vitest는 lib/domain(순수 함수 전용)으로 범위가 제한됩니다. Playwright는 프로덕션 빌드에 대해 Chromium, Firefox 및 WebKit을 다루며, WebKit은 재현성을 위해 루트 없는 Podman 컨테이너에서 실행됩니다.
**개인 데이터 처리**: CV는 서명된 URL과 함께 비공개 블롭 저장소에 저장되며, 더블 옵트인 뉴스레터, 요청 본문/이메일/CV 로깅 없음, 야간 삭제를 통한 유한 보존, 실제 조직 삭제를 제공합니다.
**배포**: Node.js 런타임을 사용한 Vercel Fluid Compute. vercel.json에 세 개의 야간 크론이 선언되어 있습니다. Neon의 축소-영(scale-to-zero) 콜드 스타트가 예상됩니다.
**문서**: AGENTS.md는 기여자 계약이며, docs/에는 표면별 빌드 기록이 포함되고, prompts/에는 저장소를 구축한 번호가 매겨진 구현 프롬프트가 있습니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.