Hyunjun Kim

MECHOOSE

นักวางแผนที่กำกับ AI สร้างคนเดียว: คอมเมิร์ซแฟชั่นสำหรับคนไทย + ลองเสื้อผ้าเสมือนจริงด้วย AI ใช้งานจริงแล้วที่ mechoose.store

ใช้งานจริงไอเดีย→เปิดตัวเว็บใช้งานจริง ~1 สัปดาห์ · App Store ~6 สัปดาห์

2026.02 – 2026.07 (ใช้งานจริง) / คนเดียว (AI เป็นทีม) / Web · iOS · Android

ปัญหา
นักช้อปชาวไทยยังไม่มีที่ที่เลือก ลองสวมแบบเสมือน และสั่งซื้อเสื้อผ้าได้ง่าย ๆ ในที่เดียว
บทบาทของผม
วางแผน · กำหนดมาตรฐาน · กำกับ AI ให้สร้าง · ดีพลอย
เทคสแต็ก
React 18 · TypeScript · Supabase (Postgres · Auth · Edge Functions) · Capacitor · Vercel

ผลลัพธ์

จากไอเดียสู่เว็บที่ใช้งานจริง
~1 สัปดาห์
จากไอเดียสู่เว็บที่ใช้งานจริง
จากไอเดียสู่การอนุมัติบน App Store (มีบน Google Play ด้วย)
~6 สัปดาห์
จากไอเดียสู่การอนุมัติบน App Store (มีบน Google Play ด้วย)
เส้นทาง API ของแบ็กเอนด์ (edge function)
137
เส้นทาง API ของแบ็กเอนด์ (edge function)
MECHOOSE
คอมมิตของผมเอง (จากทั้งหมด 241 ที่เหลือเป็นการซิงก์อัตโนมัติจาก Figma)
100+
คอมมิตของผมเอง (จากทั้งหมด 241 ที่เหลือเป็นการซิงก์อัตโนมัติจาก Figma)

⚡ ไอเดีย→เปิดตัว

เว็บใช้งานจริง ~1 สัปดาห์ · App Store ~6 สัปดาห์

  1. 2026-02-03

    คำสั่งแรก · บิลด์แรกที่ใช้งานได้

  2. +6 days

    2026-02-09

    เว็บใช้งานจริง (mechoose.store)

  3. +36 days

    2026-03-17

    ได้รับอนุมัติบน App Store

  4. +120 days

    2026-07-15

    คอมมิตล่าสุด

จากไอเดียสู่เว็บที่ใช้งานจริง ~1 สัปดาห์ · ได้รับอนุมัติและเปิดตัวบน App Store ~6 สัปดาห์ (2026-03-17) · มีบน Google Play ด้วย · ทำงานจริง ~33 วันตามคอมมิตใน git

01

ไอเดีย / ปัญหา

คำสั่งแรก: "ผมไม่มีพื้นฐานการเขียนโค้ด เลยสร้างแอปคอมเมิร์ซด้วย Figma Make AI กับ GPT — แต่หน้า My Page ขึ้น error ตลอดจนผมติด ช่วยได้ไหม?" ต้นฉบับ (KO): "기술이 없어서 Figma Make랑 GPT로 커머스를 만들고 있는데, 마이페이지에서 에러가 자꾸 나 막혀요 — 도와줄래요?"

ผมอยากได้บริการช้อปปิ้งแฟชั่นสำหรับผู้บริโภคชาวไทย ที่เลือกเสื้อผ้า ลองสวมแบบเสมือน และสั่งซื้อได้ทันที นอกจากพื้นฐานของคอมเมิร์ซ (แคตตาล็อก การชำระเงิน คำสั่งซื้อ แอดมิน) เป้าหมายคือให้บริการลองเสื้อผ้าเสมือนจริงด้วย AI และการปรึกษาสไตลิสต์ไว้ในที่เดียว

02

แผนและมาตรฐานที่ผมกำหนด

  • วางแผนขอบเขตบริการและ flow หน้าจอเอง: แคตตาล็อก คำสั่งซื้อ การชำระเงิน แอดมิน
  • มาตรฐานการดำเนินงาน: เมื่อข้อมูลที่จำเป็นสำหรับการจัดส่ง (เบอร์โทร ที่อยู่ LINE ID) ไม่ครบ อย่าไปบล็อกตอนชำระเงิน — ให้เก็บข้อมูลตอนเข้าแอปแทน
  • เลือกเทคสแต็กร่วมกับ AI โดยเน้นความเร็วในการดูแลคนเดียว: โค้ดเว็บชุดเดียวห่อเป็นแอป iOS/Android ด้วย Capacitor และรวม API ไว้บน Supabase Edge Functions แบบ serverless
MECHOOSE — mechoose 02 desktop
MECHOOSE — mechoose 05 desktop
MECHOOSE — mechoose 05 mobile

03

การกำกับ AI

Fig. mechoose-direction

การกำกับ AI

  1. 01 คำสั่งแรก

    สร้างหน้าแคตตาล็อก ตะกร้า และ My Page พร้อม API บน edge function

  2. 02 สิ่งที่ผมตรวจ

    ผมสั่งซื้อจริงบนเว็บไซต์ที่ใช้งานจริง และพบจุดที่การชำระเงินค้าง และจุดที่การกรอกที่อยู่ทำให้พิมพ์ผิดหรือตกหล่น

  3. 03 การแก้ไข

    ผมแปลงปัญหาของผู้ใช้เป็นคำสั่งฟีเจอร์ — "ให้การชำระเงินที่ค้างกลับมาทำต่อได้" "ให้ที่อยู่เติมอัตโนมัติและใส่รหัสไปรษณีย์ให้เอง"

คำสั่งจริง (ตัดตอน)

  • อย่าเขียนทับทั้งหมด — แพตช์เฉพาะส่วนที่เปลี่ยนOriginal전체를 덮어쓰지 말고 바뀐 부분만 패치해줘.
  • อธิบายผลกระทบข้างเคียงก่อนแก้ และแก้หลังจากผมอนุมัติแล้วเท่านั้นOriginal바꾸기 전에 부작용을 먼저 설명하고, 승인받은 뒤에 고쳐.

Fig. mechoose-03

เปลี่ยนปัญหาเป็นฟีเจอร์ ด้วยคำสั่งที่เป็นคำพูด

Before

  • คำสั่งซื้อที่การชำระเงินถูกขัดจังหวะถูกปล่อยค้างไว้
  • ผู้ใช้หาไม่เจอว่าค้างไว้ตรงไหน

คำสั่งของผม (ตัดตอน)

ให้ผู้ใช้กลับมาชำระคำสั่งซื้อที่ถูกขัดจังหวะต่อได้

Original결제가 끊긴 주문을 다시 이어서 결제하게 해 줘

After

  • ✓ แบนเนอร์ “รอชำระเงิน” + ไฮไลต์ใน My Page
  • ✓ ชำระต่อจากจุดที่หยุดไว้

04

จุดที่ติดขัดและวิธีแก้

  • คำสั่งซื้อค้างชำระถูกทิ้งไว้: การชำระเงินที่ถูกขัดจังหวะถูกปล่อยค้างไว้ ผมกำกับ AI ให้แสดงสถานะ "รอชำระเงิน" ในแบนเนอร์และใน My Page และเพิ่ม flow กลับเข้ามาชำระต่อจากจุดที่ผู้ใช้ค้างไว้ ช่วยลดการหลุดออกกลางทาง
  • กรอกที่อยู่ผิดพลาด: ที่อยู่ที่พิมพ์เองมักพิมพ์ผิด ผมเพิ่มระบบเติมที่อยู่อัตโนมัติที่ใส่รหัสไปรษณีย์ให้เอง ลดสาเหตุที่ทำให้จัดส่งไม่สำเร็จ
MECHOOSE — mechoose 07 mobile order detail pending
MECHOOSE — mechoose 07 mobile orders pending
หน้าจอลูกค้า (ภาษาไทย): ไฮไลต์คำสั่งซื้อที่รอชำระเงิน พร้อมทางกลับไปชำระเงิน

Case 01

คำสั่งซื้อที่การชำระเงินถูกขัดจังหวะถูกปล่อยค…

  1. อาการ

    คำสั่งซื้อที่การชำระเงินถูกขัดจังหวะถูกปล่อยค้างไว้และไม่เกิดยอดขาย

  2. สิ่งที่ผมบอก AI

    ผมอยากให้ผู้ใช้กลับมาชำระเงินที่ค้างไว้ต่อได้" โดยอธิบายเป็น flowOriginal결제가 끊긴 주문을 사용자가 다시 이어서 결제하게 하고 싶다"고 플로우로 전달.
  3. ความพยายามแรกของ AI

    ป้ายสถานะธรรมดาไม่ช่วยให้ผู้ใช้หาจุดที่ค้างไว้เจอ

  4. จุดที่ผมจับได้

    สถานะ "รอชำระเงิน" ต้องเด่นทั้งในแบนเนอร์และใน My Page และต้องชำระต่อจากจุดที่หยุดได้

  5. วิธีแก้

    เพิ่ม flow กลับเข้ามาชำระต่อ ลดการหลุดออกกลางทาง

  6. การป้องกันไม่ให้เกิดซ้ำ

    สำหรับ flow ที่อาจถูกขัดจังหวะ ผมออกแบบสถานะ "หยุด–ทำต่อ" ไว้ตั้งแต่ต้น

05

ผลลัพธ์

  • ใช้งานจริงบนโดเมน mechoose.store
  • พัฒนาจริง ~8 สัปดาห์ (คอมมิตของผมเอง 100 ครั้ง จากทั้งหมด 241 ที่เหลือเป็นบอตซิงก์อัตโนมัติจาก Figma)
  • ซอร์สโค้ดฝั่ง frontend ~38,600 บรรทัด และ edge function 137 เส้นทาง (ฟังก์ชันเดียว)
  • ฟีเจอร์ที่ใช้งานจริง: flow กลับมาชำระคำสั่งซื้อที่ค้าง, การเติมที่อยู่อัตโนมัติ, ลองเสื้อผ้าเสมือนจริงด้วย AI
MECHOOSE — mechoose 04 alt mobile tryon hero
MECHOOSE — mechoose 06 desktop orders
MECHOOSE — mechoose 06 desktop products
MECHOOSE — mechoose 06 desktop reviews
MECHOOSE — mechoose 06 desktop stylist
MECHOOSE — mechoose 06 desktop users
แผงแอดมิน — แปลข้อความ UI เป็นภาษาอังกฤษสำหรับพอร์ตโฟลิโอ

Fig. mechoose-08

โค้ดเว็บชุดเดียว → เว็บ, iOS, Android และแบ็กเอนด์ serverless

FrontendReact · Vite · TypeScriptโค้ดเว็บชุดเดียว
WebVercelmechoose.store
App shell (ห่อเป็นแอป)CapacitoriOS · Android
BackendEdge API (ฟังก์ชัน serverless)137 เส้นทาง · คำสั่งซื้อ การชำระเงิน แอดมิน
DataDB · Storage
AIลองเสื้อผ้าเสมือนจริงด้วย AI (API ภายนอก)
สถาปัตยกรรมที่คนเดียวดูแลได้ ออกแบบร่วมกับ AI: รวมทุกเส้นทาง API ไว้ใน edge function เดียว ไม่มีเซิร์ฟเวอร์ให้ดูแล

06

มองย้อนกลับ

ฟีเจอร์เพิ่มได้เร็วเมื่อผมสั่งงานด้วยเสียง แต่โครงสร้างหน้าจอช่วงแรกถูกอัดไว้ในไฟล์เดียวจนแก้ไขยากขึ้น ครั้งหน้าผมจะตั้งมาตรฐานตั้งแต่ต้นให้แยกหน้าจอและการจัดการ state เป็นชิ้นเล็กตามหน้าที่

หน้าจอเพิ่มเติม · 3 ภาพ

MECHOOSE — รายละเอียดสินค้า
รายละเอียดสินค้า
MECHOOSE — ตะกร้าสินค้า
ตะกร้าสินค้า
MECHOOSE — ชำระเงิน — PromptPay
ชำระเงิน — PromptPay

UI shown in English for portfolio; product data is the live Thai catalog (seller photos blurred).

(01) Review

Honest รีวิว

ถ้านักพัฒนาเป็นคนสร้าง

จุดแข็ง3
  • ขอบเขตฟีเจอร์ — บริการคอมเมิร์ซครบวงจรที่ใช้งานจริง

    ร้านค้า ตะกร้า รายการโปรด การชำระเงินด้วยบัตรจริงและการคืนเงิน การเคลมและคืนสินค้า สต็อก รีวิว แอปสไตลิสต์ แผงแอดมิน ล็อกอินโซเชียล 4 แบบ พุชและการแจ้งเตือนทาง LINE — ใช้งานจริงบนเว็บ App Store และ Google Play

  • ประสิทธิภาพ — main bundle ลดจาก 1.6MB → 454KB

    แยกโค้ด vendor เป็น 5 chunk โหลดแอปแอดมินเฉพาะเมื่อจำเป็น (ย้ายออกไป 664KB) แคชข้อมูล 5 นาที และ lazy-load รูปภาพ

  • ความเร็วและต้นทุน — เว็บใช้งานจริงใน ~1 สัปดาห์ App Store ใน ~6 สัปดาห์

    พัฒนาจริง ~8 สัปดาห์ ~51K บรรทัด คอมมิตของผมเอง 100 ครั้ง

เทียบเท่า4
  • ความปลอดภัยพื้นฐาน — เทียบเท่าทีมเล็ก

    ตรวจสิทธิ์แอดมินทุกเส้นทางของแอดมิน ตรวจยอดชำระซ้ำบนเซิร์ฟเวอร์ จำกัด origin ที่อนุญาต จำกัดอัตราการเรียก (rate limiting) มี security header และไม่ส่งคีย์ฝั่งเซิร์ฟเวอร์ไปกับแอป

  • การเปิดตัวและการดูแลระบบ — เว็บ + แอปสโตร์ 2 แห่งจากโค้ดเบสเดียว

    Vercel สำหรับเว็บ Capacitor สำหรับ iOS/Android มี deep link, PWA และหน้าจอข้อผิดพลาดที่แสดงรหัสอ้างอิง

  • การรองรับหลายภาษา — ตลาดเดียว เน้นภาษาไทยเป็นหลัก

    คีย์แปล 245 คีย์ ยังมีข้อความฮาร์ดโค้ดเหลืออยู่บางส่วน

  • เอกสาร — บันทึกสถาปัตยกรรมและการตัดสินใจไว้

    ตัวเลขบางส่วนในเอกสารคลาดเคลื่อนจากโค้ด

ขั้นต่อไป (กำลังเติมเต็ม)4
  • การทดสอบและระบบอัตโนมัติ — ยังไม่มีการทดสอบ CI lint หรือการตรวจ type

    ทุกการปล่อยเวอร์ชันตรวจด้วยมือบน flow การซื้อจริง

    วางแผน → เริ่มจากตรรกะการชำระเงินและคำสั่งซื้อ: unit test 10–20 ชุด จากนั้นบิลด์ + ตรวจ type + ทดสอบทุกคอมมิต

  • สถาปัตยกรรม — แบ็กเอนด์โตเป็นไฟล์เดียว 6,299 บรรทัด บน key-value store ตัวเดียว

    เส้นทาง API 137 เส้นอยู่ในไฟล์เดียว และข้อมูลอยู่ใน store แบบทั่วไปตัวเดียว ฐานข้อมูลจึงบังคับความสัมพันธ์ของข้อมูลไม่ได้

    วางแผน → แยกตามโดเมน (คำสั่งซื้อ → การชำระเงิน → แอดมิน) และย้ายคำสั่งซื้อกับการชำระเงินไปตารางที่เหมาะสมพร้อม migration

  • ความสม่ำเสมอของโค้ด — type หลวม และมีไฟล์สำเนาค้างอยู่

    มีจุดที่ไม่ระบุ type (`any`) 940 จุด การพัฒนาอย่างรวดเร็วทำให้มีโค้ดเซิร์ฟเวอร์ค้างอยู่ 3 สำเนาและไฟล์สำรอง

    วางแผน → ใช้การตรวจ type แบบเข้มงวดเป็นด่านก่อนปล่อยเวอร์ชัน เริ่มลบ `any` จากส่วนชำระเงิน และลบสำเนาที่ไม่ใช้แล้ว

  • ประวัติและการมอนิเตอร์ — คอมมิตตามรอยยาก ไม่มีระบบแจ้งเตือน

    141 จาก 241 คอมมิตเป็นการซิงก์อัตโนมัติจากเครื่องมือออกแบบ ข้อผิดพลาดมีรหัสอ้างอิง แต่ยังไม่มีอะไรแจ้งเตือนผมอัตโนมัติ

    วางแผน → แยกคอมมิตฟีเจอร์ที่มีข้อความชัดเจนออกจากการซิงก์ดีไซน์ และเพิ่มการติดตามข้อผิดพลาดกับการสำรองข้อมูลตามรอบเข้าไปในขั้นตอนดีพลอย

โปรเจกต์ถัดไป →

Momento

กำกับ AI ให้สร้างแอปเดียวกันแบบเนทีฟทั้งบน iOS และ Android — แอปเก็บความทรงจำของคู่รักที่จับคู่ช่วงเวลาให้อัตโนมัติ

ดูกรณีศึกษา
เรซูเม่ PDF