Capsule: Ứng dụng web một tệp duy nhất, lưu dữ liệu thẳng vào SQLite
Capsule là ứng dụng viết bằng Rust và Tauri 2.0, cho phép đóng gói toàn bộ ứng dụng HTML cùng dữ liệu vào một tệp SQLite duy nhất với đuôi .capsule. Người dùng có thể chia sẻ tệp này qua WhatsApp, AirDrop hay email như một tài liệu thông thường, mở ra là chạy ngay, không cần máy chủ hay tài khoản.

Nếu bạn từng muốn tạo một ứng dụng nhỏ cho riêng mình nhưng ngại chuyện lưu trữ dữ liệu và chia sẻ cho người khác, Capsule có thể là giải pháp bạn đang tìm.
Ứng dụng như một tài liệu
Capsule là dự án mã nguồn mở được viết bằng Rust kết hợp với Tauri 2.0, ra mắt trên Hacker News và nhanh chóng thu hút sự chú ý của cộng đồng lập trình viên. Ý tưởng cốt lõi rất đơn giản: gói toàn bộ giao diện HTML, tài nguyên và dữ liệu của bạn vào một tệp duy nhất có đuôi .capsule — thực chất là một tệp SQLite.
Điểm hấp dẫn nằm ở chỗ tệp này hoạt động giống như một tài liệu Word hay PDF. Bạn có thể gửi nó qua WhatsApp, AirDrop hay email. Người nhận chỉ cần mở ra là ứng dụng chạy ngay lập tức với toàn bộ dữ liệu đã được nạp sẵn, không cần cài đặt máy chủ, không cần đăng ký tài khoản, không cần kết nối mạng.
"Tôi luôn gặp vấn đề là việc tạo trang HTML giờ đây rất đơn giản, nhưng để lưu dữ liệu thì phải host ở đâu đó, và sau đó chia sẻ lại càng không dễ."
Đây là chia sẻ của tác giả dự án trên Hacker News, và cũng chính là động lực để anh xây dựng Capsule trong nhiều tháng qua.
Cách dữ liệu được lưu trữ
Capsule hỗ trợ hai cơ chế lưu dữ liệu chính:
- LocalStorage key/value: lưu trữ đơn giản theo cặp khóa – giá trị.
- Collections API lấy cảm hứng từ MongoDB: lưu dữ liệu dưới dạng tài liệu (document) trong một bảng của tệp SQLite.
Bạn còn có thể lưu các tài nguyên khác như tệp PDF hay hình ảnh trực tiếp vào cơ sở dữ liệu, giúp gom mọi thứ liên quan vào cùng một chỗ. Toàn bộ dữ liệu đều có thể xuất ra CSV hoặc JSON khi cần.
Một hạn chế được tác giả thừa nhận là khi nhiều người cùng làm việc trên một tệp, họ sẽ tạo ra các bản sao khác nhau. Để giải quyết, mỗi bản ghi dữ liệu đều được gắn UUID duy nhất cùng dấu thời gian, tạo tiền đề cho việc hợp nhất các bản sao trong tương lai.
Bảo mật và quyền riêng tư đặt lên hàng đầu
Tác giả nhấn mạnh rằng bảo mật là ưu tiên lớn. Theo mặc định, các tài liệu Capsule không thể làm gì ngoài phạm vi của chúng:
- Không có quyền truy cập trực tiếp vào hệ thống tệp.
- Muốn kết nối internet phải được cấp quyền rõ ràng.
- Dữ liệu nằm hoàn toàn trên thiết bị, không qua máy chủ đám mây.
Điều này đặc biệt phù hợp với người dùng Việt Nam quan tâm đến quyền riêng tư dữ liệu cá nhân, nhất là trong bối cảnh các vụ rò rỉ dữ liệu từ nền tảng đám mây ngày càng phổ biến.
Tích hợp AI để tạo ứng dụng
Capsule cho phép các tài liệu sử dụng mô hình AI cục bộ hoặc từ xa cho các tính năng riêng của từng ứng dụng. Người dùng có thể dùng trợ lý AI quen thuộc như ChatGPT, Claude hay Gemini để sinh ứng dụng từ mô tả bằng ngôn ngữ tự nhiên.
Quy trình gồm ba bước:
- Mô tả ý tưởng: nêu rõ ứng dụng, bố cục hay tính năng mong muốn.
- Tạo ứng dụng Capsule: AI sinh ra tệp .capsule hoàn chỉnh gồm giao diện HTML, lược đồ dữ liệu và SQLite cục bộ.
- Tinh chỉnh trực tiếp: sửa tính năng, đổi giao diện tối hay cập nhật lược đồ ngay trong ứng dụng.
Tác giả cung cấp sẵn một prompt mẫu để người dùng dán vào công cụ AI ưa thích, giúp AI hiểu đúng định dạng và thiết kế ứng dụng tối ưu cho Capsule.
Đa nền tảng, chưa cần đám mây
Capsule chạy trên macOS, Windows và Linux với cùng một tệp, không cần chuyển đổi. Phiên bản cho iOS và Android đang được phát triển. Người dùng có thể tải trình chạy miễn phí cho từng nền tảng hoặc dùng thử bản xem trước trên web.
Về lộ trình, tác giả dự định mở đặc tả định dạng tệp ở phiên bản 1.0, cho phép các ứng dụng khác đọc và ghi tệp Capsule. Hiện tại đã có cơ chế migration cho mỗi phiên bản mới, đảm bảo dữ liệu không bị mất khi nâng cấp.
Góc nhìn cho người dùng Việt Nam
Với cộng đồng lập trình viên và người làm việc tự do tại Việt Nam, Capsule mở ra một hướng thú vị: tạo các công cụ cá nhân như sổ theo dõi chi tiêu, danh sách công việc, portfolio thiết kế hay ứng dụng ghi chép rồi chia sẻ trực tiếp qua Zalo hay Messenger mà không cần thuê hosting.
Tuy nhiên, cần lưu ý rằng mô hình một tệp – một người dùng sẽ hạn chế khả năng cộng tác thời gian thực. Đây là công cụ phù hợp nhất với ứng dụng cá nhân hoặc nhóm nhỏ, không phải nền tảng thay thế các dịch vụ web truyền thống.
Nếu bạn muốn thử, có thể bắt đầu với bản xem trước trên web và một vài mẫu dựng sẵn, sau đó tiến tới tự xây ứng dụng riêng bằng AI.


