Cách đây gần 2 tháng, khi đang trung thành với Apple Notes để làm nơi viết lách thì bỗng nhiên chiếc điện thoại tai thỏ của tôi dở chứng, buộc phải chuyển sang một thiết bị Android vì kinh phí eo hẹp. Lúc này thì tôi nhận ra Apple Notes không còn sử dụng được trên thiết bị mới được nữa. Hãy tưởng tượng trước đó khi mọi ghi chú giữa máy tính và điện thoại đang được đồng bộ một cách mượt mà thì giờ đây quá trình đó đã bị ngắt quãng, gây ra một trải nghiệm không thể tồi tệ hơn.
Trong khi loay hoay tìm cho mình một ứng dụng ghi chú mới. Rất nhiều cái tên đã được khám phá và tải về dùng thử. Có cái tốt, có cái dở. Tốt vì đáp ứng được nhu cầu là ghi chú đa nền tảng, đồng bộ và bảo mật. Còn dở là... đa số đều phải trả phí, nếu không sẽ bị giới hạn về số lượng ghi chú hay khả năng đồng bộ. Chính vì thế đã đẩy tôi đến một quyết định quan trọng: Tự làm một ứng dụng ghi chú mà bây giờ được biết đến với cái tên là OpenNotas (ON).
Có rất nhiều bài học và cả kiến thức mới mà tôi rút ra được trong quá trình làm ứng dụng. Hầu hết những gì khám phá ra đều được tóm tắt lại trong nhật ký hàng tuần kể về quá trình làm OpenNotas. Bạn đọc có thể lướt trang chủ một lúc là sẽ thấy, còn không thì đây là danh sách các bài viết đang nhắc đến:
Cũng trong thời gian đó, tôi gặp lại một người anh đã từng làm việc cùng trước đây. Sau khi nghe câu chuyện, anh chợt nói "Cái em đang làm người ta gọi là Indie Hackers" - chỉ một bộ phận lập trình viên yêu thích làm sản phẩm. Ồ! Hóa ra lâu nay mình làm mà lại không biết về sự tồn tại của nó. Sau khi về nhà, tôi bắt đầu quan tâm đến cụm từ này, tham gia vào các cộng đồng Indie Hackers để tìm hiểu thêm, trao đổi, học hỏi kinh nghiệm từ những người có cùng sở thích.
Chỉ còn chưa đến 2 tuần nữa, ON sẽ chính thức ra mắt. Vì thế đây là bài viết tóm tắt lại nhanh quá trình hình thành ON, nó sinh ra để giải quyết vấn đề gì và cả bài học rút ra cùng với khó khăn, thách thức.
OpenNotas là một ứng dụng ghi chú cá nhân đơn giản, nhanh, tập trung vào bảo mật và hoàn toàn miễn phí.
OpenNotas được phát hành dưới dạng ứng dụng PWA - một kiểu ứng dụng dựa trên nền tảng Web. PWA mang lại thêm nhiều sức mạnh cho ứng dụng khi so với ứng dụng web thông thường, tiết kiệm được nhiều thời gian cho lập trình viên muốn phát triển một ứng dụng đa nền tảng. Đơn giản vì nếu muốn sử dụng, bạn chỉ cần một thiết bị hỗ trợ trình duyệt kết nối Internet.
OpenNotas ban đầu được tạo ra để giải quyết vấn đề của tôi là cần một ứng dụng ghi chú đa nền tảng, đơn giản và tập trung vào viết. Nhưng nếu nghĩ xa hơn, hoàn toàn có thể biến nó thành một sản phẩm Open Source, cho bất kỳ ai đang đi tìm một giải pháp mới bên cạnh rất nhiều ứng dụng đã có trước đó trên thị trường.
Trong quá trình đi tìm một ứng dụng ghi chú trước khi làm ON, tôi đã trải nghiệm qua rất nhiều cái tên và rút ra được nhiều điểm đáng chú ý. Nếu so với cái đã biết, điểm mạnh của ON có thể nằm ở sự đơn giản, linh hoạt, và kích thước siêu nhẹ nhờ vào PWA. Chỉ cần có một thiết bị hỗ trợ trình duyệt, gần như là đã có thể sử dụng. Tuy vậy, ON đang áp dụng nhiều công nghệ hiện đại để tối ưu hóa trải nghiệm nên bạn vẫn cần phải có một trình duyệt hiện đại, đủ tốt, để hỗ trợ các chức năng của nó.
OpenNotas cũng có thể cài đặt trực tiếp vào trong máy, bạn sẽ dùng bình thường mà không cần có kết nối Internet. Dữ liệu được lưu trữ bền vững trong máy. OpenNotas hỗ trợ cơ chế đồng bộ dữ liệu giữa các thiết bị thông qua cái gọi là Adapter. Bạn chỉ cần làm theo hướng dẫn để tự thiết lập cho mình một máy chủ đồng bộ.
Ghi chú cá nhân cũng đòi hỏi phải có cơ chế bảo mật nghiêm ngặt. Chẳng đâu xa như tôi đây, có nhiều thông tin nhạy cảm vẫn cần phải ghi ra nếu không muốn quên mất. Mà đã ghi ra thì phải có cơ chế bảo vệ nó, không cho phép ai đọc. ON cung cấp cơ chế mã hóa dữ liệu hai chiều dựa trên thuật toán AES trước khi đồng bộ dữ liệu lên máy chủ. Điều đó có nghĩa dữ liệu sẽ được mã hóa trước khi rời thiết bị, bạn cần phải có khóa mã hóa thì mới giải mã được dữ liệu. Ngoài ra, ON còn có thêm tính năng đặt mật khẩu cho ghi chú, dữ liệu cũng được mã hóa AES, yêu cầu phải có mật khẩu thì mới có thể truy cập.
Tạm quên những điểm mạnh kể trên, ON hiện đang "lép vế" so với nhiều đối thủ có tên tuổi trước đó. Tính năng của ON có thể không đa dạng và phong phú nhưng đó chỉ là vấn đề thời gian. Triết lý của ON là tập trung vào sự linh hoạt, nhanh chóng và khả năng bảo mật tốt nhất, mang lại sự an tâm cho người sử dụng.
Nhờ quá trình làm ON mà tôi biết đến khái niệm Indie Hackers. Kết nối được với nhiều người, tham gia các cộng đồng có cùng sở thích để bắt đầu tìm hiểu thêm vào lĩnh vực này.
ON giúp tôi đào sâu hơn vào khái niệm PWA, hiểu hơn về cách ứng dụng hoạt động và thử thách bản thân trong việc làm một sản phẩm ứng dụng. Ngoài ra, vấn đề lưu trữ trên trình duyệt cũng rất được quan tâm. Mặc dù đang ở thời điểm đỉnh cao của ứng dụng web hiện đại nhưng vấn đề lưu trữ dữ liệu trong trình duyệt vẫn là cái gì đó rất "khoai".
ON cũng giúp tôi rèn luyện kỹ năng viết. Viết ngôn ngữ trong ứng dụng, viết nhật ký, viết blog, viết tài liệu, viết các bài giới thiệu... Chưa bao giờ mà mình lại viết nhiều đến thế. Nói thật chứ đầu óc tôi giờ đây chẳng có gì ngoài những dòng chữ cứ chạy qua chạy lại trong một không gian chật hẹp.
Cuối cùng, sau lần khởi chạy sắp tới chắc chắn sẽ có nhiều bài học được rút ra nữa. Nhưng dù là thành công hay thất bại thì vẫn mang lại nhiều bài học kinh nghiệm hơn cho mình. Chắc chắn rồi, ON không phải là sản phẩm cuối cùng, nó chỉ là sự khởi đầu cho mọi thứ sau này.
Tôi biết rằng để vận hành một sản phẩm là không hề đơn giản. Đây là ứng dụng Open Source đầu tiên nên có nhiều thứ chưa biết hoặc cần thời gian để biết. Nếu cứ giữ khư khư mà không nói ra thì chẳng ai biết được mình đang gặp vấn đề gì. Ngược lại, khi đã nói ra ít nhiều sẽ nhận được sự hỗ trợ từ nhiều người đã có kinh nghiệm trước đó.
ON được tạo ra trong sự gấp rút, được xây dựng trên Nuxt.js và thư viện DaisyUI. Nếu muốn đóng góp mã, cần phải tạo ra một bộ quy tắc trước khi cho cộng đồng thêm/sửa/xóa, thêm cả cấu hình để kiểm tra liệu mọi thứ đã theo chuẩn trước khi "Merge". Thú thật, tôi chưa có kinh nghiệm triển khai phần việc này, vì thế nếu bạn đã từng giải quyết vấn đề này rồi thì tôi nên làm gì tiếp theo đây?
Tuy không làm nhiều về Open Source nhưng tôi vẫn biết đến cơ chế đánh số phiên bản tự động mỗi khi phát hành một phiên bản mới. Hay nói tóm gọn lại là cơ chế quản lý phiên bản và dựng các bản cập nhật tự động. Tôi nên tìm hiểu công cụ nào cho đơn giản?
Cuối cùng là xây dựng một cộng đồng, làm nơi giao lưu hỏi đáp cho tất cả mọi người sử dụng ON. Theo bạn nền tảng nào là thuận lợi nhất cho người dùng?
Cuối cùng, ON đã có mặt trên Product Hunt, đây là một sân chơi cho những ai làm sản phẩm, là một cơ hội tuyệt vời để quảng bá sản phẩm đến với nhiều người khác. Tôi tin rằng đây là một nơi không thể bỏ qua để mang sản phẩm của mình đến với nhiều người hơn. Nhưng quan trọng nhất vẫn là sự giúp sức của mọi người. Hãy theo dõi OpenNotas và đón chờ ngày ra mắt vào 02/06/2024 sắp tới đây nhé! Xin cảm ơn tất cả mọi người.
Xin chào, tôi tên là Hoài - một anh Dev kể chuyện bằng cách viết ✍️ và làm sản phẩm 🚀. Với nhiều năm kinh nghiệm lập trình, tôi đã đóng góp một phần công sức cho nhiều sản phẩm mang lại giá trị cho người dùng tại nơi đang làm việc, cũng như cho chính bản thân. Sở thích của tôi là đọc, viết, nghiên cứu... Tôi tạo ra trang Blog này với sứ mệnh mang đến những bài viết chất lượng cho độc giả của 2coffee.dev.Hãy theo dõi tôi qua các kênh LinkedIn, Facebook, Instagram, Telegram.
Bình luận (2)