หน้าตาเว็บ · สิทธิ์ · ฟังก์ชัน · ต้นทุน · การเก็บข้อมูล
Sitemap · roles · 93 functions · cost estimate · Google Analytics spec
หน้านี้คือ คอนเซปต์ของระบบ · ระบุว่ามีหน้าอะไร · ใครทำอะไรได้ · ฟังก์ชันแตกย่อยยังไง · ค่าใช้จ่ายประมาณเท่าไหร่ · เก็บข้อมูลอะไรเพื่อวัดผล · ไม่บอก tech stack ตามที่ตกลงกัน
Web sitemap
โครงสร้างหน้าเว็บทั้งหมด · public (เปิดทุกคนเข้าได้) และ admin (เฉพาะทีม Furever)
graph TD
HOME["🏠 / Homepage"]
HOME --> SEARCH["🔍 /search<br/>(filter + result)"]
SEARCH --> SHOP["🏪 /shop/:id<br/>(detail)"]
HOME --> BLOG["📰 /blog<br/>(list)"]
BLOG --> POST["📄 /blog/:slug<br/>(article)"]
HOME --> ADOPT["🐕 /adopt<br/>(list)"]
ADOPT --> PET["🐾 /adopt/:id<br/>(pet detail)"]
PET --> APPLY["📝 /adopt/apply<br/>(form)"]
HOME --> SPONSOR["💼 /sponsor<br/>(packages)"]
SPONSOR --> INQ["📩 /sponsor/inquire<br/>(form)"]
HOME --> REG["📋 /register<br/>(shop owner)"]
REG --> S1["Step 1<br/>Owner info"]
S1 --> S2["Step 2<br/>Shop info"]
S2 --> S3["Step 3<br/>Services"]
S3 --> S4["Step 4<br/>Confirm"]
HOME --> ABOUT["ℹ️ /about"]
ABOUT --> TEAM["👥 /about/team"]
HOME --> CONTACT["📧 /contact"]
HOME --> PRIV["🔒 /privacy"]
HOME --> TERMS["📜 /terms"]
HOME -.-> ADM["🔐 /admin (protected)"]
ADM --> ALOG["🔑 login"]
ALOG --> DASH["📊 Dashboard"]
DASH --> AS["Shops"]
DASH --> AB["Blog"]
DASH --> AA["Adoption"]
DASH --> ASP["Sponsors"]
DASH --> AC["Comments"]
DASH --> AF["Founders"]
classDef public fill:#abcee9,stroke:#4099e4,color:#2a2722
classDef form fill:#eeec89,stroke:#9d8477,color:#2a2722
classDef admin fill:#9d8477,stroke:#5e4d40,color:#fffefb
class HOME,SEARCH,SHOP,BLOG,POST,ADOPT,PET,SPONSOR,ABOUT,TEAM,CONTACT,PRIV,TERMS public
class APPLY,INQ,REG,S1,S2,S3,S4 form
class ADM,ALOG,DASH,AS,AB,AC,AA,ASP,AF admin
Page summary
| Path | หน้า | Purpose | Stage scope |
|---|---|---|---|
/ | Homepage | hero + categories + featured shops + adoption + blog + community | core |
/search | Search results | filter + grid + compare | core |
/shop/:id | Shop detail | contact · map · services · reactions/comments | core |
/register | Shop register | เจ้าของร้าน 4-step + admin approve | core |
/blog | Blog list | บทความ + filter category | core |
/blog/:slug | Blog article | อ่าน · related · reactions | core |
/adopt | Adoption list | น้องรับเลี้ยง (curated) | core |
/adopt/:id | Pet detail | โปรไฟล์น้อง · health · apply | core |
/adopt/apply | Adoption form | ใบสมัคร → admin | core |
/adopt/post | Post a pet | verified poster โพสน้องเอง | later |
/sponsor | Sponsor packages | Bronze/Silver/Gold + features | core |
/sponsor/inquire | Sponsor inquiry | form + เลือก package | core |
/about | About | เรื่อง brand | core |
/about/team | Founders | ทีมงาน + bio | core |
/contact | Contact | ช่องทาง · LINE · email | core |
/privacy | Privacy / PDPA | นโยบาย | core |
/terms | Terms | ข้อตกลง | core |
/admin/* | Admin dashboard | CMS · approve · moderate | core |
/admin/shop-owners | Shop owner portal | เจ้าของร้านดู stat + Boost | later |
/paw-store | Paw Store | merch + LINE order | maybe |
SEO & routing principles
- Public URL ต้อง crawlable · มี meta + OG tags
- Slug-based URL สำหรับ content (blog/shop) เพื่อ SEO
- Block /admin จาก search engine ·
robots.txt - 404 + 500 page branded · CTA กลับ home
- Sitemap.xml สร้างอัตโนมัติจาก published content
Roles & permissions
6 role ภายในเว็บ · เกิดจากการกระทำ ไม่ใช่จาก "สมัครสมาชิก"
graph LR
START["🌐 เปิดเว็บ"] --> V["👁️ Visitor<br/>(default)"]
V -->|"กด react/comment"| M["💬 Community Member<br/>(emoji + nickname)"]
V -->|"กรอก /register"| SO["🏪 Shop Owner<br/>(linked email)"]
V -->|"กรอก /adopt/apply"| AD["🤝 Adopter<br/>(form-based)"]
V -->|"กรอก /sponsor/inquire"| SP["💼 Sponsor Lead"]
M -.->|"register ร้านได้"| SO
SO -.->|"comment ได้"| M
LOGIN["🔐 /admin/login"] --> ADM["🐾 Furever Admin"]
classDef pub fill:#abcee9,stroke:#4099e4
classDef form fill:#eeec89,stroke:#9d8477
classDef priv fill:#9d8477,stroke:#5e4d40,color:#fffefb
class V,M pub
class SO,AD,SP form
class LOGIN,ADM priv
Role descriptions
👁️ Visitor ทำได้ทุกอย่างที่ read-only — ดูร้าน อ่าน blog ดู adoption · ไม่ต้องสมัคร
💬 Community Member Visitor ที่ react/comment · เลือก emoji + nickname + role · session 30 วันใน device
🏪 Shop Owner ผ่าน 4-step registration · linked email + LINE · status: pending → active
🤝 Adopter กรอกใบสมัคร · ไม่มี account · admin queue ติดต่อกลับ
💼 Sponsor Lead Partner brand inquiry · sales team ปิดดีลแบบ manual
🐾 Furever Admin ทีม Furever · เข้า /admin/login
Permission matrix
| Action | Visitor | Member | Shop Owner | Adopter | Sponsor | Admin |
|---|---|---|---|---|---|---|
| ดูร้าน · search · เปรียบเทียบ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| อ่าน blog · ดู adoption | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| กด reaction | — | ✓ | ✓ | ✓ | ✓ | ✓ |
| โพส comment | — | ✓ | ✓ | ✓ | ✓ | ✓ |
| ลบ comment ของตัวเอง | — | ✓ | ✓ | ✓ | ✓ | ✓ |
| กรอก adoption application | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| กรอก shop registration | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| แก้ข้อมูลร้านตัวเอง | — | — | ✓ | — | — | ✓ |
| โพส adoption เอง | — | — | verified | — | — | ✓ |
| ซื้อ Boost | — | — | ✓ | — | — | ✓ |
| Approve · moderate · CRUD | — | — | — | — | — | ✓ |
Modules → functions
โครงเว็บแบ่งเป็น 8 modules · ~93 functions
graph TD
M1["M1 · Discovery"]
M2["M2 · Shop"]
M3["M3 · Community"]
M4["M4 · Adoption"]
M5["M5 · Content / Blog"]
M6["M6 · Sponsor"]
M7["M7 · Admin / CMS"]
M8["M8 · Cross-cutting"]
M1 --> M2
M1 --> M3
M2 --> M7
M3 --> M7
M4 --> M7
M5 --> M7
M6 --> M7
M8 -.-> M1
M8 -.-> M2
M8 -.-> M3
M8 -.-> M4
M8 -.-> M5
M8 -.-> M6
M8 -.-> M7
classDef domain fill:#abcee9,stroke:#4099e4
classDef admin fill:#9d8477,stroke:#5e4d40,color:#fffefb
classDef infra fill:#eeec89,stroke:#9d8477
class M1,M2,M3,M4,M5,M6 domain
class M7 admin
class M8 infra
📖 Function ID format · F{module}.{seq} เช่น F1.5 · scope กำกับด้วย core / later / maybe
Discovery
ค้นหา · เปรียบเทียบ · เลือกร้าน — หัวใจฝั่ง demand
| ID | Function | Description | Scope |
|---|---|---|---|
| F1.1 | Free-text search | พิมพ์ keyword (ชื่อร้าน · บริการ) — instant result | core |
| F1.2 | Category filter | clinic / boarding / grooming / hotel / food / bath / training / other | core |
| F1.3 | Pet-type filter | หมา/แมว/กระต่าย/นก/อื่น | core |
| F1.4 | Open-now filter | คำนวณจาก hours + เวลาปัจจุบัน | core |
| F1.5 | Distance / proximity | ขอ geolocation → คำนวณระยะ · sort ใกล้สุด | core |
| F1.6 | Rating sort | sort ตาม rating × reviewCount | core |
| F1.7 | Sponsored ranking | Sponsored > Basic boost > Free | core |
| F1.8 | Compare shops | เลือก 2-4 ร้าน → ตาราง services · price · rating | core |
| F1.9 | Map overview | หน้า home: map + pin · click → preview | core |
| F1.10 | Shop detail page | contact · service · map embed · reactions | core |
| F1.11 | Save / bookmark | เก็บร้านโปรดใน device | later |
| F1.12 | Smart recommendations | แนะนำร้านใกล้เคียง / category เดียวกัน | later |
Shop
ลงทะเบียน · จัดการโปรไฟล์ · ขาย boost — หัวใจฝั่ง supply
| ID | Function | Description | Scope |
|---|---|---|---|
| F2.1 | 4-step registration | Owner → shop → services → confirm · save draft | core |
| F2.2 | Address + map picker | กรอกที่อยู่ · pin map · ดึง lat/lng | core |
| F2.3 | Service list builder | เพิ่ม service + price · suggest preset | core |
| F2.4 | Hours editor | วัน + เวลา · open/close ต่างกันได้ | core |
| F2.5 | Status state machine | draft → pending → active → suspended | core |
| F2.6 | Verified badge display | badge บน card + detail | core |
| F2.7 | Shop owner portal | login · ดู stat · แก้ข้อมูล · อัปโหลดรูป | later |
| F2.8 | Boost subscription ฿299 | payment · plan = "basic" · ranking boost | later |
| F2.9 | Shop analytics | view · click-to-call · click-to-line · 7/30 วัน | later |
| F2.10 | Photo gallery | 5-10 รูป · ใช้บน detail page | later |
Community
ทำให้คนคุยกัน — north star อยู่ที่นี่
| ID | Function | Description | Scope |
|---|---|---|---|
| F3.1 | Anonymous-ish login | เลือก role + emoji + nickname · session 30 วัน | core |
| F3.2 | Role selector | 6 role: หมา/แมว/อื่น/ร้าน/แพทย์/เยี่ยมชม | core |
| F3.3 | Reaction bar (6 types) | 🐾 ❤️ 🎉 😻 👏 🔥 · count รวม | core |
| F3.4 | Floating emoji animation | กด → emoji ลอย (micro-delight) | core |
| F3.5 | Comment posting | textarea · max 500 ตัวอักษร · ป้องกัน double-submit | core |
| F3.6 | Comment listing | ใหม่สุดบน · pagination หรือ infinite scroll | core |
| F3.7 | Real-time updates | comment ใหม่แสดงทันทีโดยไม่ refresh | core |
| F3.8 | Delete own comment | ลบของตัวเองได้ (จาก session token) | core |
| F3.9 | Like comment | กด ♡ บน comment คนอื่น | core |
| F3.10 | Engagement aggregation | นับ reaction · comment · DAU ราย entity | core |
| F3.11 | Spam / rate limit | comment ≤ N ครั้ง/นาที ต่อ device | core |
| F3.12 | Report comment | flag → admin moderation queue | later |
| F3.13 | Reply / nested thread | ตอบ comment · 1 level deep | later |
| F3.14 | Mention / tag | tag คนอื่นด้วย @emoji-nickname | later |
Adoption
จับคู่คนกับน้อง — Stage 1 curated · Stage 2 marketplace
| ID | Function | Description | Scope |
|---|---|---|---|
| F4.1 | Adoption listings (curated) | admin/rescue partner เพิ่มเอง · grid + filter | core |
| F4.2 | Pet profile page | รูป · age · type · health · ประวัติ | core |
| F4.3 | Adoption application form | ชื่อ · phone · LINE · เหตุผล · ค่าใช้จ่าย | core |
| F4.4 | Application admin queue | admin เห็น application ใหม่ · assign | core |
| F4.5 | Status pipeline | new → contacted → interview → match → handover → follow-up | core |
| F4.6 | Success story tag | status = adopted → แสดงในส่วน success | core |
| F4.7 | Verified-poster onboarding | Rescue ขอเป็น verified poster → admin verify | later |
| F4.8 | Self-post pet | verified poster โพสน้องเอง · เผยแพร่ทันที | later |
| F4.9 | Report listing | community report → admin queue | later |
| F4.10 | Moderation queue + SLA | admin review · suspend ทันทีถ้าหนัก | later |
| F4.11 | Adopter follow-up reminder | system reminder admin contact หลังรับน้อง | later |
Content / Blog
SEO engine + trust building
| ID | Function | Description | Scope |
|---|---|---|---|
| F5.1 | Article listing | list · featured · filter · pagination | core |
| F5.2 | Article detail (slug) | SEO URL · meta + OG · readable typography | core |
| F5.3 | Category & tag | ดูแลสัตว์ · สุขภาพ · นิทาน · ของน่ารู้ · ที่เที่ยว | core |
| F5.4 | Hot / featured flag | admin mark hot → ขึ้นบน home | core |
| F5.5 | Related articles | สุ่ม 3-4 ใต้บทความ | core |
| F5.6 | Read time estimate | "อ่าน 5 นาที" จาก word count | core |
| F5.7 | Founders / team pages | หน้าทีมงาน · bio · social | core |
| F5.8 | Sitemap.xml generation | อัปเดตอัตโนมัติเมื่อ publish | core |
| F5.9 | RSS feed | /feed.xml · subscriber follow | later |
| F5.10 | Guest author | เชิญ vet/expert เขียน · byline | later |
Sponsor / Partnership
revenue engine · ทำให้ partner เห็น value ก่อนจ่าย
| ID | Function | Description | Scope |
|---|---|---|---|
| F6.1 | Package display page | Bronze/Silver/Gold + feature matrix | core |
| F6.2 | Inquiry form | brand · contact · package · message | core |
| F6.3 | Lead → admin CRM | queue · status: new/contacted/won/lost | core |
| F6.4 | Banner placement | admin upload + ระยะเวลา · inject ใน slot | core |
| F6.5 | Sponsored shop boost | sponsor ที่ผูกร้าน → boost ranking ร้านนั้น | core |
| F6.6 | Impression / click tracking | นับการแสดง + click → ใช้ใน report | core |
| F6.7 | Monthly report generation | admin export → ส่ง sponsor | later |
| F6.8 | Self-serve sponsor portal | sponsor login เอง · ดู stat สด | maybe |
| F6.9 | Renewal notification | ก่อน expire · ส่งหา sponsor + sales | later |
Admin / CMS
ทำให้ทีม Furever operate ได้รวดเร็ว
| ID | Function | Description | Scope |
|---|---|---|---|
| F7.1 | Login | core: shared password · later: per-user role | core |
| F7.2 | Dashboard overview | นับ entity · pending queue · recent activity | core |
| F7.3 | Shops CRUD + approve | list · create · edit · status · approve | core |
| F7.4 | Blog CRUD + publish | rich editor · cover · category · publish/draft | core |
| F7.5 | Adoption CRUD | เพิ่ม/แก้น้อง · ผูก application | core |
| F7.6 | Sponsor leads CRUD | list · status · attach creative | core |
| F7.7 | Comment moderation | list · search · delete · ban device | core |
| F7.8 | Founders / team CRUD | member + sort order | core |
| F7.9 | Image upload | upload + crop · resize หลาย size | core |
| F7.10 | Activity log | log ทุก action admin | core |
| F7.11 | Export / report | CSV ของ shop · application · lead | later |
| F7.12 | Workflow rules | auto-assign · reminder · SLA | later |
| F7.13 | Multi-admin role | super-admin · editor · moderator · sales | later |
Cross-cutting / Infrastructure
รากของทุก module
| ID | Function | Description | Scope |
|---|---|---|---|
| F8.1 | Image asset hosting | storage + CDN · WebP/AVIF · responsive | core |
| F8.2 | Event tracking | page_view · search · click_contact · react · comment | core |
| F8.3 | SEO foundation | meta · OG · Twitter · canonical · LocalBusiness schema | core |
| F8.4 | robots.txt + sitemap.xml | generate dynamic · block /admin | core |
| F8.5 | PDPA consent banner | ครั้งแรก · ขอ analytics opt-in | core |
| F8.6 | Privacy + Terms pages | data retention · cookie | core |
| F8.7 | Email notification (admin) | shop register · adoption apply · sponsor inquire | core |
| F8.8 | LINE OA integration | deep link · pre-filled message | core |
| F8.9 | Error / 404 page | branded · CTA กลับ home | core |
| F8.10 | Error tracking | capture error → alert | core |
| F8.11 | Backup & retention | daily backup · retention policy | core |
| F8.12 | Performance budget | LCP < 2.5s · CLS < 0.1 · lazy load | core |
| F8.13 | Mobile PWA | add to home · offline shell | later |
| F8.14 | i18n preparation | เก็บ string ใน dict | later |
Function count summary
| Module | Core | Later | Maybe | Total |
|---|---|---|---|---|
| M1 Discovery | 10 | 2 | 0 | 12 |
| M2 Shop | 6 | 4 | 0 | 10 |
| M3 Community | 11 | 3 | 0 | 14 |
| M4 Adoption | 6 | 5 | 0 | 11 |
| M5 Content | 8 | 2 | 0 | 10 |
| M6 Sponsor | 6 | 2 | 1 | 9 |
| M7 Admin | 10 | 3 | 0 | 13 |
| M8 Cross-cutting | 12 | 2 | 0 | 14 |
| รวม | 69 | 23 | 1 | 93 |
แนวทาง · สิ่งที่ควรทำต่อ
ทำตามลำดับนี้ · ไม่มี deadline · เริ่มข้อถัดไปเมื่อข้อก่อนหน้าเสร็จ
-
Independent · เริ่มได้เลย
ปิด Open Questions 7 ข้อ
moderation policy · verified criteria · partner attribution · KPI ตัวเลข north star — ตัดสินใจร่วมกันในทีม
-
หลังข้อ 1
Seed supply — คุยกับ 10-20 ร้านแรกใน CM
คลินิกชั้นนำ (Chotana, CMU, Changnoi) + ร้านอาบน้ำดัง + โรงแรมที่มีรีวิว · ขอลงร้านฟรี + verified
-
Independent · ทำคู่ขนานข้อ 2 ได้
สร้าง landing page + เปิดให้ pre-register
เก็บ email/LINE ของคนสนใจ → list สำหรับวันเปิดจริง
-
Independent · ทำคู่ขนาน
เริ่ม content engine — 4 บทความแรก
"คลินิกเชียงใหม่เปิด 24 ชม." · "โรคหน้าฝนของหมาใน CM" · "ที่เที่ยวสัตว์เลี้ยง" · "เลือกหมอยังไง"
-
หลังข้อ 4 (เริ่มมี content)
Partnership กับ rescue 1-2 ที่
Lanna Dog Welfare · Santisook · The Ark — trust transfer ตั้งแต่ launch
-
หลังข้อ 2, 3, 4, 5 พร้อม
Soft launch — เปิด Furever ให้ public
เริ่มจาก 50 ร้าน + 4 บทความ + 5 น้องรับเลี้ยง · invite จาก pre-register list ก่อน
-
หลัง soft launch มี traffic
Recruit 3 sponsor pilot — ฟรี + วัดผล
พิสูจน์ว่า model ทำงาน · เก็บ click/impression · ใช้ทำ case study ตอนขาย Bronze/Silver/Gold จริง
-
หลัง pilot run ระยะ
วัด engagement KPI · ตัดสินใจ stage ถัดไป
ถ้า engagement north-star ถึง baseline → ลงทุนต่อ · ถ้าไม่ถึง → pivot scope หรือ approach
💰 Cost estimate · Tiered
ประมาณการต้นทุน 3 stage — ตั้งแต่ dev → soft launch → production · ตัวเลขเป็น ช่วง low-high (THB/เดือน) · ระบุเป็น หมวดบริการ ไม่ใช่ vendor
Stage 1 · Dev — ทีม build, ยังไม่มี user จริง
Assumption: 0 user · 0 partner · internal testing · DB/storage ~ < 1GB · traffic ทีม
| หมวดบริการ | คำอธิบาย | ฿/เดือน · low | ฿/เดือน · high |
|---|---|---|---|
| Hosting / compute | เว็บแอป + admin (tier เริ่มต้น) | ฿0 | ฿700 |
| Database / data storage | เก็บ shop, comment, content (free/hobby tier) | ฿0 | ฿500 |
| Object storage | เก็บรูป (ไม่กี่ MB) | ฿0 | ฿100 |
| Domain + SSL | ค่าโดเมน หาร 12 เดือน | ฿40 | ฿100 |
| Email service | ส่ง admin noti (free tier) | ฿0 | ฿0 |
| Analytics tool | Google Analytics (free) | ฿0 | ฿0 |
| Error tracking | monitoring (free tier) | ฿0 | ฿0 |
| Design assets / fonts | icon/illustration license | ฿0 | ฿300 |
| 💵 รวม / เดือน | ฿40 | ฿1,700 | |
One-time: ค่าโดเมน 1 ปี ~฿400-1,200 · ค่า design asset/illustration เริ่มต้น ~฿0-3,000
Stage 2 · Soft Launch — มี user จริง
Assumption: ~50 ร้าน · ~500-1,000 visit/วัน · 1-3 sponsor pilot · DB ~1-5GB · image storage ~ 1-3GB · email ~100-500/เดือน
| หมวดบริการ | คำอธิบาย | ฿/เดือน · low | ฿/เดือน · high |
|---|---|---|---|
| Hosting / compute | upgrade เพื่อรอง traffic + admin dashboard | ฿700 | ฿2,500 |
| Database / data storage | tier กลาง · backup รายวัน | ฿500 | ฿2,000 |
| Object storage + CDN | รูปร้าน · บทความ · ผ่าน CDN | ฿300 | ฿1,200 |
| Domain + SSL | ต่อสัญญา | ฿40 | ฿100 |
| Email service | transactional email · 100-500/เดือน | ฿0 | ฿400 |
| Analytics tool | Google Analytics (free) | ฿0 | ฿0 |
| Error tracking | capture error · alert | ฿0 | ฿500 |
| Content production | blog 4 บทความ/เดือน · นอกทีม | ฿0 | ฿4,000 |
| Community management | ดูแล comment + moderate | ฿0 | ฿3,000 |
| 💵 รวม / เดือน | ฿1,540 | ฿13,700 | |
One-time: ค่าสมัคร Google Business Profile · LINE OA premium (ถ้าจำเป็น)
Stage 3 · Production — มี revenue + traffic จริง
Assumption: 200+ ร้าน · ~5,000+ visit/วัน · 5+ sponsor active · DB ~10-30GB · image storage ~10-50GB · email ~2,000-5,000/เดือน
| หมวดบริการ | คำอธิบาย | ฿/เดือน · low | ฿/เดือน · high |
|---|---|---|---|
| Hosting / compute | tier production · autoscale | ฿2,500 | ฿8,000 |
| Database / data storage | tier เพื่อ scale · backup + replica | ฿2,000 | ฿7,000 |
| Object storage + CDN | bandwidth สูง · global CDN | ฿1,200 | ฿5,000 |
| Domain + SSL | multi-domain | ฿100 | ฿300 |
| Email service | transactional + marketing · dedicated IP | ฿400 | ฿2,500 |
| Analytics tool | Google Analytics + GA4 reporting (free) + dashboard tool | ฿0 | ฿1,500 |
| Error tracking + APM | error + performance monitoring | ฿500 | ฿3,000 |
| Content production | blog 4-8 บทความ/เดือน · contributor + editor | ฿4,000 | ฿15,000 |
| Community management | moderator + community lead | ฿3,000 | ฿12,000 |
| Marketing / ads | SEO + paid (FB/Google) | ฿2,000 | ฿15,000 |
| Partner management | sales + sponsor relationship | ฿0 | ฿10,000 |
| 💵 รวม / เดือน | ฿15,700 | ฿79,300 | |
หมายเหตุ: ฝั่ง revenue stage นี้คาดว่า ~3-5 sponsor active × ฿3,500-7,000/เดือน + Boost subscriptions ~10-30 ร้าน × ฿299 = revenue ~ ฿13,000-50,000/เดือน · ขั้นนี้ "ต้องตัวเลข sponsor ต่อให้ได้" ไม่งั้น cost ชนะ revenue
Cost progression at a glance
graph LR
A["Stage 1 · Dev<br/>฿40 - 1,700"]:::dev --> B["Stage 2 · Soft Launch<br/>฿1,540 - 13,700"]:::launch
B --> C["Stage 3 · Production<br/>฿15,700 - 79,300"]:::prod
classDef dev fill:#e6f0fa,stroke:#4099e4
classDef launch fill:#fff4cf,stroke:#a07900
classDef prod fill:#e8f3e0,stroke:#3d6a2a
📊 Analytics tracking · Google Analytics
รายการ event ที่ต้องส่งเข้า GA เพื่อวัด north star (engagement) + 3 funnel หลัก (Discovery · Adoption · Sponsor)
Page tracking
Track ทุก path · page_view auto event ของ GA · ตั้ง page_title + page_location ให้ตรงกับ entity (เช่น "Shop · คลินิกนิมมาน · /shop/12")
Event tracking
| Event name | Trigger | Parameters | Purpose / KPI |
|---|---|---|---|
search_submit | user กด search หรือ enter ใน /search | query, filters{category, pet_type, open_now}, result_count | Discovery funnel step 1 |
filter_apply | user ใช้ filter | filter_type, filter_value | วัดว่า filter ไหนใช้บ่อย |
shop_view | เปิด /shop/:id | shop_id, category, plan_tier, position_in_search | Discovery funnel step 2 · ใช้คำนวณ CTR sponsored |
compare_open | กดเปิด compare | shop_ids[], count | เปรียบเทียบใช้บ่อยไหม |
contact_click | กดปุ่ม LINE/โทร/Map ใน shop detail | shop_id, contact_type{line,phone,map} | Discovery funnel step 3 (conversion) · sponsor attribution |
react | กด reaction | entity_type{shop,article,pet}, entity_id, reaction_type | Engagement north star |
comment_post | ส่ง comment สำเร็จ | entity_type, entity_id, role, comment_length | Engagement north star · role distribution |
comment_like | กด ♡ comment | comment_id | Engagement secondary |
community_login | session สร้างใหม่ (เลือก emoji + nickname) | role | วัด "Member activation" |
adoption_view | เปิด pet detail | pet_id, pet_type | Adoption funnel step 1 |
adoption_apply_start | กดปุ่ม "สมัครรับเลี้ยง" | pet_id | Adoption funnel step 2 |
adoption_apply_submit | ส่งใบสมัครสำเร็จ | pet_id, pet_type | Adoption funnel step 3 (conversion) |
shop_register_start | เปิด /register | — | Shop funnel step 1 |
shop_register_step | ไปแต่ละ step | step_number{1,2,3,4} | Drop-off detection |
shop_register_complete | ส่งสำเร็จ | shop_category, pet_types[] | Shop funnel step final (conversion) |
sponsor_package_view | เปิด /sponsor | — | Sponsor funnel step 1 |
sponsor_inquiry_submit | ส่ง form สำเร็จ | package{bronze,silver,gold} | Sponsor funnel step 2 (conversion) |
banner_impression | banner แสดง (in viewport) | sponsor_id, placement | Sponsor delivery metric |
banner_click | กด banner | sponsor_id, placement | Sponsor CTR |
article_view | เปิด /blog/:slug | article_id, category | Content engagement |
article_read_complete | scroll ถึง 90% หรือเวลา > read_time × 0.7 | article_id | Content quality signal |
map_pin_click | คลิก pin ใน map | shop_id | Discovery alternative path |
Conversion goals (5 หลัก)
- Contact a shop — event
contact_click(Discovery → Action) - Engage with community — event
comment_postORreact(Engagement north star) - Apply for adoption — event
adoption_apply_submit - Register a shop — event
shop_register_complete - Sponsor inquiry — event
sponsor_inquiry_submit(Revenue intent)
Custom dimensions
| Dimension | Type | Values | ใช้ทำอะไร |
|---|---|---|---|
user_role | user-scoped | visitor / member / shop / adopter / sponsor / admin | segment audience ตาม role |
community_role_tag | user-scoped | เจ้าของหมา/แมว/อื่น/ร้าน/แพทย์/เยี่ยมชม | วิเคราะห์ engagement ตาม role |
shop_category | event-scoped | clinic/boarding/grooming/... | หา category ที่ traffic สูง |
plan_tier | event-scoped | free / basic / sponsored | วัด ROI ของ Boost |
sponsor_id | event-scoped | id ของ sponsor | ใช้สร้าง report ส่ง sponsor |
session_origin | session-scoped | organic / direct / social / referral / paid | ดู channel ที่ดีที่สุด |
3 Funnels
Discovery funnel
flowchart LR
A["page_view<br/>(homepage)"] --> B["search_submit"]
B --> C["shop_view"]
C --> D["contact_click"]
D --> E["✅ Conversion"]
style A fill:#abcee9
style D fill:#ffc750
style E fill:#eeec89
Adoption funnel
flowchart LR
A["adopt list<br/>page_view"] --> B["adoption_view<br/>(pet detail)"]
B --> C["adoption_apply_start"]
C --> D["adoption_apply_submit"]
D --> E["✅ Conversion"]
style A fill:#abcee9
style C fill:#ffc750
style E fill:#eeec89
Sponsor funnel
flowchart LR
A["sponsor_package_view"] --> B["scroll > 50%"]
B --> C["sponsor_inquiry_submit"]
C --> D["✅ Lead"]
D -.->|sales| E["Closed deal"]
style A fill:#abcee9
style C fill:#ffc750
style D fill:#eeec89
style E fill:#9d8477,color:#fff
Engagement north-star — วัดยังไง
เป้าหมาย "ชุมชนคึกคัก" แปลเป็น composite metric:
- Active commenters / week = unique session ที่มี
comment_post - Reactions per active user = total
reactevents / unique session - Return rate = % session ที่กลับมาใน window กำหนด (เช่น 7 หรือ 30 วัน) ต่อ total unique sessions
- Comment per shop / article = engagement density
ทั้งสี่ตัวรวมกัน = "engagement health" — ถ้าทั้ง 4 ขึ้นพร้อมกัน = ทำถูกทาง · ถ้า 1-2 ตัวขึ้นแต่ตัวอื่นนิ่ง = ต้อง investigate
Open questions (เกี่ยวกับ function/spec)
- Moderation policy ของ adoption marketplace — auto-publish + report vs admin queue?
- Verified shop criteria — ใบประกอบกิจการ / on-site visit / Google rating?
- GA tracking — ใช้ GA4 standard หรือมี product analytics เสริม (เช่น session replay)?
- Cost optimization — vendor lock-in ของ hosting/storage · ควรเลือกที่ migrate ง่ายไหม?
- Email transactional volume — Stage 2 ประมาณ 100-500/เดือนคุ้มไหม ใช้บริการ free tier?