# Wails 2026: คู่มือสร้าง Desktop App ด้วย Go + Web Frontend สำหรับ SME ไทย
ในยุคที่ธุรกิจ SME ไทยต้องการ Internal Tool หรือแอปลูกค้าแบบ desktop เพื่อทำงานที่ web app ทำไม่ได้ เช่น พิมพ์บิลผ่านเครื่องพิมพ์ความร้อน อ่าน RFID/Barcode ผ่าน serial port หรือเชื่อมต่อกับเครื่อง POS เก่า ๆ คำถามที่ตามมาคือ "จะใช้ framework อะไร?" — Electron กินแรม 200 MB ขึ้น Tauri ดี แต่ต้องเขียน Rust ส่วน Flutter Desktop ยังจำกัด
Wails คือ framework open-source ที่ผสาน Go สำหรับ business logic เข้ากับ Web frontend (React, Vue, Svelte, Solid หรือ vanilla JS) ผ่าน WebView ของระบบปฏิบัติการ ทำให้ได้ binary เล็ก (~10–15 MB) เริ่มต้นเร็ว และคง type-safety ฝั่ง Go ที่ทีม backend ส่วนใหญ่คุ้นอยู่แล้ว เป็นทางเลือกที่ดีที่สุดสำหรับทีมที่ "อยากได้ Desktop App แต่ไม่อยากเรียน Rust"
บทความนี้ ADS FIT จะพาคุณรู้จัก Wails v3 ตั้งแต่ architecture, การติดตั้ง, การเชื่อม Frontend กับ Go binding, การ build distributable, และตัวอย่าง use case จริงในธุรกิจไทย
Wails คืออะไร และต่างจาก Electron/Tauri อย่างไร
Wails ใช้แนวทางคล้าย Tauri คือใช้ WebView ของ OS (WebView2 บน Windows, WebKit บน macOS, WebKitGTK บน Linux) แทนการ bundle Chromium เหมือน Electron จึงได้ binary ขนาดเล็กมาก แต่จุดต่างสำคัญคือ Wails ใช้ Go เป็นภาษาฝั่ง backend ขณะที่ Tauri ใช้ Rust
| คุณสมบัติ | Wails v3 | Tauri 2 | Electron |
|----------|----------|---------|----------|
| ภาษา Backend | Go | Rust | Node.js |
| Bundled Browser | ไม่ใช้ (System WebView) | ไม่ใช้ (System WebView) | ใช้ Chromium |
| ขนาด Binary | 10–15 MB | 5–10 MB | 80–150 MB |
| RAM ตอนเริ่ม | ~50 MB | ~40 MB | ~200 MB |
| Mobile Support | iOS/Android (preview) | iOS/Android | ไม่มี |
| Learning Curve | ปานกลาง | สูง (Rust) | ต่ำ |
| Ecosystem | กลาง (Go std lib) | ปานกลาง | สูงมาก |
จากตาราง Wails คือ "จุดกึ่งกลางที่ดี" ของ 3 ตัว ใครเคยเขียน Go มาก่อนสามารถสร้าง Desktop App ได้ทันทีโดยไม่ต้องไปเรียน Rust หรือยอม trade-off กับ binary 100+ MB ของ Electron
ทำไม SME ไทยควรพิจารณา Wails
ธุรกิจในไทยที่เหมาะกับ Desktop App มักมีโจทย์เฉพาะที่ web app ไม่สะดวก
นอกจากนี้ Go ยังเป็นภาษาที่ทีม backend ไทยคุ้นเคยจาก microservice เดิมอยู่แล้ว reuse code module เช่น auth, validator, repository ได้ทันที ลดเวลาเรียนรู้
ฟีเจอร์เด่นของ Wails v3
Wails v3 (2026) เปิดตัวฟีเจอร์ใหม่ที่ตอบโจทย์ production มากขึ้น
วิธีเริ่มโปรเจกต์ Wails (Step-by-Step)
ตัวอย่างนี้สร้าง Desktop App สำหรับร้าน POS ขนาดเล็ก backend Go + frontend Svelte + SQLite
Step 1: ติดตั้ง Wails CLI
ต้องมี Go 1.22+ และ Node.js 20+ ก่อน
```bash
go install github.com/wailsapp/wails/v3/cmd/wails3@latest
wails3 doctor
```
คำสั่ง doctor ตรวจ dependency ระบบ เช่น WebView2 บน Windows หรือ Xcode CLI บน macOS
Step 2: สร้างโปรเจกต์ใหม่
```bash
wails3 init -n pos-app -t svelte-ts
cd pos-app
```
เลือก template `svelte-ts` (มี React, Vue, Solid, Lit ให้เลือกด้วย)
Step 3: เขียน Go Service
สร้างไฟล์ `services/sales.go` รวม method `CreateOrder`, `ListProducts` แล้ว register บน Application
```go
type SalesService struct{ db *sql.DB }
func (s *SalesService) CreateOrder(item Item) (*Order, error) { ... }
```
Step 4: เรียกใช้จาก Frontend
Wails จะ generate TypeScript binding ให้อัตโนมัติ
```ts
import { SalesService } from '../bindings/services';
const order = await SalesService.CreateOrder({ sku: 'A001', qty: 1 });
```
ไม่ต้อง implement REST API หรือ tRPC เพิ่ม ทุกการเรียกผ่าน IPC แบบ type-safe
Step 5: Run แบบ Dev
```bash
wails3 dev
```
รัน hot-reload ทั้ง frontend + Go binding
Step 6: Build Production
```bash
wails3 build -platform windows/amd64,darwin/universal,linux/amd64
```
จะได้ binary แต่ละแพลตฟอร์มใน `bin/` พร้อม distribute
Step 7: Code Sign + Auto Update
ใช้ flag `-trimpath -ldflags "-s -w"` ลดขนาด binary แล้ว publish ผ่าน GitHub Release ตั้งค่า updater ใน `wails.toml` ให้ pull update อัตโนมัติ
ตัวอย่าง Use Case ในไทย
Case 1: ระบบ POS ร้านอาหาร
ทีม dev ใช้ Wails + Svelte + SQLite สร้างแอป POS ที่รัน offline ได้ พิมพ์ใบเสร็จผ่าน Slip Printer ผ่าน serial โดยใช้ `go.bug.st/serial` library binary final 13 MB เริ่มต้นใน 1 วินาที
Case 2: Desktop Companion สำหรับ ERP คลาวด์
SME ที่ใช้ ERP บนคลาวด์ ทำ Desktop helper ที่ sync ข้อมูล offline + อ่านบาร์โค้ดสินค้า แล้ว push เข้า ERP ผ่าน REST API เมื่อกลับ online
Case 3: Internal Tool ทีมการตลาด
ทีมการตลาดของบริษัทไทยใช้ Wails สร้าง tool สำหรับ pull รายงานจาก Meta/Google Ads API + cache local + export Excel ลด context-switching ระหว่างเปิดหลายเว็บไซต์
เปรียบเทียบ Wails กับทางเลือกอื่น
| สถานการณ์ | แนะนำ |
|----------|-------|
| ทีม Go อยู่แล้ว ต้องการ Desktop เร็ว | Wails |
| ทีม Rust หรืออยากได้ binary เล็กที่สุด | Tauri |
| Desktop ที่ require Node ecosystem | Electron |
| ต้องการเน้น Mobile + Desktop เดียวกัน | Flutter |
| Internal Tool ง่าย ๆ ไม่ต้องการ native | PWA/Webapp |
Wails ชนะเมื่อทีมคุ้น Go และต้องการประสิทธิภาพ binary เล็กในเวลาเดียวกัน
สรุป + Call to Action
Wails 2026 (v3) เป็น framework ที่ลงตัวสำหรับ SME ไทยที่ต้องการ Desktop App ขนาดเล็ก รวดเร็ว และเขียนด้วย Go ที่ทีมคุ้นเคย โดยได้ประสิทธิภาพใกล้เคียง Tauri แต่ไม่ต้องเรียน Rust ใหม่ ผสาน Web frontend (React/Svelte/Vue) ได้ทันที พร้อมฟีเจอร์ multi-window, auto-update, native menu, IPC type-safe ในตัว
หากธุรกิจของคุณกำลังพิจารณาสร้าง Desktop App สำหรับร้านสาขา, POS, หรือ Internal Tool ทีม ADS FIT พร้อมให้คำปรึกษาด้านการเลือก stack, การ design IPC architecture, การ integrate กับระบบ Laravel หรือ Next.js เดิม และการ deploy พร้อม code signing สำหรับ Windows/macOS — ติดต่อเราที่หน้า Contact Us หรืออ่านบทความ Development อื่น ๆ บนบล็อกของเรา
