แชร์ Tech Stack เว็บ LearnAlgorithm - LearnAlgorithm
Indie Hacking
December 9, 2024
|
3 mins read

แชร์ Tech Stack เว็บ LearnAlgorithm

Tech stack เว็บ LearnAlgorithm รวมไปถึง workflow ของการเขียนบทความ สำหรับใครที่อยากเริ่มเขียนบล็อกของตัวเอง

แชร์ Tech Stack เว็บ LearnAlgorithm

มีคนถามเข้ามาพอสมควร ว่าเว็บใช้ tech stack อะไร แล้วมี workflow การเขียนบทความยังไง

โพสนี้เลยอยากมาสรุปเอาไว้หน่อย เผื่อว่าใครอยาก setup tech blog ไว ๆ ของตัวเองต้อนรับปีใหม่

หลัก ๆ คือเว็บเขียนด้วย Astro เป็น web-framework ที่เหมาะมาก สำหรับเว็บที่เน้น content; คือเราสามารถเขียน content บน markdown หรือบน CMS อื่น ๆ เช่น Ghost หรือ Wordpress (ซึ่งมันมี plugin อะไรให้พร้อมอยู่แล้ว)

และเราสามารถ build เป็น static ที่สามารถ host ที่ไหนก็ได้สบาย ๆ

สำหรับ content เราเขียนด้วย MDX; เหมือน markdown อ่ะหล่ะ แต่สามารถ import พวก Svelte/React components เข้ามาใช้ใน markdown ได้เลย

คือเหมาะมาก สำหรับใครที่ทำ tech blog เพราะ เราสามารถ embed custom/interactive component ลง blog ได้แบบง่าย ๆ

ด้วยความที่ MDX เป็นก็เป็นไฟล์ที่อยู่ในเครื่อง นั้นหมายความว่าเราสามารถใช้ local text editor อะไรก็ได้ในการเขียนบทความ

ส่วนตัวเราใช้ Obsidian (เป็น markdown editor ตัวหนึ่ง) แก้ไฟล์ MDX ที่อยู่ในเครื่องตรง ๆ เลย; ส่วนเหตุผลที่ใช้ Obsidian ก็เพราะว่า

  1. ตัว markdown editor ทำออกมาได้ค่อนข้างดี พอแก้อะไรเราสามารถเห็น quick preview ตอนที่เราแก้ได้เลย
  2. มี community plugin ให้เลือกเยอะ ทำให้การเขียนสะดวกขึ้นไปอีก (ส่วนตัวเราลง VIM plugin เอาไว้ ซึ่งช่วยให้เขียน + edit ได้ไวขึ้นมาก ๆ)
  3. ส่วนตัวใช้ Obsidian อยู่แล้ว เลยมี setup ไว้ประมาณนึง

ความเจ๋งคือพอเราแก้ไฟล์ในเครื่อง มันก็จะไป trigger hot reload ของ astro dev environment; ทำให้เราเห็น preview แบบ real-time เลยว่า สิ่งที่เราเขียนพอไปขึ้นเว็บจริงมันจะมีหน้าตาเป็นยังไง

โดยสรุปแล้วคือเรามี workflow การเขียนประมาณนี้

  1. yarn dev รันเว็บขึ้นมา
  2. เขียน content ใน Obsidian (สลับไปดูหน้าเว็บเพื่อดู preview เว็บ content ที่เขียนเป็นยังไง)
  3. พอเขียนเสร็จพอใจแล้ว ก็รัน yarn build && yarn deploy

Easy!!

อาจจะไม่เหมาะกับทุก use cases นะ (เช่นบางทีไปใช้ Ghost/WP เลยอาจจะทำให้ขึ้น blog ได้ไวกว่า)

แต่สำหรับใครที่อยากทำ interactive blog (หรืออยากใส่ custom components เยอะ ๆ) + อยาก custom theme/pages เอง + เขียนบทความคนเดียว ไม่ได้ต้อง collaborate กับใครมาก

ส่วนตัวมองว่าเป็น setup นึงที่สะดวกเลย

(ส่วนถ้าอยากทำ gated content, api หรือ SSR; Astro มี feature provide ให้อยู่แล้ว ส่วนสำหรับ db ก็มี Astro DB ให้เช่นกัน)

Chun Rapeepat

Rapeepat Kaewprasit (Chun)

คน ๆ หนึ่งที่ชื่นชอบในการสร้าง การทำธุรกิจ และการได้ลองทำอะไรใหม่ ๆ ไปเรื่อย ๆ