I'm building the "Kayak of running shoes": Runometry, 841 shoes, 6 languages, zero ads
러닝화 비교 서비스 Runometry를 3일 만에 만들었습니다 — 841종, 6개 언어, 광고 없이
창업자가 Claude Code와 병렬 에이전트를 활용해 러닝화 841종을 비교하는 Runometry를 3일 동안 만들었습니다. 제품의 차별점은 용도에 맞는 신발끼리만 비교하는 기능이며, 향후 가격 이력과 알림을 추가해 구매 시점을 판단할 데이터를 쌓을 계획입니다.
- 주제
AI 요약
Runometry는 여러 브랜드의 러닝화 사양과 판매처별 가격을 한곳에서 비교하는 서비스입니다. 창업자는 브랜드 사이트와 리뷰마다 사양 용어가 다르고, 가격은 자주 변하며, 기존 비교 도구는 레이싱 플랫과 맥스 쿠션 트레이너처럼 성격이 다른 신발까지 나란히 놓는다고 설명합니다. Runometry는 어떤 신발이 자신에게 맞는지, 지금 어디에서 가장 싸게 살 수 있는지 답하는 것을 목표로 합니다.
현재 제공하는 기능
서비스에는 16개 브랜드의 신발 841종이 등록돼 있습니다. 무게, 드롭, 스택 높이 같은 사양을 구조화했고, 데일리 트레이너·맥스 쿠션·안정화·템포·레이싱·트레일 카테고리로 둘러볼 수 있습니다. 비교 기능은 실제로 비교할 만한 신발만 묶습니다. 카탈로그 데이터를 바탕으로 ‘Brooks Ghost 18 vs Mizuno Wave Rider 30’ 같은 대결 페이지도 생성합니다. 가이드와 기록 관련 데이터 기사도 제공하며, 영어·프랑스어·독일어·스페인어·이탈리아어·네덜란드어를 지원합니다.
평점은 편집 기준으로 매기고, 가격은 정기적으로 확인합니다. AI가 만든 콘텐츠는 사실로 다루기 전에 검토하며, 제휴 수수료는 평점에 반영하지 않는다고 밝혔습니다. 제휴 판매처를 우선 노출하는 경우는 가격이 정확히 같을 때뿐입니다.
에이전트 활용과 기술 구성
창업자는 Claude Code를 주 개발 도구로 쓰고, 에이전트 여러 개에 비교 로직, 페이지 템플릿, 번역, 데이터 검증 작업을 나눠 맡겼습니다. 코드를 직접 입력하는 대신 변경 사항을 검토하는 방식으로 진행했다고 설명합니다. 수백 개 신발의 사양을 정규화하고 빈 항목을 채우는 작업도 감독하는 파이프라인으로 만들었습니다. 다만 무엇을 만들지 정하고, 데이터 모델과 품질 기준을 정하며, 사실에 닿는 결과를 검토하는 일은 직접 맡습니다. 특히 사양과 가격을 검토하지 않으면 그럴듯하지만 틀린 결과가 나온다고 강조합니다.
기술 스택은 정적 렌더링과 파일 기반 라우팅을 위한 Angular와 AnalogJS, UI 구성 요소를 위한 Spartan, 스타일링을 위한 Tailwind입니다. 정적 결과물은 Cloudflare에서 호스팅하며 이미지 CDN은 WebP를 제공합니다. 다국어 라우팅과 hreflang도 처음부터 계획했습니다. Nuxt로 옮기는 방안도 검토했지만, 익숙한 스택을 유지하고 에이전트에 반복 작업을 맡기는 편을 택했습니다.
수익화와 다음 단계
현재 수익 모델은 제휴 링크입니다. Awin 네트워크를 이용하고 브랜드 제휴 프로그램에도 지원 중이며, 수수료율뿐 아니라 지급 신뢰성, 상품 범위, 피드 갱신 주기를 비교하고 있습니다. 디스플레이 광고는 당장 넣지 않고, 사용성과 검색 유입을 먼저 다질 계획입니다. 이후에는 표시를 명확히 한 후원 노출, 가격 알림, 프리미엄 데이터 등을 검토합니다.
현재 트래픽은 없고, 검색 엔진 색인도 진행 중이며, 매출은 0달러입니다. 다음 기능으로는 신발·판매처별 일일 가격 기록, 가격 이력 차트, 최근 가격 변동 목록, 목표 가격 알림을 꼽았습니다. 장기적으로는 계절성, 신모델 출시, 사이즈와 색상 재고, 판매처별 가격 조정을 기록해 구매 시점을 안내하려 합니다. 과거 가격 데이터는 지금부터 수집해야 쌓을 수 있으므로, 매일 데이터를 모으는 일이 우선이라고 설명합니다.
Indie Hackers 반응
- @annamo — 제휴 판매처는 가격이 정확히 같을 때만 먼저 보여준다는 원칙이 좋습니다. 비교 사이트를 믿게 만드는 기준입니다. Claude Code 설명 부분에 “실제 수치를 여기에 추가하세요”라는 문구가 남아 있습니다. 에이전트 세션이 몇 번이었는지 특히 궁금하니 수치를 보고 싶습니다.
- @ironserzh — 데이터 범위보다 최신성과 신뢰를 먼저 챙기는 접근이 설득력 있습니다. 첫 가격 이력 파이프라인이라면 판매처·사이즈·상태별 일일 스냅샷을 저장하고, 출처 시각과 오래된 데이터·오류 표시도 남기겠습니다. 사용자가 비교를 믿도록 ‘마지막 확인 시각’과 가격 변경 이력을 보여주세요. 전체 백링크 작업을 기다리기보다 30일 차트를 넣은 인기 모델 페이지 몇 개로 수요를 확인하고 러닝 클럽에 검토를 부탁할 수도 있습니다.
- @Youssef_Bezza — 많이 훈련하는 입장에서 ‘레이싱 플랫과 맥스 쿠션 트레이너’를 잘못 묶는 문제가 가장 와닿습니다. 비교 사이트마다 신발을 한데 묶는데, 어려운 점은 가격이 매일 바뀌는 상황에서 데이터를 믿게 하는 일입니다. 가격은 얼마나 자주 갱신하며 마지막 확인 시각도 보여주나요? 그 정보만 있으면 리뷰 블로그보다 더 믿음이 갈 것 같습니다.
- @zaneberg — 언어가 여섯 개면 소매 시장도 여섯 개입니다. 독일 러너에게는 독일 배송과 유로 가격을 제공하는 가게가 필요하며, 그 목록은 스페인이나 네덜란드와 다릅니다. 언어별로 841개 신발 중 해당 국가 판매처에서 현재 가격을 두 개 이상 확보한 비율을 추적하겠습니다. 독일은 600개인데 네덜란드는 90개라면 네덜란드 페이지는 가격 없이 사양만 나오는 셈입니다. 어느 시장을 밀고 어떤 대결 페이지를 보류할지 판단하는 데 도움이 됩니다.
- @James_UtilitySEO — 지켜볼 지표는 페이지 수입니다. 신발 841종에 비교 가능한 조합을 더하고 여섯 언어를 곱하면 새 도메인에 URL이 빠르게 늘어납니다. Google은 발견한 URL을 모두 크롤링하지 않으며, 상당수가 몇 주 동안 ‘발견됨, 현재 색인이 생성되지 않음’ 상태에 머물 수 있습니다. 저희는 DA 3인 사이트를 일곱 언어로 운영하며 이런 상황을 봅니다. 번역 페이지마다 Google이 색인할지 판단해야 하고, hreflang은 각 언어 페이지가 나머지 모든 언어 페이지를 다시 가리킬 때 효과가 있습니다. 실제 검색 수요가 있는 조합만 색인하고 나머지는 도메인 신뢰가 쌓일 때까지 noindex로 두는 방안을 고려하겠습니다. 적고 강한 페이지가 더 빨리 크롤링됩니다. Search Console에서 사이트맵 URL 중 몇 개가 색인됐나요?
- @GregoryScottHenson — 3일 만에 만드는 일은 쉬운 부분입니다. 신발 841종과 매일 바뀌는 가격을 두고 카탈로그를 최신으로 유지하며 신뢰를 얻는 일이 진짜 장벽입니다. 사양과 가격을 계속 갱신할 계획은 무엇인가요? 광고가 없다는 말은 제휴 수익만 얻는다는 뜻인가요?
- @VidiAI — 광고를 쓰지 않는 방향이 좋습니다. 저도 스포츠 분야의 연습 영상 앱을 만들고 있는데, 유료 광고가 맞지 않는 사용자를 데려오는 상황이라 긴 카탈로그와 SEO 작업이 적절해 보입니다. 어떤 언어 시장에서 먼저 전환이 일어날지 궁금합니다.
- @AmandaBrown — 841종을 여섯 언어로 3일 만에 만들었다는 수치가 병렬 에이전트의 효과를 보여주는 기준이 됩니다. 신발별 사양을 세 출처에서 모으는 데이터 작업은 병렬화하기 좋습니다. 전통적인 방식이라면 주말 프로젝트로 시작해 중복 제거에 몇 주를 쓰게 됩니다. ‘광고 없음’이라는 선택은 흥미롭습니다. 제휴 링크도 사용자를 클릭으로 유도한다는 점에서 신뢰 관점의 광고 영역에 들어갑니다. 깔끔함을 유지하는 비교 서비스는 보통 프리미엄 필터·가격 알림 구독이나 B2B API를 씁니다. 사양 표준화는 어떻게 처리하나요? 스택 높이와 드롭은 구조화된 데이터에서 읽기 쉽지만 ‘슈퍼 폼’과 ‘카본 플레이트’는 브랜드마다 실제 의미가 크게 다릅니다. 직접 태그를 붙이나요, 아니면 에이전트가 처리하나요?
- @serverdrop — 비교 서비스는 비교하면 안 되는 항목을 묶을 때 실패합니다. 레이싱 플랫과 맥스 쿠션을 구분한다고 밝힌 점이 신발 수보다 실제 제품에 가깝습니다. 커뮤니티 디렉터리도 모든 Discord 서버를 같은 것으로 취급할 때 같은 문제가 생깁니다. 카드에는 가입 버튼보다 먼저 누구에게 맞는지 보여야 합니다. 광고 없는 신발 841종은 좋은 제약입니다. 사용 목적에 맞는 정도, 거리, 쿠션, 드롭을 먼저 기준으로 삼고 가격은 다음에 보나요?
- @aryan_sinh — 트래픽과 매출이 아직 없다면, 러너가 구매 결정을 Runometry에 맡길 만큼 신뢰하는지 어떤 첫 신호로 확인할 건가요?
- @Tim — 서비스가 공개된 지 3일밖에 안 돼 트래픽이나 전환으로 결론을 내리기에는 이릅니다. 첫 검증 기준은 더 기본적입니다. 누군가 신발을 검색해 정확한 모델을 찾고, 어디에서 얼마에 살 수 있는지 명확하게 비교한 뒤 좋은 경험을 하는 것입니다. 그 경험이 안정적으로 작동하면 기반이 됩니다. 시간이 지나며 차별화할 기능은 가격 이력과 가격 알림이라고 봅니다. 새 신발을 당장 사지 않을 때도 다시 방문할 이유를 주기 때문입니다. 지금은 의미 있는 사용자 기반 없이 지표를 최적화하기보다 기본 경험을 제대로 만드는 데 집중합니다.
- @aryan_sinh — 트래픽으로 전환 데이터를 얻기 전에도 검색과 비교 경험을 구체적인 검증 기준으로 삼을 수 있겠네요. 괜찮다면 연락할 이메일 주소가 있나요?
- @Tim — [email protected]으로 연락하시면 됩니다. 무슨 이야기를 나누고 싶은지 궁금합니다. 오늘 댓글을 꽤 많이 남기신 것 같아 자동화된 연락이나 스팸은 아닌지 확인하고 싶습니다.
- @aryan_sinh — 감사합니다. 이메일을 보냈습니다. 시간 되실 때 의견 나누길 기다리겠습니다.
원문: Indie Hackers / 번역·요약: Trawling