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종 — 카운트업 */}
-
+
-
-
+
-
-
+
-
-
+
@@ -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() {
-
+ >
);
}