17P by junhoyeo 2023-07-08 | favorite | 댓글 10개

배경

  • 어제 아침에 메타(인스타그램)가 트위터 대항마로 내놓은 앱, 스레드(Threads)가 출시, 런칭 7시간 만에 천만 유저에 도달
  • 스레드의 하입을 지켜만 볼 수는 없겠다는 생각, 이 기회를 어떻게 활용할까 고민
  • 비공개 API를 사용해 TypeScript/Node.js 클라이언트를 만들기로 결정
    • 3년 전에도 클하가 웹앱 없이 런칭하자, SSL Proxy로 API 요청 까서 웹 서비스를 만들었던 적 있음(junhoyeo/clubhouse-profile). 주변에서는 재미있어 했지만 그 이상의 임팩트를 내지는 못함
    • 하지만 이번에는 시기상 다시 해볼만한 전략이라고 느낌:
      • 작년에 ChatGPT가 나오고 개발자들이 비공식 클라이언트/서비스들을 만들면서 생태계 전체가 발전해 나감
      • 아직도 깃허브 피드를 보면 ChatGPT/OpenAI SDK나 커스텀 클라이언트를 다루는 새로운 레포지토리들을 쉽게 볼 수 있음
    • 이번에 다시 해본다면 훨씬 재미있게 해볼 수 있을 것 같았음

추후 방향성

  • 스레드는 마스토돈이 추진하는 페디버스 생태계와 호환되게끔 연동을 준비중
  • 일론 머스크의 트위터, (그리고 발빠르게 따라한) 레딧 등, SNS들의 API 장사가 또 하나의 트렌드
  • 메타가 스레드의 API를 외부에 공개하는 것은 시간 문제일 것
  • ChatGPT의 사례
    • ChatGPT Client를 가장 먼저 만든 사람 중 하나였던 Travis Fischer
      • 14k 이상 스타를 가진 transitive-bullshit/chatgpt-api 레포 등 보유중
      • OpenAI 가 GPT4 API를 대부분 사용자가 접근할 수 있게 출시한 뒤에는 Unofficial Client 에서 Official API 를 연동하는 클라이언트로 재빠르게 프로젝트의 포지션을 변경함
  • 메타가 움직일 때도, 발빠르게 공식 연동을 추가하면 SDK 라이브러리 자리를 선점해둘 수 있겠다는 판단을 했음

진행

  • 밤 9시에, 30분 동안 사용자 이름(username)에서 Threads가 내부적으로 사용하는 User ID를 구하고, 이걸로 GraphQL 쿼리를 때려서 사용자 프로필과 올린 스레드를 가져오는 기본적인 기능을 만들어 올리면서 threads-api 레포지토리를 시작함
  • 키워드 때문인지 바로 새로운 개발자들이 유입, 무슨 레포인지 묻는 이슈가 달림
  • Working in Public으로 계속 개발
  • 당일 Next.js, Tailwind로 Reader 데모를 만듦

성과

  • 단 하루 만에 200개 넘는 스타와 6,000 개 이상의 페이지뷰를 기록
  • 다양한 국적의 개발자들이 기여, 스레드 및 트위터로 아이디어 공유
  • 여기서 영감을 받은 사람들이 Rust, Go, Java, Python 버전의 클라이언트들을 만듦
  • 깃허브 이슈를 통해서 스폰서 제의도 받음

앞으로

  • 인증 연동
  • 신나는 UI 컴포넌트 만들기
  • 오픈소스 커뮤니티에 의해 메인테이닝되는 커스텀 클라이언트 런칭

ㅜㅜ Meta demands that you stop these activities immediately.

다행히 연락 온 로펌 변호사분과 잘 마무리했네요. 지나고 나서 보니 그냥 재미있는 헤프닝이였던 것 같습니다. ㅋㅋ

Github trending 축하드립니다 ㅊㅊ

지금 확인했네요. 감사합니다! 이번이 트렌딩 처음 탔던 것 같은데, 한번 올라가기만 하면 봇들이 여기저기 날라주더라고요 ㄷㄷ

멋집니다.

저도 쓰레드 보고 누군가 또 API 만들겠지 라는 생각을 했는데,
실제로 정말 발빠르게 실행에 옮기셨군요!

순항해서, 공식 라이브러리로 합류하길 기원합니다.

감사합니다! write 구현하고 나서 공개하지 않고 read만 먼저 올리고 선점한 게 신의 한 수였던 것 같습니다 ㅎㅎ
공식 라이브러리는 물 건너갔지만 앞으로도 재미있는 프로젝트들 많이 해보겠습니다!

대단하네요!

고맙습니다!!