1인 여성 개발팀으로 2백만명 사용자 달성하기
(brightonruby.com)- Nadia Odunayo가 Brighton Ruby에서 발표한 내용의 요약
2020년 1월 1일로 돌아가기
- 2024년 6월 시점에서 2020년 1월 1일로 돌아가 Storygraph의 초기 성과를 회상
- 창업 후 1년 동안 매일 개발에 매진하며, 드디어 "사용자 100명 가입"이라는 목표를 달성
- 당시 Storygraph는 독자들이 다음에 읽을 책을 선택할 수 있도록 돕는 "책 추천 도구" 였음
- 웹사이트는 몇 천 권의 책 리스트를 제공하며, 기분, 속도, 장르, 책 크기 등으로 필터링 가능
- 초기 사용자:
- Nadia의 친구들, Instagram의 독서 커뮤니티(Bookstagram)에서 DM으로 유입된 사람들
- 사용자들은 잠재력을 보고 지인들에게 소개하며 점진적으로 사용자 기반 확장
- 2020년 새해를 기념하여 베타 버전을 재출시
- 새해를 독서 목표를 설정하는 시기로 여기는 독자들에게 동기 부여
- 작은 이벤트 효과로 "160명 사용자 가입, 100명의 신규 방문자" 유치
- 방문자는 평균 "6분 30초" 동안 웹사이트를 탐색하며 긍정적인 반응
- 2019년 동안 제품 개발에 집중하며 사람들이 책 추천이나 Goodreads 대안을 찾을 때 보낼 만한 제품을 만들기 위해 노력
- "Goodreads 대체제"를 목표로 한 것은 아니었지만, 특정 사용자층에게 더 나은 서비스가 될 가능성을 엿봄
- 2020년을 맞아 새로운 성과에 힘입어 더욱 열정적으로 프로젝트를 지속
팬데믹과 초기 성장
- 팬데믹으로 인해 집중적인 개발 시간이 확보되었고 독서율이 증가하며 신규 가입자도 늘어남
- 그러나 제품의 완성도가 낮다고 느껴 "공식적으로 홍보"하는 데 두려움이 있었음
- 기사나 사용자 의견에 대응하지 않고 조용히 개발에 전념
- 2020년 5월까지 Storygraph는 여전히 간소한 기능만 제공했으며, 혼자 제품 개발을 진행해 기술적으로 부족함을 느끼며 불안감과 취약함을 느낌
- 독서 커뮤니티에서 꾸준히 활동하며 사용자들이 새로운 대안을 요구하는 트렌드를 관찰
- 기존의 100명 사용자 달성에서 얻은 자신감과 동력으로 서비스를 본격적으로 알리기로 결정
트위터 확산과 사용자 1,000명 돌파
- 2020년 5월 27일, 트위터에서 Storygraph에 대한 긍정적인 반응한 약 100명에게 답장을 보내거나 DM을 통해 연락
- 대부분은 응답하지 않았지만, 일부는 프로젝트의 잠재력을 이해하고 관심을 보임
- 일부 사용자는 Goodreads와의 기능 비교를 하며 부족함을 지적
- 당시 Storygraph는 기능이 제한적이어서 Goodreads와 경쟁하기 어려운 상황
- 프로젝트의 가치를 이해한 소수의 사용자들이 독서 커뮤니티에 Storygraph를 소개
- 독서 친구들에게 제품을 추천하며 사용자 기반이 확대
- 2020년 6월 11일, Storygraph의 사용자 수가 "1,000명"을 돌파
- 홍보 시작 후 단 2주 만에 사용자 수가 두 배 이상 증가
- Instagram 스토리에서 축하 이벤트 개최
트위터 폭발과 급격한 성장
- 2020년 6월 16일, Emma Barnes(Consonance Books 운영)가 트윗 작성:
- “출판업계 모두 Storygraph를 알아야 한다. 몇 년 만에 최고의 혁신. 거대 기술 기업의 형편없는 소프트웨어에 의존하지 말자.”
- 이 트윗은 앱 활동을 약간 증가시켰으나 큰 반응은 없었음
- 이후 Sam Missingham이 Emma의 트윗을 인용하며 더 인기를 끌게 만듦:
- “Book Twitter, 이제 Goodreads 대신 이걸 써보자. 5분 써봤는데 이미 훨씬 낫다. 게다가 흑인 여성이 설립했으며 Amazon이 운영하지 않는다.”
- Sam의 트윗 이후 활동량이 빠르게 증가
- 트윗 내용이 큰 반향을 일으킨 이유:
- Book Twitter 커뮤니티의 관심을 끌었음
- 사람들이 대안을 원하던 Goodreads를 겨냥
- Black Lives Matter 운동의 여파로 흑인 창작자를 지지하려는 에너지가 많았음
- 팬데믹 중 Amazon 독점에 대한 반감이 커진 상황과 맞물림
- 트윗이 빠르게 확산되며 Storygraph의 사용자 증가:
- 수십 명에서 시작해 수백, 수천 명으로 확대
- 이메일 알림(“Goodreads 데이터 가져오기 시작”)이 급증하며 시스템에 부하 발생
- 트윗이 예상치 못한 속도로 바이럴되며 수많은 사용자가 가입
- 사용자 수 폭증으로 인해 기술적 문제와 "과부하 상황" 발생
어두운 날들
- Goodreads 데이터 가져오기 기능이 지연되면서 사용자 불만이 증가
- 수천 명의 사용자에게 데이터 가져오기가 진행 중이라는 메일을 보냈지만, 가져오기 속도가 매우 느려져 수개월이 소요될 상황
- 수많은 문제를 동시에 해결해야 하는 상황으로 극심한 스트레스를 받음
- 트위터 사용자들에게 응답
- 실패하는 데이터 가져오기 처리
- 앱의 코드를 재작성하여 가져오기 속도를 몇 개월에서 "몇 일로 단축"하기
- 2020년 6월 17일, 또 다른 바이럴 트윗이 확산되며 사용자 급증:
- “하루 사용해 봤는데 너무 좋아서 정신을 못 차리겠다”라는 트윗이 인기
- 매시간 수백에서 천 명 단위의 신규 가입 발생
- 결과적으로 시스템 과부하:
- Goodreads 가져오기 불가
- 개인화 추천 기능 미작동
- 백그라운드 작업 완전 중단
- 사용자 수가 1,000명을 넘어 "10,000명"에 근접하며 압박을 느끼기 시작
- "나는 B2C 비즈니스를 원한 적이 없었다"는 생각과 함께 회의감
- 고립감을 느끼며 "어두운 욕실"에 앉아 생각에 잠김
- “나 못하겠어”라는 말을 참았지만, 거의 그럴뻔 했음
창업 이야기: 처음으로 돌아가기
- 어떻게 했을까? 여기서 잠깐 앞으로 돌아가 봄
- 개인적으로 학구적인 배경에서 자라며 Oxford에서 철학, 정치, 경제를 전공했음
- 부모님의 권유로 금융 안정성을 위한 투자은행 경로를 따르려 했음
- 그러나 투자은행 직업에 회의를 느끼고 졸업 후 제안을 거절
- 런던의 Makers Academy 소프트웨어 부트캠프에서 코딩을 배우기로 결심
- 개발자와 소통하기 위한 기본적인 코딩 스킬을 목표로 참여
- 개발자에 대한 고정관념을 깨고 코딩의 가치를 깨달아 본격적으로 몰입
- Makers Academy 졸업 후 Pivotal Labs에 취업
- 1년 반 동안 Cloud Foundry 플랫폼 작업
- 이후 동료 Theo Christian과 함께 Ignition Works라는 컨설팅 및 제품 개발 회사 창업
- 이 시기에 FIRE 운동(재정적 독립 및 조기 은퇴) 에 관심을 갖게 됨
- 경제적 독립성을 확보해 자신과 창업 활동에 투자할 수 있는 기반을 마련하고자 함
- 그러나 Ignition Works에서의 목표와 파트너십이 기대에 미치지 못해 퇴사
- 회사 자금의 절반을 인출해 5년간의 자금 여유를 확보
- 친구 Saron Yitbarek와 함께 Code Newbie 프로젝트에 참여
- 코딩을 배우는 사람들을 위한 커뮤니티를 제품 기반 회사로 전환하려 했으나 실패
-
2019년 1월 3일, 책상에 혼자 앉아 창의적인 방향성을 고민
- 자금은 2022년까지 사용할 수 있었지만 큰 아이디어가 없었음
- 오래전부터 고민하던 두 개의 사이드 프로젝트에 시간을 투자하기로 결정:
- Runroot: 러닝 루트를 자동 생성하는 앱
- ReadLists: 맞춤형 독서 리스트를 만들고 진행 상황을 추적할 수 있는 대시보드 앱
- Storygraph는 ReadLists 아이디어에서 비롯되었고, 이 결정에 접근한 방식이 Storygraph 성공의 핵심
세 가지 원칙
- 모든 것은 창업자가 통제할 수 있는 요소와 그렇지 않은 요소를 구분한 접근 방식에서 비롯됨
- 통제할 수 없는 요소: 바이럴 트윗, 새로운 경쟁자 등
- 통제할 수 있는 요소: 회사와 제품을 설계하는 방식
- 성공을 위한 세 가지 주요 원칙
- 기술을 단순하게 유지: 복잡한 기술 대신 안정적이고 성숙한 도구를 활용
- 고객과 지속적으로 대화: 고객 피드백을 제품 개선에 반영
- 비용을 낮게 유지: 효율적인 운영을 통해 재정 안정성 확보
첫 번째 원칙: 기술 단순화
- 첫 번째 원칙인 기술 단순화에 따라 다음과 같은 방향 설정
- 이미 잘 아는 기술을 활용
- 필요 이상의 복잡성을 피하며 문제 해결에 필요한 최소한의 기술만 사용
- 안정적이고 성숙하며 "지루한" 도구와 플랫폼 선택
- 개인적으로 가장 적합했던 기술 스택은 Rails였음
두 번째 원칙: 고객과 지속적으로 대화
- Rails로 개발하는 과정에서 즐거움을 느끼며 책과 관련된 프로젝트에 몰두하고자 결심
- 성공적인 제품 개발을 위해 두 번째 원칙, 고객과 지속적으로 대화하는 방식을 도입
- 고객 대화의 중요성
- 아무도 원하지 않는 제품을 만드는 것만큼 나쁜 것은 없음
- 고객과 대화해야 한다는 것은 모두가 알지만, 이를 제대로 수행하는 방법이 중요
- 스크립트를 준비하고 열린 질문을 통해 탐구에 집중
- 확인 편향을 피하고 진정한 문제를 발견하는 것에 초점
- 초기에 저질렀던 실수
- 너무 일찍 데모를 보여주며 구체적인 피드백을 받지 못함
- 대신 독서 습관, 불편한 점 등과 관련된 열린 질문을 사용
- 인터뷰 결과를 5개씩 검토하고 요약하며 주제를 가상 화이트보드에 정리
- 알파와 베타 제품 개발
- 초기 피드백을 통해 유용한 기능(개인화 추천 서비스)의 아이디어를 도출
- 많은 초기 기능은 수동으로 처리하며 과도한 개발을 피함
- 이는 첫 번째 원칙, 기술 단순화의 적용 사례
- 소규모 그룹으로 사용자 온보딩을 진행하며 고객 피드백을 지속적으로 수집
- 알파 제품의 한계를 다다르자 보다 완성된 베타 제품을 개발
세 번째 원칙: 비용을 낮게 유지하며 베타 성장
- 2019년 9월 2일, 베타 버전을 공개하며 뉴스레터 구독자들에게 공유를 독려
- 피드백이 본격적으로 들어오기 시작하며, 수동으로 책 요청을 처리할 직원을 파트타임으로 고용
- 여전히 비용을 최소화하며 개인 자금을 사용해 운영, 남아있는 자금으로 지속 가능성 확보
- 몇 달 후 Rob Freelove가 프로젝트에 관심을 보이며 머신러닝 지원을 제공
- 그의 도움으로 기술 개발을 이어가며 제품 품질과 사용자 경험을 개선
급격한 성장, 어두운 날들이 다시 오다, 그리고 확장
- 세 가지 원칙에 충실하며 천천히 그러나 꾸준히 사용자 기반을 확장하며 점진적으로 성장
- 2020년 6월 17일, 트위터 바이럴 효과로 사용자가 급격히 증가
- 수천 명이 Goodreads 데이터를 가져오려 시도하며 시스템 과부하 발생
- 백그라운드 작업 실패와 서버 확장 불능 상태에 도달
- 상황이 압도적이었고, 포기하고 싶었던 **"어두운 순간"**을 경험
- 그러나 포기는 선택지가 아니었음
- 2주간의 "어두운 날들" 동안 다음을 포함한 주요 문제를 해결
- 코드 재작성
- 서버와 데이터베이스 업그레이드
- 새로운 문제에 대한 대응
- 지속적 성장과 수익화 필요성 인식
- 위기를 극복한 후, 매일 수백 명의 사용자가 가입하며 입소문을 통해 성장 지속
- 결정에 어려움을 겪을 때마다 고객과의 대화를 통해 방향성을 찾아감
- 사용자 기반이 충분히 커지면서 수익 창출 방법을 고민하기 시작
Storygraph Plus 도입과 수익화로 가는 길
- 비용 절감만으로는 한계가 있어 수익 창출 방안을 모색
- 여러 비즈니스 모델을 검토한 끝에 고객 직접 결제를 통한 프리미엄 모델(freemium) 도입 결정
- Storygraph Plus 사전 주문 페이지 제작
- Stripe 결제 통합: 초기에는 구독 없이 USD로만 결제 가능
- 구매자를 백엔드에서 "Early Bird"로 표시
- 뉴스레터를 통해 Storygraph Plus를 알리고 사전 주문 시작
- 많은 사용자가 독립적인 Goodreads 대안을 지원하고 싶어하며 주문
- 초기 몇 주간 수백 건의 사전 주문 확보
- 고객의 반응을 통해 Plus 모델의 시장성을 검증
- 2021년 1월 1일, Storygraph 공식 출시와 함께 도메인 변경
- 사용자가 100,000명을 돌파하며 큰 성과 달성
- Early Bird 가격 종료 후 정가로도 사람들이 결제하는지 확인하며 Plus 기능 개발
- 2021년 2월 28일(또는 일부 지역은 3월 1일)에 Storygraph Plus 공식 출시
- 1,400건의 사전 주문으로 약 $50,000 수익 달성
- 실제 Plus 기능 사용이 시작된 이후에도 고객의 흥미와 만족 지속
모바일 앱 개발, Heroku 이전, 그리고 지속적 성장
- 2021년 5월, Storygraph의 가장 큰 문제는 모바일 앱의 부재였음
- 기존에는 PWA(Progressive Web App)를 제공했으나 사용자는 앱 스토어에서 설치 가능한 네이티브 앱을 원함
- 비용 절감과 기술 단순화 원칙을 유지하며 Rails와 Hotwire/Turbo 모바일 어댑터를 활용
- 최소한의 Swift/Kotlin과 Ruby를 결합하여 6주 만에 앱 개발 및 출시
- 앱 출시 이후 가입자 수 증가
- Heroku에서 Cloud 66으로의 이전
- 바이럴 TikTok과 사용자 급증으로 Heroku 운영 비용 증가
- Heroku 서버 비용: 사용자 증가와 함께 월 $10,000까지 상승
- Rob이 수개월 동안 대체 플랫폼을 조사한 끝에 Cloud 66으로 이전 결정
- 2022년 1월 22일, Cloud 66으로 마이그레이션 완료
- 서버 비용을 80% 절감하며 월 $4,000로 축소, 더 높은 용량 확보
- 이전 과정에서 모든 사용자가 로그아웃되는 문제 발생했으나 신속히 해결
- 바이럴 TikTok과 사용자 급증으로 Heroku 운영 비용 증가
- 2022년 6월 26일, Storygraph 사용자 100만 명 돌파
- 현재:
- 2.7백만 명의 등록 계정
- 약 25%의 월간 활성 사용자
- 월 7백만 명의 고유 방문자
- 70백만 페이지뷰 및 하루 1,100만 요청 처리
- 2019년에 시작한 Rails 레포지토리를 기반으로 여전히 운영
- 현재:
- 수익 및 비용 현황:
- 월간 비용: 약 $20,000
- 월간 반복 수익: 약 $60,000
- 수익성이 확보되어 창립자인 Rob과 Nadia 모두 급여를 받을 수 있음
성공의 이유
- 운도 있었지만, Storygraph 성공의 핵심은 다음의 세 가지 원칙을 일관되게 유지한 것
- 기술 단순화
- 고객과 지속적 대화
- 비용 절감
한달전에 1인 개발팀, 200만 사용자 달성 [비디오] 라고 비디오 링크가 올라왔는데, 발표 스크립트는 없어서 Whisper를 이용해서 영상의 스크립트를 따서 정리해 봤습니다.
해당 글에 있는 댓글들도 참고 하세요.
뭔가 커뮤니티의 활성화가 어마어마하게 자란 느낌이예요. 이 발표는 Rails SaaS Conference 에서도 진행된 것 같은데, "SaaS" 컨퍼런스가 따로 있다니...