Remix, keystatic, cloudflare pages. Chịu!!
2024-03-22-#code-suy#keystatic#remix
Sau khi mình phát hiện ra Keystatic, mình đã quất ngay cho chiếc bờ lốc của mình. Nói chung là sau mấy tháng sử dụng thì khá là hài lòng. Vài ngày sau thì Remix ra thêm quả sử dụng Vitejs, mình tò mò, init một playground lên nghịch thử. Rồi mình quyết định đổi quả blog của mình từ NextJS sang Remix.
Cảm nhận ban đầu là khá ưng bụng. Không hiểu sao dev server của NextJS trên máy mình khá là chậm nên khi đổi sang Remix thì quá là ưng bụng luôn. Tưởng chừng là chuyển sang Remix rồi đấy. Nhưng loay hoay cả tháng trời vẫn chưa xong. Không phải tại Remix tệ mà tại "My skill issues" 😩
Đổi stack mới, nhưng lại còn tham. Mình chơi một phát vừa Remix, vừa ViteJS, vừa Cloudflare, 🫣. Lần đầu tiên sử dụng Edge Runtime nên rất là nhiều bỡ ngỡ.
Lỗi đầu tiên là không support NodeJS API. Quá là hiển nhiên mà. Lọ mọ đi cấu hình compatilibity_flags cho Cloudflare. Cái này dễ ẹc!
Lỗi thứ hai là không deploy lên Cloudflare Pages được. Cái này là do mình đọc docs, thấy hướng dẫn nên làm theo. Nhưng không thể nào chạy được server lên chứ đừng nói là deploy. Rồi hóa ra, cái hướng dẫn kia vớ vẩn. Mình sửa lại một chút, bỏ ssr.noExternal, thêm ssr.target webworker. Start local server ngon lành 👏.
Lỗi thứ ba là "Your Functions script is over the 1 MiB size limit". F*ck it! Vẫn không deploy được. Chả hiểu ông keystatic làm cái quái gì mà build ra tận 3MiB lận 🤣 Loay hoay hai ngày không thể nào deploy được. Mình quyết định từ bỏ cloudflare pages. Chuyển về chạy NodeJS bình thường cho dễ thở.
Lỗi thứ tư là "redirect_url is not matched". F*ck it! Season 2 🙃 Vì dùng NodeJS, mình chọn một hosting provider khác. Loay hoay một hồi thì quyết định sử dụng Render.com. Mọi thứ ngon lành cho đến khi không sử dụng Github Auth được. Mé, ông Keystatic tự lấy url.origin ra để tự làm cái callback url. Nhưng vì lý do gì đó, mà cái url được build ra không match với cái domain của render.com 🤷 Mình cũng thử một đống cách workaround nhưng không được. Mình tắt máy đi ngủ.
🥹 🥱 😴
Mình khá là ưng bụng Keystatic rồi. Đã rất quyết tâm sẽ sử dụng Keystatic cho các dự án tiếp theo rồi đấy. Thế nhưng chắc trở quá!