Show HN: Capsule, UI와 SQLite 데이터를 .capsule 파일 하나에 담는 단일 파일 데스크톱 앱
- Capsule은 UI와 미디어 자산, 로컬 SQLite 데이터를
.capsule파일 하나에 묶어 PDF처럼 메신저나 이메일로 주고받는 데스크톱 앱 포맷임. v0.4.0 설치 파일을 macOS, Windows, Linux용으로 무료 배포하고 Mac 버전은 10MB임 - 런타임은 Electron처럼 Chromium을 번들하지 않고 Tauri로 OS 웹뷰를 쓰며, HTML과 CSS 표준만 사용해 벤더 종속이 없음. iOS와 Android 지원은 예정 단계임
- 프롬프트로 앱을 생성하고 수정하는 AI 앱 생성 기능이 있고, ChatGPT나 Claude, Gemini에
prompt.txt지침을 읽혀 앱을 만들거나 MCP 도구로 스키마와 다크모드를 고치는 방식임 - 사본이 갈라졌을 때의 병합은 레코드마다 UUID와 타임스탬프를 남기고 삭제 시 tombstone을 보존하는 방식이며, 현재 충돌은 최신 데이터 우선으로 처리하고 병합 UI는 추후 제공 예정임
- 클라우드와 계정, 네트워크 없이 오프라인으로 동작하고 데이터가 파일 안에만 있어 서버 침해 노출이 없음. 대신 파일을 열려면 플랫폼별 호스트 플레이어를 설치해야 함
Hacker News opinions
이거 진짜 누구를 위한 건지 모르겠음. 어떤 문제를 푸는 건지, 내가 이게 필요한지 어떻게 아는지 감이 안 옴.
엑셀로 데이터 관리하거나 레시피 저장하려고 앱을 깔는 사람한테는 대안임. SaaS 구독 없이 시간이랑 청구 추적도 되고, 프리뷰에서 예제 돌려볼 수 있음.
.capsule 파일을 열려면 호스트 앱을 깔아야 하는 거 아님? 배포할 때 마찰이 클 텐데, 브라우저가 이미 있는데 HTML/CSS가 더 나은 배포 수단 아니냐.
문제는 엑셀처럼 파일 하나 클릭해서 데이터가 저장되는 방식을 못 만든다는 거임. 따져보면 엑셀도 UI와 데이터가 한 파일에 든 물건임.
브라우저가 로컬 HTML의 JS를 사실상 죽여놨음. 같은 폴더 JS 파일 불러오면 CORS 에러 남. 그래서 1MB짜리 웹코드 돌리려고 200MB 크로미움을 통째로 넣는 거임.
TiddlyWiki 생각남. 단일 HTML 파일 하나로 돌아가는 위키인데.
크로미움 File System API에 PWA 매니페스트 붙이면 비슷하게 흉내낼 수 있음. 다만 Capsule의 핵심은 문서처럼 USB에 옮기고 클라우드에 넣어도 UI도 데이터도 그대로라는 점임.
Lotus Notes가 떠오른다.
에이전트 코딩으로 업무 자동화를 시험하는 회사들이 백엔드 유지보수 비용이 안 맞는 워크플로를 배포할 때 쓸 만함. MS Access의 현대판 같음.
IndexedDB 쓰면 안 되나?
폼에 필드를 추가할 때 마이그레이션 처리가 복잡해짐. 데이터를 스키마리스로 두면 CSV 병합이나 가져오기도 쉬움.
인젝션 공격에 취약해 보임. 실행 전에 내용을 검사할 수 있는 건가?
상태가 바뀌는 앱이면 파일을 계속 새로 메일로 보내야 함. 웹에 호스팅하면 DB가 알아서 갱신되고 접근 권한 있는 사람은 다 쓰는데 그게 훨씬 간단하지 않나.
드롭박스 같은 공유 드라이브에 두면 되지 않나. 동시 편집은 안 되겠지만. 호스팅 비용이랑 데이터 보안 부담을 빼먹었는데, 개인용 앱이면 오히려 로컬 공유가 맞음.
신종 바이러스 유포 수단 등장. 아이디어는 좋은데 악용될 구멍이 확실함.
HTML 파일은 파일시스템 접근 권한이 없음. 데스크톱에서도 앱 전체가 샌드박스로 돌면 되고, 모바일은 어차피 기본임.
sqlar를 포맷 스펙 삼아 브라우저와 데스크톱, 안드로이드에서 Tauri로 같은 걸 만들고 있음. 참고로 데모가 파이어폭스에서 CORS로 막혀서 아예 로드가 안 됨.
캡슐을 인터넷에 노출하고 이름을 입력하면 사용자 기기로 가져오는 기능이 킬러 기능이 될 듯.
AI가 만든 결과물에 데이터를 넣을 방법이 없던 게 문제였는데 이게 그걸 품. 다만 두 사람이 같은 .capsule을 각자 고치면 사본 두 개가 남는데 어떻게 병합하나?
레코드마다 UUID와 타임스탬프를 저장하고 삭제하면 tombstone만 남김. 충돌은 지금은 최신 우선이고 나중에 병합 UI가 붙음. 그리고 Mac 다운로드는 설치하면 '손상되었습니다'로 뜸.