- Reverse Proxy สำหรับหา hentai จากภาพ หรือหา ภาษาอื่นจากภาพ (Experimental: ตอนนี้กำลังทำการแปลอยู่)
Frontend (Hifumi)
- https://github.com/saltyaom/hifumin/tree/bismarck
Main ตอนนี้ยังเป็น Nextjs อยู่แต่กำลังเขียนใหม่เป็น Svelte บน branch Bismarck
Hifumi เป็น PWA ที่ optimize มาค่อนข้างดี Average bundle size ประมาณ 40K ต่อหน้า แต่ ส่วนใหญ่ถูก cache เอาไว้ด้วย Workbox บน runtime หมดแล้ว ทำให้เวลาโหลดหน้าใหม่ ทุกอย่างจะถูก Cache ไว้หมด ยกเว้น API, ถ้าเป็น local assets จะเป็น CacheFirst แล้วที่เหลือ key หลักๆ จะเป็น StaleWhileRevalidate ที่จะ invalidate cache ให้เอง เลยไม่มีปัญหาเรื่อง cache invalidation
เอาจริง เขียนใหม่มา 4-5 รอบได้แล้ว 555555~
วิวัฒนาการมาจาก React > Nextjs (Stylus) > Nextjs (Tailwind) แล้วสุดท้ายมาปักหลักลงที่ Svelte Kit เพราะ performance ดีมาก
Public API จะเป็น GraphQL หมด แล้ว Internal API (เช่น User) จะเป็น REST API เพราะ overhead น้อยกว่า (มาก) แต่แลกมาด้วยความ Flexible ที่น้อยลง
GraphQL Driver เป็นตัวที่เขียนเองคือ @saltyaom/gql กับ gq เพราะว่า driver ส่วนใหญ่จะจัดการเรื่อง AST Tree ของ GraphQL ก่อนส่ง request เลยทำให้ขนาดใหญ่ แต่เราต้องการแค่ส่ง Request ได้ก็พอ (eg. fetch syntax sugar สำหรับ GraphQL ที่เขียน plugin เพิ่มได้) เลยทำให้ขนาดเหลือไม่เกิน 1KB