[Case Study] Xây dựng DApp lưu highlights một cách tiện lợi hơn
Giới thiệu
Gần đây mình và bạn Khang Tran có ý định làm một app để lưu lại các nội dung hay, nổi bật khi đọc trên mạng. Hiện tại đã làm xong, bạn có thể sử dụng nó tại đây.
Bài viết này sẽ chia sẻ về cách tụi mình lên ý tưởng và xây dựng ứng dụng như thế nào. Hy vọng bài viết giúp ích được cho mọi người.
Ý tưởng
Để lưu nội dung trên mạng, các ứng dụng hiện có trên thị trường chia ra làm các loại sau:
App lưu chỉ mục (bookmark) như Get Pocket. App dạng này chỉ lưu lại danh sách urls. Sau đó bạn sẽ truy cập vào dashboard để xem lại danh sách này. Ngoài ra, dựa vào dữ liệu người dùng, các app này recommend các nội dung có thể bạn sẽ thích.
App highlight text trong 1 url. Tức là bạn có thể highlight, lưu lại những đoạn text trong 1 url. Nhưng để truy cập thì bạn phải vào lại url đó để hiện các highlights lên.
Các app lưu note, ideas như Notes trên Macbook, Workflowy. Các app dạng này hỗ trợ các tính năng đồng bộ, làm việc chung cho team. Mình thì lại không cần những tính năng này.
Thật tình cờ là mình cũng hay đọc trên Medium cũng như có dùng tính năng highlight của Medium. Nó khá đơn giản và hiệu quả.
Khi bạn highligh lại một nội dung (từ, câu, đoạn văn) thì phần đó sẽ nổi lên. Tác giả cũng như những đọc giả khác có thể thấy. Điều này sẽ giúp content nổi bật hơn, các ý hay của tác giả cũng được nhấn mạnh hơn.
Càng nhiều highlight cùng 1 câu thì câu đó đáng để lưu lại.
Và khi bạn highlight một nội dung thì nội dung đó sẽ được lưu trong profile của bạn.
Tính năng highlight trên Medium
Dựa vào trải nghiệm này trên Medium, team mình đã nghĩ ra ý tưởng đưa tính năng highlight này để sử dụng ở mọi website, không chỉ là Medium.
Cách đặt tên ứng dụng
Sau khi chốt idea và danh sách tính năng là bước đặt tên. Mình nghĩ quá trình đặt tên cũng khá rối não. Mình cũng muốn chia sẻ lại vài tips về các đặt tên app. Vì cái tên là cái 'đập' vào mặt user đầu tiên mà.
Cách thứ nhất là đặt tên không có trong từ điển như GOOGLE, hoặc ghép từ TIKI (tiết kiệm), MOMO (mobile money)
Cách thứ hai là dùng những động từ/danh từ để mô tả lại tính năng chính của ứng dụng.
Ở đây mình là ứng dụng highhight content nên sẽ có các danh từ như:
highlights, notes, word, text, content
Và các động từ như:
highlight, spot, mark, tag, underline, peak
Nhưng mình chợt nghĩ là việc highlight text tức là mình đang select nó để bôi đen đoạn text đó trước. Thế là mình nghĩ đến cách đặt tên theo hướng mô tả lại cách user sử dụng.
Mà bôi đen text tiếng Anh là make it bold hoặc embolden.
Thế là nghĩ ra cái tên Embolden.IT. Đến lúc đăng ký domain, mình mới biết .IT không phải domain về tech mà là domain cấp quốc gia. (IT = Itala).
Việc đăng ký domain .IT phải là công dân của Ý, nhưng Goddady có thể đứng ra làm đại diện để mua.
Cũng hơi rắc rối, nên thôi mình quyết định dùng .com. Thế là EmboldenIt.com ra đời.
Tính năng, UI/UX
Sẽ có 1 Google Chrome plugin để giúp bạn highlight text dễ hơn. Đương nhiên bạn cũng có thể login vào EmboldenIt.com để tự add highlights bằng tay.
Embolden it now!
Bạn có thể login vào app để xem lại danh sách highlight, xóa highlight, search highlight.
Bạn có thể share list highlight với bạn bè của mình.
Về UI, bạn Khang Tran đã thêm vào là dynamic background. Tức là background sẽ thay đổi mỗi lần bạn truy cập vào trang. Nó tạo cảm giác tươi mới mỗi lần xem lại note/highlight của bản thân.
Bạn có thể share các đoạn higlights lên social để đăng 'status deep' cho tiện.
Công nghệ Blockchain
Hiện nay khi sử dụng các ứng dụng tập trung (centralized) thì dữ liệu của bạn được các công ty nhất định lưu trữ. Các công ty có thể thu thập và lưu trữ dữ liệu của bạn để sử dụng với các mục đích khác nhau.
Mục đích đầu tiên ai cũng có thể thấy là bán quảng cáo. Chính bạn và mình là những sản phẩm của Facebook, Youtube. Họ biết bạn thích xem nội dung gì, tương tác với ai, họ biết hết.
Nếu bạn ngưng sử dụng những ứng dụng này thì các công ty có toàn quyền dùng dữ liệu của bạn. Bạn cũng không thể lấy dữ liệu của bạn về.
Với một ứng dụng nhỏ như lưu chỉ mục (bookmark) hay highlights, bạn có thể thấy là các app này cũng đọc dữ liệu của bạn và biết bạn thích gì từ đó chạy quảng cáo với các nội dung bạn thích.
Công nghệ blockchain thúc đẩy sự phát triển của decentralized apps - các ứng dụng phi tập trung. Tức là dữ liệu của bạn là của chính bạn. Không một bên thứ ba nào có thể lấy dữ liệu mà bạn chưa đồng ý.
Bạn chứng thực trên các nền tảng blockchain bằng 1 cặp public và private key. Private key chỉ có mình bạn biết. Nội dung bạn tạo trên các DApp sẽ được mã hóa và lưu trữ theo định danh của bạn.
Lúc trước mình có thể chia sẻ về dự án hóa đơn điện tử với blockchain. Hóa điện tử có nhiều rào cản về pháp lý cũng như tính khả thi.
Nhưng với một ứng dụng đơn giản để sử dụng hằng ngày như EmboldenIT, mình hy vọng mọi người có thể làm quen với việc sử dụng DApps.
Tại sao phải gọi là làm quen? Vì cách login sẽ khác, cách bạn bảo mật tài khoản sẽ khác. Cách bạn quản lý dữ liệu cá nhân cũng sẽ khác đôi chút với ứng dụng thông thường.
Khi user đã quen với việc sử dụng các ứng dụng DApps thì sẽ giúp ích cho các Blockchain platforms, các blockchain developers. Họ sẽ xây dựng các nền tảng, ứng dụng phục vụ mọi người tốt hơn.
À, Platform blockchain mà tụi mình dùng là Blockstack nhé. Nếu mọi người quan tâm thì mình sẽ viết tiếp phần 2 để hướng dẫn xây dựng lại DApps EmboldenIT từng bước cụ thể nhé.
Bài học kinh nghiệm
Một số bài học mà mình rút ra từ ứng dụng này
Nên xây dựng ứng dụng giải quyết vấn để của bản thân.
Nên xây dựng ứng dụng để mình dùng, mình là người dùng đầu tiên
Launch thật sớm để lấy user feedbacks hơn là ngồi nghĩ những 'tính năng fancy' (đao to búa lớn).
Các tính năng sẽ làm (Wishlist features)
Trên đây là một số features tụi mình sẽ thêm vào EmboldenIT trong tương lai:
Plugin for Safari, Firefox.
Text to speech highlights: giúp bạn nghe lại các highlights như đang nghe Podcast
Random highlights
Mọi người có ý tưởng gì cứ comment góp ý nhé.
Kết
Bài viết này mình đã chia sẻ gần hết quá trình tụi mình ra ý tưởng và làm ứng dụng EmboldenIT. Hy vọng là bài viết phần nào giúp được mọi người.
Mọi người có thể sử dụng EmboldenIT hằng ngày để lưu highlights nhé. Tụi mình cũng rất mong nhận được feedback từ mọi người.
Ngoài ra mọi người có thể xem feedback và support tụi mình trên ProductHunt: EmboldenIT trên ProductHunt
Nếu mọi người có thắc mắc, hay cần giúp đỡ gì có thể lại comment hoặc trực tiếp liên hệ mình hoặc bạn Khang Trần nha.
Enjoy emboldening!