Show GN: Threads API - 첫 번째 비공식 스레드 API 클라이언트
(github.com/junhoyeo)배경
- 어제 아침에 메타(인스타그램)가 트위터 대항마로 내놓은 앱, 스레드(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 를 연동하는 클라이언트로 재빠르게 프로젝트의 포지션을 변경함
- ChatGPT Client를 가장 먼저 만든 사람 중 하나였던 Travis Fischer
- 메타가 움직일 때도, 발빠르게 공식 연동을 추가하면 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 컴포넌트 만들기
- 오픈소스 커뮤니티에 의해 메인테이닝되는 커스텀 클라이언트 런칭
멋집니다.
저도 쓰레드 보고 누군가 또 API 만들겠지 라는 생각을 했는데,
실제로 정말 발빠르게 실행에 옮기셨군요!
순항해서, 공식 라이브러리로 합류하길 기원합니다.
감사합니다! write 구현하고 나서 공개하지 않고 read만 먼저 올리고 선점한 게 신의 한 수였던 것 같습니다 ㅎㅎ
공식 라이브러리는 물 건너갔지만 앞으로도 재미있는 프로젝트들 많이 해보겠습니다!