0
0
Lập trình
Sơn Tùng Lê
Sơn Tùng Lê103931498422911686980

Xây dựng Wopa: Viết một lần, xuất bản mọi nơi

Đăng vào 6 ngày trước

• 6 phút đọc

Từ Khó Khăn Đến Giải Pháp: Xây Dựng Wopa - Viết Một Lần, Xuất Bản Mọi Nơi

Bạn có biết cảm giác khi hoàn thành một bài viết blog tuyệt vời và nhận ra rằng công việc thực sự mới chỉ bắt đầu? Đó chính xác là nơi câu chuyện của tôi với Wopa bắt đầu.

Tôi đã cố gắng viết về một ý tưởng khung mẫu mà tôi muốn xây dựng. Dành cả cuối tuần để viết, tôi cảm thấy khá hài lòng với nội dung. Rồi phần "thú vị" đã đến - thực sự đưa nó ra ngoài kia.

Địa Ngục Xuất Bản Chéo

Điểm dừng đầu tiên: Medium. Sao chép, dán, sửa định dạng. Các khối mã trông kỳ quặc, nên tôi phải mất thêm 20 phút để chỉnh sửa. Sau đó là Dev.to - markdown khác, cách xử lý hình ảnh khác. Ồ, và làm nổi bật cú pháp bị hỏng, lại mất thêm 15 phút.

Sau đó là blog cá nhân của tôi. Rồi đến Hashnode. Này, có lẽ cũng nên đăng một phiên bản trên LinkedIn nữa, đúng không?

Ba tiếng sau, tôi vẫn đang định dạng lại cùng một bài viết cho nền tảng thứ năm. Tại thời điểm này, tôi tự hỏi tại sao mình lại bận tâm viết nó ngay từ đầu.

Nhưng điều thực sự làm tôi khó chịu - tôi viết hầu hết các bản nháp của mình trong Notion. Nó chỉ đơn giản là... tốt hơn cho việc viết, bạn biết không? Giao diện sạch sẽ, tổ chức tốt, không bị phân tâm. Vấn đề là, việc đưa nội dung từ Notion sang các nền tảng xuất bản là một cơn ác mộng. Bạn mất định dạng, các khối mã hoàn toàn bị hỏng, và hình ảnh? Quên đi.

Chờ đã, Điều Này Không Chỉ Là Tôi

Vì vậy, tôi bắt đầu tìm kiếm thông tin. Các chủ đề trên Reddit, thảo luận trên GitHub, những bài rant ngẫu nhiên trên Twitter. Hóa ra tôi không phải là người duy nhất - hàng triệu lập trình viên đang đối mặt với vấn đề tương tự.

Tôi đã tìm thấy một chủ đề nơi ai đó duy trì một bảng tính thực tế để theo dõi nơi họ đã xuất bản nội dung. Một người khác thì hoàn toàn từ bỏ và chỉ sử dụng Dev.to, mặc dù họ muốn tiếp cận nhiều đối tượng hơn.

Chuyện sử dụng Notion cũng thường xuyên xuất hiện. Nhiều người soạn thảo ở đó vì đây là một môi trường viết tốt, nhưng sau đó họ lại phải tự tay tái tạo mọi thứ ở nơi khác.

Tôi ngồi đó nghĩ, "Được rồi, đây chắc chắn là một vấn đề thực sự.”

Khoảnh Khắc Đèn Sáng

Tôi đã than phiền về điều này với một người bạn trong lúc uống cà phê (một hành động điển hình của lập trình viên, tôi biết), và họ cơ bản nói, "Cậu làm ra đồ vật để kiếm sống. Nếu điều này làm cậu khó chịu đến vậy, sao không... xây dựng điều gì đó?"

Điểm hợp lý.

Ý tưởng dường như đơn giản - viết một lần, xuất bản mọi nơi. Để mọi người tạo nội dung theo cách họ muốn (đặc biệt là trong Notion vì đó là nơi nhiều người trong chúng ta đã ở), sau đó tự động phân phối nó.

Chắc chắn, có một số công cụ hiện có làm điều này, nhưng chúng hoặc rất hạn chế, hoặc quá đắt.

Xây Dựng Sản Phẩm

Tôi quyết định bắt đầu xây dựng. Kế hoạch: tạo một phiên bản MVP nhanh chóng, xem liệu điều này có thực sự xứng đáng để giải quyết đúng cách hay không.

Lựa Chọn Công Nghệ

Next.js + Tailwind có vẻ là lựa chọn hiển nhiên cho frontend. Tôi cần thứ gì đó có thể xử lý văn bản phong phú nhưng cũng có SEO tốt. Tailwind giúp mọi thứ diễn ra nhanh chóng - khi bạn đang cố gắng xác thực một ý tưởng, điều cuối cùng bạn muốn là bị mắc kẹt trong việc tranh luận về kiến trúc CSS.

Supabase cho backend là lựa chọn hợp lý. Thành thật mà nói, tôi đã chán việc xây dựng các hệ thống xác thực từ đầu, và tôi muốn một cơ sở dữ liệu quan hệ mà tôi thực sự hiểu. Hơn nữa, việc tạo API thì khá thú vị.

Google OAuth + tích hợp Notion là rất quan trọng. Google vì ai cũng có tài khoản, Notion vì đó chính xác là một nửa vấn đề tôi đang cố gắng giải quyết. Tôi muốn mọi người có thể kéo nội dung hiện có của họ trực tiếp thay vì bắt đầu từ đầu.

Vercel cho hosting vì nó hoạt động tốt với Next.js. Chỉ cần đẩy lên và nó được triển khai. Xong.

Thực Tế Phát Triển

Tôi sẽ thực tế - việc sử dụng các công cụ lập trình AI hiện đại đã giúp nhanh hơn rất nhiều so với một năm trước. Thay vì liên tục tìm kiếm tài liệu API hoặc cố gắng nhớ cách thức hoạt động của xác thực, tôi có thể chỉ cần mô tả những gì tôi cần và nhận được mã hoạt động để bắt đầu.

Tôi vẫn phải hiểu mọi thứ và đảm bảo rằng kiến trúc là hợp lý, nhưng tốc độ ban đầu thật sự rất tốt.

Phần khó khăn nhất không phải là công nghệ - mà là xử lý tất cả các API xuất bản khác nhau. Mỗi nền tảng có những quirks kỳ lạ riêng. API của Medium thì tạm ổn nhưng hạn chế. Dev.to thì thực sự khá ổn. Một số nền tảng (nhìn vào bạn, LinkedIn) gần như không có API sử dụng được.

Tôi Đang Thực Sự Xây Dựng Gì

Tôi đang hoàn thiện phiên bản đầu tiên hoạt động của Wopa, có thể tên sẽ khác, tôi vẫn cần suy nghĩ về tên miền. Ý tưởng cốt lõi: giải quyết cơn đau đầu xuất bản chéo này một lần và mãi mãi, đặc biệt cho những người đã viết trong Notion.

Khi tôi đang xây dựng, tôi luôn nghĩ về tất cả các cách mà vấn đề này xuất hiện:

  • Tài liệu thư viện của bạn cần sống trên GitHub, trang docs của bạn và Dev.to
  • Các ghi chú phát hành nên được gửi đi khắp nơi mọi người có thể thấy chúng
  • Chuỗi hướng dẫn hoạt động tốt hơn trên các nền tảng khác nhau cho các đối tượng khác nhau
  • Nội dung xây dựng thương hiệu cá nhân cần đến với mọi người ở bất cứ đâu họ tụ tập. Khía cạnh Notion cảm thấy đặc biệt quan trọng ở đây. Dựa trên tất cả những gì tôi đã thấy, hàng triệu lập trình viên soạn thảo trong Notion vì đây là một môi trường viết tốt hơn. Nhưng sau đó họ lại bị mắc kẹt trong việc tái tạo mọi thứ cho việc xuất bản thực tế.

Tìm Kiếm Những Người Hiểu Vấn Đề

Tôi vẫn còn khá sớm với Wopa, nhưng tôi rất muốn nói chuyện với những người thực sự đối mặt với những vấn đề này. Nếu bạn là ai đó:

  • Viết nội dung kỹ thuật và việc xuất bản chéo khiến bạn muốn hét lên
  • Sử dụng Notion để viết và ước có một nút ma thuật để xuất bản ở mọi nơi
  • Đã từng dành cả một buổi tối để định dạng lại cùng một bài viết cho các nền tảng khác nhau
  • Chỉ nghĩ rằng việc phân phối nội dung không nên đau đớn đến vậy Tôi thật sự rất muốn nghe ý kiến của bạn. Điều gì thực sự sẽ khiến điều này hữu ích cho cách bạn làm việc? Những nền tảng nào bạn tránh xuất bản chỉ vì quá phiền phức?

Tôi đang cố gắng xây dựng một thứ gì đó giải quyết các vấn đề thực tế cho những người thực sự, không chỉ để thỏa mãn nhu cầu của riêng mình.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào