저는 브라우저를 위한 작고 로컬 우선인 도구를 만듭니다.
대부분의 제품은 같은 불편에서 시작합니다. 한 단계면 될 일이 마흔 단계 걸리는 것. 지금 출시하는 것은 Saver — 콘텐츠를 모두 사용자의 디스크에 남기는 미디어 아카이버입니다. 플랫폼마다 확장 프로그램 하나, 로컬 코어는 공유합니다.
- 역할
- 개발자
- 위치
- 원격
- 스택
- Chrome MV3, 바닐라 JS, Node
- 중점
- 로컬 우선 도구
소개
저는 브라우저 확장 프로그램과 그 주변의 작은 도구들을 만듭니다. 늘 되돌아오는 원칙이 하나 있습니다. 기능에 서버가 필요하다면 그럴 만한 이유가 있어야 한다는 것입니다. 대부분은 그렇지 않습니다.
그래서 이곳의 모든 제품은 전적으로 사용자의 기기에서 실행됩니다. 계정도, 텔레메트리도, 가입할 것도 없습니다. 코드가 예상보다 작은 이유이기도 합니다.
작업
하나의 Chrome 확장 프로그램 패밀리, 그리고 이를 만드는 도구들.
Saver — Instagram Media Archive
보관 권한이 있는 게시물, Reels, Stories, 하이라이트를 디스크에 바로 저장하세요.
Chrome 확장 프로그램 7개 중 1개 출시Saver 패밀리 · 7개 플랫폼
Instagram, X, TikTok, Douyin, Rednote, Kuaishou and YouTube — 각각 개별로 구현하고, 로컬 코어는 공유합니다.
Chrome 확장 프로그램 구매 가능Saver Family Bundle
키 하나로 모든 플랫폼 에디션을 활성화합니다. $19.9 1회 구매.
$19.9도구
이 프로젝트들을 위해 작성한 작은 유틸리티로, 쓸모가 있어서 남겨 둔 것들입니다.
sync-core
공유 라이브러리를 각 앱에 복사하고, 복사본이 원본과 어긋나면 빌드를 실패시킵니다.
Node CLIsite-build
이 사이트를 생성합니다. 하나의 템플릿 세트와 언어별 JSON 하나로 10개 언어를 만듭니다.
Node CLIlicense-keygen
Ed25519 라이선스 키를 오프라인으로 발급하므로 활성화에 서버 호출이 필요 없습니다.
Node CLI노트
무엇이 깨졌고 무엇이 통했는지, 다시 한다면 어떻게 할지에 대한 기록.
- 곧 공개확장 프로그램에 백엔드가 없어야 하는 이유 계정, 클라우드 storage, 서버 측 스로틀링은 편의를 주는 대신 데이터 위험과 운영 부담을 안깁니다. 로컬 우선 방식이 실제로 포기하는 것과 그 대가로 되찾는 것.
- 곧 공개속도 제한은 오류 상황이 아니라 제품 결정이다 무료 할당량, 배치 크기, 백오프. 속도 제한을 닥쳤을 때 처리할 예외가 아니라 설계할 제품 표면으로 다루는 방법.
- 곧 공개하나의 파일을 열 개 언어로 배포하기 문구 하나, 10개 언어, 100페이지 이상. 의존성 없는 빌드로 어긋남을 막는 방법.