Xây dựng MVP nhanh gọn bằng JAM stack - Ứng dụng Mangnon.school cùng Khang Trần

Giới thiệu
Mình có gặp bạn Khang Trần. Khang đã build một MVP Mangnon - điểm danh cho bé bằng 01 nút bấm. Đây là phần mềm giúp childcare giúp thầy giáo, cô giáo nhanh chóng thông báo tình hình cho bố mẹ.
Trong bài này, Khang có chia sẻ về JAM stack, cũng như cách Khang xây dựng MVP từ khâu ý tưởng để hoàn thành MVP chỉ trong 1 tuần.
JAM Stack là gì?
JAM stack *không phải là một tool, hay công nghệ cụ thể * như LAMP Stack, MEAN stack, MERN Stack vvv. JAM stack không phải là một hệ điều hành, ngôn ngữ lập trình, backend dùng gì, client dùng gì, database dùng gì. JAM stack là một cách mới để xây dựng websites nhanh gọn, ít tốn chi phí khi scale.
JAM Stack là viết tắt cho Javascript, API và Markup, cụ thể:
-
Javascript (J): Front end framework, chạy hoàn toàn bên phía client, có thể dùng bất cứ framework phổ biến nào như VueJS, ReactJS, AngularJS
-
API (A): Các HTTP API bạn tự tạo hoặc API bên thứ 3
-
Markup (M): Websites gồm các HTML tĩnh. Những file HTML này được tạo từ nguồn 1 markup, có thể là từ những file Markdown. Sau đó dùng các Static Site Generator đề tự động chuyển markup file sang HTML. Quá trình chuyển từ markup files sang HTML này xảy ra trước lúc deploy. Các Static Site Generator phổ biến để làm việc này: Gatsby, Hugo, Jekyll
Dynamic site vs static site
Mình sẽ ví dụ cơ bản sự khác nhau giữa dynamic và static site. Lúc trước mình dùng Wordpress (dynamic) cho blog, sau đó mình chuyển sang static site.
Khi đó ví dụ bạn vào niviki.com/contact
Với dynamic site, browser sẽ call đến hosting Hawkhost, nơi mình cài Wordpress. Sau đó Wordpress sẽ connect với database để lấy các nội dung mình lưu ở trang contact này. Sau đó nó mới generate ra các file html,css,js rồi gửi về client là browser của mình.
Với static site, mình viết sẵn trang contact bằng markdown (contact.md), sau đó dùng một static site generator là Hugo, deploy lên 1 static host là Netlify. Hugo có nhiệm vụ là generate sẵn file contact.html từ file markup markdown. Và các file html được gửi đến CDN.
(CDN là công nghệ giúp copy website bạn thành nhiều bản khác nhau (node) trên khắp thế giới, tuỳ vào vị trí địa lý của bạn thì CDN sẽ chọn node gần bạn nhất để giảm độ trễ)
Khi user vào route niviki.com/contact thì đã có sẵn file html này rồi.
Dưới đây là hình so sánh workflow giữa cách phát triển truyền thống và JAM stack.
Điểm mạnh của JAM Stack
Tốc độ & scale
HTML, assets của site được pre-built và đưa lên CDN nên tốc độ của site cực nhanh. Giả sử app của bạn có viral thì cũng không phải lo sập server.
Bảo mật
Bạn sẽ không lo phải bảo mật database, server nữa vì đa số sẽ dùng các static website hosting provider uy tín như Netlify, Google Firebase, Github Pages, vv
Tiết kiệm chi phí
Các static hosting đa số đều free như Netlify, Github pages, Firebase, vv. Bạn chỉ cần trả tiền khi lương truy cập đã quá lớn hoặc cần thêm các tính năng addons mà hosting static cung cấp.
Workflow cho developer tốt hơn
Bạn phát triển app ở máy local, dùng git và push source code lên static hosting, mọi thứ còn lại đều là tự động.
Chưa kể nhiều tính năng hỗ trợ như branch deploy (deploy theo nhánh như staging, dev, vv), pre-rendering, tối assets
JAM chỉ dùng cho static ?
JAM Stack vẫn có thể dùng:
-
Form
-
Comment
Bạn có thể xây dựng cả trang thương mại điện tử với JAM stack vẫn được luôn. Netlify có publish quyển sách Modern Web Development on the JAMstack có case study: Migration sang JAM stack của trang Smashing magazine. Bạn có thể tìm đọc thêm nhé.
Ứng dụng Mangnon.school
Ý tưởng
Ý tưởng xuất phát từ vụ "học sinh bị bỏ quên trên xe trường Gateway". Đó là trigger làm Khang nảy sinh ý tưởng này.
Sau khi khảo sát vài người anh trong công ty, Khang quyết định bắt tay ngay làm app.
App vẫn đang trong thời gian nâng cấp và phát triền. Mọi người có thể dùng thử tại link này nhé https://childcare.mangnon.school/#/
Danh sách tính năng:
-
Tạo lớp học
-
Quản lý lớp học
-
Báo với phụ huynh qua SMS, Email
Công nghệ
Ngoài JAM stack, Khang cũng áp dụng công nghệ Progressive web app vào project này. Người dùng chỉ cần vào Mangnon.school bằng trình duyệt trên điện thoại, sau đó thêm ứng dụng vào màn hình chính. Lần sau user truy cập thì trải nghiệm như là một mobile app.
Các công nghệ Khang sử dụng trong project này:
-
Quasar cho frontend
-
Firebase cloud functions để lưu data của user
-
Twilio để gửi SMS, email đến phụ huynh
-
Netlify để deploy
Kết
Trong bài này, mình đã giới thiệu về JAM stack cũng như ứng dụng Mangnon.school với sự chia sẻ của bạn Khang Trần. Về JAM stack, bạn có thể xem thêm tại Jamstack.org
Về ứng dụng Mangnon, bạn nào có hứng thú về idea, tech stack thì có thể comment bên dưới hoặc liên hệ trực tiếp Khang qua facebook cá nhân nhé.
Source:
https://snipcart.com/blog/jamstack
Related Posts
Discover more content you might enjoy

10 năm đọc sách - hành trình trưởng thành
Bài viết chia sẻ hành trình đọc sách 10 năm của tác giả, từ sinh viên năm nhất đến bộ sưu tập 265 cuốn sách hiện tại. Tác giả phản ánh về cách mỗi cuốn sách đã định hình tư duy và góp phần xây dựng con người mình, từ văn học Việt Nam và thế giới đến sách về phát triển cá nhân, kinh doanh và triết học. Đây là câu chuyện về sự trưởng thành thông qua việc đọc sách và những bài học quý giá thu được trong suốt hành trình.

Tư duy ngược trong thời đại AI

Trạng thái trống rỗng vì không biết build gì
Bài viết chia sẻ về trạng thái tâm lý khi không biết xây dựng sản phẩm gì tiếp theo sau một dự án thành công. Tác giả phân tích các thách thức trong thời đại AI như vòng đời sản phẩm ngắn, sự cạnh tranh cao, và áp lực phải tạo ra sản phẩm có giá trị thực sự.

Game Theory trong thời đại AI: Khi máy móc tham gia vào "trò chơi"
Bài viết phân tích sự giao thoa giữa lý thuyết trò chơi (Game Theory) và trí tuệ nhân tạo, giải thích cách AI đang thay đổi các nguyên lý cân bằng Nash và chiến lược tối ưu. Tác giả đưa ra các ví dụ thực tế về ứng dụng trong kinh doanh, giao thông và an ninh mạng.

Có nên nghỉ việc để tham gia một startup?
Bài viết chia sẻ trải nghiệm cá nhân và bài học từ việc nghỉ việc tại công ty lớn để tham gia startup. Tác giả phân tích tầm quan trọng của việc có kế hoạch dài hạn cho cuộc đời, đánh giá cẩn thận trước khi đưa ra quyết định nghỉ việc, và lợi ích của việc khởi nghiệp trong lĩnh vực mình am hiểu. Những chia sẻ thực tế giúp người đọc cân nhắc kỹ lưỡng trước khi rời bỏ công việc ổn định để theo đuổi cơ hội tại các startup.

Những quyển sách có thể thay đổi bạn
Bài viết giới thiệu bốn cuốn sách đã ảnh hưởng tích cực đến tác giả, bao gồm bộ Inside Reading giúp cải thiện kỹ năng đọc tiếng Anh, Eat That Frog của Brian Tracy về quản lý thời gian, Goals cũng của Brian Tracy về đặt mục tiêu cuộc sống, và một cuốn sách khác. Tác giả chia sẻ cách những cuốn sách này đã thay đổi tư duy và hành động của mình.