diff --git a/app/page.tsx b/app/page.tsx index 876f188..8e626b3 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -2,23 +2,28 @@ import Link from 'next/link'; import { createAdminClient } from '@/lib/supabase/admin'; import { getListedProducts, type ProductRow } from '@/lib/supabase/product-files'; -import HeroField from './components/deepfield/HeroField'; import ShowcaseGrid from './components/deepfield/ShowcaseGrid'; import ScrollReveal from './components/deepfield/ScrollReveal'; import CountUp from './components/deepfield/CountUp'; +import MockWindow from './components/mock/MockWindow'; +import { DashboardMock } from './components/mock/screens'; import { SHOWCASE_SLOTS } from '@/lib/showcase'; -// 쟁승메이드 메인 — Deep Field 다크 캔버스 (서버 컴포넌트) -// PublicShell이 TopNav(h-16, 다크 인지)·푸터(navy)·main 배경(라이트)을 제공한다. -// 이 페이지는 자기 풀-블리드 다크 배경을 소유하여 main의 라이트 배경을 덮는다. -// 히어로를 -mt-16 + pt-16으로 끌어올려 pt-16로 인한 상단 16px 라이트 띠를 제거한다. +// 쟁승메이드 메인 — 라이트 고craft (서버 컴포넌트). +// PublicShell이 단일 라이트 TopNav(h-16)·navy 푸터·main(라이트 --jsm-bg, pt-16)을 제공한다. +// 섹션은 surface(#fff) ↔ surface-alt(#f1f5f9) 교차로 구분하고, 히어로의 제품 목업이 유일한 강조면. -// 소프트웨어 진열 섹션이 DB 조회를 포함하므로 항상 최신 목록을 보여준다. export const dynamic = 'force-dynamic'; const KOR_TIGHT = { letterSpacing: '-0.02em' } as const; const KOR_BODY = { letterSpacing: '-0.01em' } as const; +const TRUST = [ + { v: '15+', t: '직접 운영 중인 실서비스' }, + { v: '24/7', t: '무중단 운영' }, + { v: '원스톱', t: '기획 → 배포 단독 진행' }, +]; + const PROCESS = [ { n: '01', t: '무료 상담', d: '요구사항을 함께 정리하고 실현 가능성을 점검합니다.' }, { n: '02', t: '견적·범위 확정', d: '영업일 2일 내 범위와 견적을 정리해 회신드립니다.' }, @@ -63,6 +68,17 @@ function ArrowRight() { ); } +function Eyebrow({ children }: { children: React.ReactNode }) { + return ( +

+ {children} +

+ ); +} + async function loadFeaturedProducts(): Promise { try { const all = await getListedProducts(createAdminClient()); @@ -78,62 +94,47 @@ export default async function Home() { const hasProducts = featuredProducts.length > 0; return ( - // 풀-블리드 다크 캔버스 — main의 라이트 배경을 덮는다. -
+ <> {/* ─────────────────── 1. HERO ─────────────────── */} - {/* -mt-16 pt-16: 고정 헤더 아래로 끌어올려 상단 라이트 띠 제거 + 풀 뷰포트 확보 */} -
- - {/* 콘텐츠 가독성용 스크림 — 좌측 앵커 다크(텍스트 컬럼 받침) + 상하 비네트. - 텍스트는 좌측 정렬(max-w-4xl)이므로 좌→우 어둠 그라데이션으로 글자 뒤를 항상 어둡게 깔고, - 우측은 파티클 필드가 비치게 둔다. 모바일(좁은 폭)에선 좌측 스크림이 거의 전체를 덮어 가독성 확보. */} -
-
-
+
+
+ {/* 좌 — 텍스트 */} +
- 외주 개발 · 완성 소프트웨어 + outsourcing · software

생각을
동작하는 소프트웨어로 - . + .

24시간 돌아가는 실서비스를 직접 설계하고 운영합니다. 외주 개발도, 완성 소프트웨어도 — 같은 손으로.

-
+
프로젝트 문의 @@ -141,10 +142,10 @@ export default async function Home() { @@ -152,54 +153,134 @@ export default async function Home() {
+ + {/* 우 — 제품 목업 (유일한 강조면) */} +
+ + + +
- {/* 스크롤 큐 — 가는 세로선 + 점 미세 바운스 (motion-safe 가드는 CSS) */} -
- - + {/* 신뢰 스트립 */} +
+
+ {TRUST.map((s) => ( +
+ + {s.v} + + + {s.t} + +
+ ))} +
- {/* ─────────────────── 2. SHOWCASE ─────────────────── */} -
-
+ {/* ─────────────────── 2. 2축 소개 ─────────────────── */} +
+
-

- showcase -

+ what we do

+ 두 가지 방식으로 도와드립니다 +

+
+ +
+ {[ + { + n: '01', + k: 'outsourcing', + t: '맞춤 외주 개발', + d: '웹 서비스·업무 자동화·API·봇·AI 연동까지. 기획부터 납품과 30일 하자보수까지 단독으로 책임집니다.', + href: '/outsourcing', + cta: '의뢰 시작', + }, + { + n: '02', + k: 'software', + t: '완성 소프트웨어 구매', + d: '직접 운영하며 검증한 도구를 계좌이체로 가져가세요. 입금 확인 즉시 마이페이지에서 다운로드합니다.', + href: '/products', + cta: '제품 보기', + }, + ].map((a, i) => ( + + + + {a.n} · {a.k} + +

+ {a.t} +

+

+ {a.d} +

+ + {a.cta} + + + +
+ ))} +
+
+
+ + {/* ─────────────────── 3. SHOWCASE ─────────────────── */} +
+
+ + showcase +

이런 걸 만들어 드립니다

-
+
전체 레퍼런스 @@ -208,135 +289,48 @@ export default async function Home() {
- {/* ─────────────────── 3. PROCESS ─────────────────── */} -
-
+ {/* ─────────────────── 4. 운영 실증 ─────────────────── */} +
+
-

- process -

+ in production

- 상담부터 납품까지, 흐름이 분명합니다 -

-
- -
- {/* 단계 연결선 — draw 라인 (데스크톱 가로 관통) */} - - - - -
- {PROCESS.map((s, i) => ( - -
- - {s.n} - -

- {s.t} -

-

- {s.d} -

-
-
- ))} -
-
-
-
- - {/* ─────────────────── 4. PROOF ─────────────────── */} -
-
- -

- in production -

-

데모가 아니라 매일 돌아가는 시스템

직접 개발하고 운영 중인 실서비스입니다. 같은 깊이로 의뢰하신 프로젝트를 만듭니다.

-
+
{PROOF.map((p, i) => (
- + 직접 개발·운영 중

{p.t}

{p.d}

@@ -345,11 +339,7 @@ export default async function Home() { {tag} @@ -361,50 +351,32 @@ export default async function Home() {
{/* 스탯 3종 — 카운트업 */} - +
-
-

+

+

-

+

직접 운영 중인 실서비스

-
-

+

+

24/7

-

+

무중단 운영

-
-

+

+

원스톱

-

+

기획 → 배포 단독 진행

@@ -413,32 +385,86 @@ export default async function Home() {
- {/* ─────────────────── 5. SOFTWARE + CTA ─────────────────── */} - {/* Phase 2: products 테이블 기반 동적 진열. 0개이면 출시 준비 중 폴백. */} -
-
+ {/* ─────────────────── 5. PROCESS ─────────────────── */} +
+
+ + process +

+ 상담부터 납품까지, 흐름이 분명합니다 +

+
+ +
+ {/* 단계 연결선 (데스크톱) */} + +
+ {PROCESS.map((s, i) => ( + +
+ + {s.n} + +

+ {s.t} +

+

+ {s.d} +

+
+
+ ))} +
+
+
+
+ + {/* ─────────────────── 6. 완성 SW + CTA ─────────────────── */} +
+
{hasProducts ? ( <>
-

- software -

+ software

바로 쓰는 완성 소프트웨어

전체 보기 @@ -446,14 +472,13 @@ export default async function Home() {
-
+
{featuredProducts.map((p, i) => ( - {/* 라이트 카드가 다크 위에 떠 있는 대비 */}

전체 보기 @@ -506,38 +531,26 @@ export default async function Home() {
-

- coming soon -

+ coming soon

검증된 완성 소프트웨어를 준비하고 있습니다

직접 운영하며 다듬은 도구를 하나씩 다운로드 상품으로 공개할 예정입니다. 출시 소식을 가장 먼저 받아보세요.

출시 소식 받기 @@ -546,22 +559,13 @@ export default async function Home() { )} - {/* 최종 CTA 밴드 — accent bg */} - + {/* 최종 CTA 밴드 — 평면 navy (사이트 유일 다크면) */} +
- {/* 광원 — radial 허용 */} -
-
+

아이디어 단계여도 괜찮습니다. 무료 상담에서 방향을 함께 잡아드립니다. @@ -577,7 +581,7 @@ export default async function Home() { 무료 상담 신청 @@ -587,6 +591,6 @@ export default async function Home() {

-
+ ); }