Chuyện làm Product #2: QuickPad to MiniReader - Mình học được gì từ việc xây dựng ứng dụng ghi chú cá nhân

May 4, 2026 · 15 min read

Chuyện làm Product #2: QuickPad to MiniReader - Mình học được gì từ việc xây dựng ứng dụng ghi chú cá nhân

Xin chào, mọi người dạo này thế nào?

Nếu bạn để ý, mình không thường xuyên viết hơn một năm nay. Trung bình khoảng 6 tháng mình mới đăng tải một bài viết mới lên Substack - một con số ít ỏi đến mức dù bạn có yêu thích những nội dung mình chia sẻ, bạn hoàn toàn dễ dàng quên mình trong hàng vạn cây viết khác trên internet.

Thú thật, mình không có nhiều cảm hứng để viết trong thời gian qua. Cuộc sống sau kết hôn với nhiều trách nhiệm mới khiến mình thấy lạ lẫm, chông chênh, mình phải tập làm quen, phải tập lớn. Mình gần như không còn năng lượng cho chính bản thân và công việc cá nhân sau một ngày dài làm việc.

Nhưng rồi mình nhận ra đã đến lúc phải nhen nhóm lại “bếp lò” của riêng mình. Như một người chị đã nói: “Hãy xem như em đã dành trọn công suất cho gia đình rồi, giờ là lúc bật lại bếp lò cá nhân thôi.”


Và để khởi động lại, hôm nay mình sẽ viết về MiniReader - một ứng dụng cá nhân khác mà mình và chồng cùng build sau CodeDiagram.

Dù MiniReader chưa bao giờ được launch chính thức và hiện tại cũng không còn hoạt động , nhưng hành trình xây dựng nó vẫn mang đến cho mình nhiều bài học vô cùng thú vị. Biết đâu, vào một ngày đẹp trời, nó lại được “hồi sinh” thì sao? 😆


#1 Tiền thân: QuickPad

Mặc dù được build vào khoảng năm 2024, câu chuyện của MiniReader thật ra bắt đầu còn sớm hơn thế. Tiền thân của ứng dụng này là QuickPad , một Chrome extension mà chồng mình đã build vào năm 2021.

Ý tưởng của QuickPad là cung cấp một panel để ghi chú ngay trong trình duyệt của người dùng, nhằm cắt giảm thời gian chuyển đổi qua lại giữa browser và note-taking app. Tương tự như Notion, QuickPad có giao diện WYSIWGY trên nền tảng markdown, khá dễ hiểu dễ dùng kể cả với users mới.

Giao diện QuickPad

Mình biết đến QuickPad trong một lần than vãn với chồng về “nỗi đau” viết ghi chú khi đọc bài viết trên trình duyệt.

Là người học, mình gặp một vấn đề nan giải khi phải liên tục switch qua lại giữa trình duyệt (browser) và ứng dụng ghi chú , hoặc mở cùng lúc 2 windows cho việc vừa đọc vừa ghi chú.

Các thao tác này nhìn chung vô cùng bất tiện, và ít nhiều ảnh hưởng đến trải nghiệm đọc của mình.

Thậm chí, “nỗi đau” này càng rõ hơn trong công việc PM hàng ngày, vì 95% thời gian làm việc của mình đều diễn ra trên browser - ví dụ như nhu cầu ghi chú nhanh lúc họp (khi đang cùng lúc mở báo cáo mà cả team đang bàn tới).

Và thế là, theo một lẽ tự nhiên, mình trở thành người dùng năng động nhất trên extension này. QuickPad tiện đến mức mình dùng nó mọi lúc mọi nơi, từ việc làm research, viết meeting notes, đến cả khi phỏng vấn ứng viên, etc.

Và chính vì dùng nhiều, mình cũng là người đầu tiên cảm nhận rõ nhất những điểm còn thiếu và bắt đầu có mong muốn cải thiện nó hơn bất kì ai.

Sự ra đời của QuickPad

Quay ngược thời gian về năm 2021, các giải pháp hiện hữu trên thị trường lúc ấy không hoàn toàn giải quyết được vấn đề mà chồng mình gặp phải.

Nhóm 1: Các ứng dụng Highlighter (Web Highlights, Weava Highlighter…)

Đây là nhóm ứng dụng đông đảo nhất trên Chrome Web Store. Nhóm này làm cực tốt việc tô đậm (highlight) và lưu trữ các trích đoạn quan trọng trong bài đọc.

Tuy nhiên, khả năng ghi chú tự do của chúng khá hạn chế. Người dùng chỉ được phép viết note trên chính đoạn văn bản đã highlight; trong khi đó, mình cần một khoảng không gian trống để tự tổng hợp, xâu chuỗi ý tưởng và ghi chú lại theo cách riêng.

Demo ứng dụng Weava

Nhóm 2: Các ứng dụng ghi chú side panel truyền thống

Ý tưởng về ứng dụng ghi chú dạng side panel không mới, và bạn hoàn toàn có thể tìm thấy một vài lựa chọn tương tự QuickPad trên kho ứng dụng. Tuy nhiên, lý do chồng mình quyết định tự xây dựng một công cụ riêng nằm ở trải nghiệm viết (writing experience).

Đa số các extension tại thời điểm đó xử lý định dạng (formatting) tương tự Microsoft Word. Chúng buộc bạn phải ngừng mạch suy nghĩ để cầm chuột, tìm và click vào các nút công cụ nếu muốn in đậm hay tạo heading.

Trong khi đó Notion, một note-taking app thế hệ mới, đem lại một trải nghiệm viết hoàn toàn khác biệt khi thay thế các nút bấm thủ công bằng các kí hiệu Markdown - và đây cũng là nguồn cảm hứng để chồng mình kế thừa ở QuickPad. Thay vì rời tay khỏi bàn phím, bạn chỉ cần gõ ** để in đậm hoặc # cho heading, từ đó không làm gián đoạn suy nghĩ trong lúc đọc của người dùng.

Điểm mạnh & hạn chế của QuickPad

Giá trị của QuickPad nằm ở hai điểm : ghi chú ngay trong browser mà không cần mở thêm app, và ghi nhanh mà không cần dừng lại để format nhờ markdown. Cả hai đều giải quyết cùng một vấn đề gốc - context switching - dù là chuyển sang app khác, hay chỉ đơn giản là rời tay khỏi bàn phím để cầm chuột.

Tuy vậy, QuickPad lại có một điểm yếu vô cùng lớn: nó quá phổ biến (generic). Một công cụ ghi chú “cho tất cả mọi người” đồng nghĩa với việc cạnh tranh trên một thị trường đông đúc, và điểm mạnh hiện tại của QuickPad lại không phải là con hào chiến lược (moat) vì chúng quá dễ dàng để sao chép.

“I’ll assert that market is the most important factor in a startup’s success or failure. Why?

In a great market—a market with lots of real potential customers—the market pulls product out of the startup. Conversely, in a terrible market, you can have the best product in the world and an absolutely killer team, and it doesn’t matter—you’re going to fail.”

- Marc Andreessen, The Only Thing That Matters

Tạm dịch:

Tôi khẳng định rằng thị trường là yếu tố quan trọng nhất quyết định sự thành bại của một startup. Tại sao ư?

Trong một thị trường tuyệt vời, nơi có vô số khách hàng tiềm năng thực thụ, chính nhu cầu của thị trường sẽ “hút” sản phẩm của bạn đi (cầu vượt cung). Ngược lại, trong một thị trường tồi tệ, dù bạn có sản phẩm tốt nhất thế giới và một đội ngũ cực kỳ xuất sắc đi chăng nữa, điều đó cũng vô ích - bạn chắc chắn sẽ thất bại thôi.

#2 Vấn đề giải quyết

Khi quan sát kĩ hành vi của bản thân, mình nhận ra 80% thời gian sử dụng QuickPad của mình để phục vụ cho một use case duy nhất: Ghi chú trong khi tiêu thụ nội dung (deep reading/watching).

Hàng ngày, mình tiêu thụ một lượng lớn kiến thức từ ebook, article đến podcast. Trong quá trình này, mình sẽ ghi lại ý chính, trích đoạn tâm đắc, và những phản tư (reflection) nảy sinh ngay lúc đó. Sau cùng, tất cả sẽ được hệ thống hóa vào kho kiến thức cá nhân (personal knowledge management, PKM) trên Obsidian của mình.

Tuy nhiên, quy trình này trên thực tế lại vô cùng cồng kềnh:

  • Phải tự tay copy-paste tiêu đề, URL và các metadata

  • Phải tự trích xuất các câu quote hay

  • Phải mất thêm một bước “dọn dẹp” và định dạng lại trước khi đưa vào Obsidian, etc.

Những thao tác này không chỉ ngốn thời gian, mà còn làm gián đoạn trải nghiệm đọc sâu của mình nữa.

Đó chính là lúc mình tự đặt ra một câu hỏi lớn: Sẽ ra sao nếu QuickPad không chỉ là một ứng dụng ghi chú thông thường, mà là một “cầu nối tri thức” - nơi mọi thao tác được tự động hóa để mình chỉ việc tập trung vào thứ quan trọng nhất:Đọc và suy nghĩ?

Thách thức: Người đọc trên trình duyệt đang thiếu một công cụ đủ thông minh để tự động hóa các thao tác thừa trong vòng lặp Đọc - Ghi chú - Lưu trữ , giảm ngắt đoạn tư duy và tối ưu hóa việc chuyển hóa thông tin thành kiến thức.

#3 Giải pháp: MiniReader

Điều này dẫn đến ý tưởng cải tiến QuickPad thành một công cụ ghi chú thông minh có nền tảng markdown ngay trên trình duyệt. Nó tự động trích xuất các metadata quan trọng của bài viết, cho phép người đọc lưu lại nhanh các trích dẫn, ghi chú tự do, và quan trọng hơn, có thể nhanh chóng export vào các ứng dụng lưu trữ như Notion hay Obsidian.

Tại thời điểm đó, trên thị thường không có nhiều extension tối ưu cho trải nghiệm đọc - ghi chú - lưu trữ, trừ các ứng dụng tương đối cồng kềnh như Readwise, Matter, etc.

Giao diện của MiniReader

Tụi mình mất khoảng 3 tháng để phát triển phiên bản đầu tiên của MiniReader với các tính năng chính:

  1. Tạo file ghi chú trực tiếp trên trình duyệt, tự động trích xuất các metadata của bài viết như tiêu đề và URL

  2. Tự động add các highlight trên bài viết vào ghi chú

  3. Viết trên nền tảng markdown, gõ / để trigger context menu như Notion

  4. Cho phép copy nhanh toàn bộ nội dung ghi chú (dưới dạng markdown) để paste vào Notion/Obsidian

Hạn chế của version 1

Mặc dù MiniReader có cải tiến vượt trội so với QuickPad, mình vẫn có những điểm chưa hài lòng ở sản phẩm này sau một thời gian sử dụng:

  1. Chưa tối ưu cho việc xem và ghi chú từ các định dạng khác: Ngoài article, mình thường xem Youtube video và một người xem trung thành của Lenny’s Podcast.

Tuy nhiên, khác với định dạng văn bản, mình khó có thể trích dẫn các chia sẻ yêu thích từ video, trừ khi tìm trong transcript hoặc tự nghe và viết lại.

  1. Thiếu khả năng tóm tắt ý chính : Nhu cầu này xuất phát từ bản thân người đọc “lười biếng” là mình. Vì thời gian trong ngày có hạn, trước khi đọc các tài liệu dài như sách, hoặc xem podcast, mình có thói quen tìm đọc tóm tắt (hoặc key takeaway) của chúng trước. Nếu nội dung đủ thú vị, mình mới bắt đầu đọc hoặc xem các nội dung này.

Đây cũng chính là một trong những “quân bài tẩy” mà Lenny charge subscriber này 🥹

Lenny chỉ “mở khóa” key takeaways cho paid subscribers

Ngoài ra, khả năng phân loại ghi chú và trải nghiệm export ghi chú về Notion và Obsidian vẫn chưa thực sự tự động hóa cũng là các điểm hạn chế khác.

Phiên bản cải tiến: MiniReader App

Mình nhận ra side panel không phải là một giải pháp tối ưu để giải quyết bài toán video. Người xem cần một không gian rộng hơn để vừa xem video gốc, vừa đọc transcript, vừa ghi chú trên cùng một màn hình.

Đó là lúc tụi mình quyết định phát triển MiniReader App - một browser-based app, với extension đóng vai trò là mồi câu (hook).

Ý tưởng khá đơn giản:

  • Extension vẫn là điểm tiếp cận đầu tiên, nơi người dùng ghi chú hàng ngày như bình thường. Nhưng khi họ muốn trải nghiệm tốt hơn, xử lí các định dạng “nặng đô” hơn như Youtube video, họ sẽ được dẫn sang app.

  • Để có một trải nghiệm liền mạch, người dùng cần đồng bộ dữ liệu giữa extension và app thông qua việc đăng nhập Google account. Và đây cũng chính là cách tụi mình convert người dùng extension ẩn danh thành những lead đầu tiên.

Giao diện MiniReader App

Ngoài ra, ở phiên bản này, tụi mình cũng bổ sung thêm một số tính năng để tăng trải nghiệm người dùng cho cả extension và app:

  1. AI summary : Tích hợp AI để tóm tắt nhanh ý chính của bài đọc hoặc video

  2. Tag : Cho phép phân loại ghi chú ngay trên MiniReader

  3. Default sort : Sắp xếp ghi chú theo ngày tạo, dễ tìm lại hơn

#4 Lí do dừng lại

Sau khoảng 5 tháng, tụi mình quyết định dừng phát triển MiniReader vì hai lí do chính:

  1. Return on investment (ROI) thấp: Nhu cầu đọc - viết của mình đã vượt ra ngoài những gì MiniReader có thể đáp ứng, nhưng effort để xây dựng một giải pháp đủ tốt lại rất cao.

Điển hình nhất là với AI summary - mình không chỉ muốn đọc tóm tắt, mà muốn tiếp tục cuộc trò chuyện với AI từ đó, như hỏi thêm các concept chưa rõ, explore những ý tưởng nảy ra trong lúc đọc, hay đơn giản là debate lại với AI về nội dung bài.

Tuy nhiên, AI chưa phát triển đủ “xịn” để có thể “nhờ” chúng code giùm tại thời điểm đó, dẫn đến engineering effort vô cùng cao.

Prototype mẫu mình brainstorm với Claude

  1. Tụi mình hoài nghi về giá trị cốt lõi của MiniReader: Ý tưởng về một “cầu nối tri thức” giữa bài viết trên browser và kho kiến thức cá nhân nghe có vẻ hữu ích, nhưng mình tự hỏi:

Liệu người dùng có thực sự cần một “lớp đệm giữa” không, nếu một lúc nào đó, giữa bài viết gốc và Obsidian của mình thực sự có thể tự “nói chuyện” với nhau?

Những hoài nghi của tụi mình đã nhanh chóng được chứng thực khi bước sang năm 2025 - năm của sự bùng nổ MCP , Agentic AI, và AI Skill.

Thay vì cần một “cầu nối” thủ công như MiniReader, mình đã chuyển sang một workflow mới tinh gọn hơn hẳn: Xây dựng AI skills trực tiếp trên thư mục PKM , và dùng Claude Code/Codex để tương tác thẳng với dữ liệu. Từ tóm tắt, brainstorm ý tưởng cho đến việc trích dẫn, tạo file hay gắn tag đều diễn ra trên một giao diện duy nhất - IDE, Claude Co-work, hoặc Terminal plugin trên Obsidian.

Chạy AI skills trên IDE để tạo ghi chú mới trong Obsidian

File ghi chú được tạo trên Obsidian

#5 Lời kết

Nếu CodeDiagram cho tụi mình trải nghiệm build và launch một sản phẩm từ đầu đến cuối, thì MiniReader lại là một hành trình khác hoàn toàn. Tụi mình phải liên tục đặt câu hỏi về bài toán mà sản phẩm giải quyết, giá trị cốt lõi của sản phẩm, và học cách thích nghi với một thị trường đang thay đổi từng ngày.

Nhìn lại, có hai điều tụi mình chưa làm tốt:

  1. Khởi đầu quá tham vọng: Tụi mình muốn giải quyết cả hành trình từ khám phá nội dung đến lưu trữ kiến thức ngay từ đầu. Sự ôm đồm đó khiến tụi mình bế tắc trong việc thiết kế user flow và interface phù hợp - cho đến khi buộc phải quay về với một MVP thực sự tối giản để bắt đầu lại.

  2. Chưa launch : Chưa có người dùng thật, tụi mình chưa có đủ góc nhìn về nhu cầu thực tế và product-market fit trước khi quyết định dừng. Biết đâu qua bài viết này, bạn lại có use case thú vị muốn chia sẻ với mình thì sao? 😅

p.s. Có một sự thật thú vị là, dù MiniReader đã dừng lại, nhưng QuickPad - phiên bản ghi chú đơn giản nhất - vẫn đang chạy. Tụi mình vẫn dùng nó mỗi ngày. Đôi khi, sản phẩm sống lâu nhất không phải sản phẩm tốt nhất - mà là sản phẩm “vừa đủ”, ít over-engineer nhất.


Nếu thấy bài viết này hữu ích, mình sẽ rất vui nếu bạn để lại một ❤️ hoặc bình luận cho mình nhé. 😆

If you’re finding this post valuable, share it with a friend, and consider subscribing if you haven’t already.


Enjoyed this? Subscribe to get new posts via email.

Home · Blog