Backend (Next.js + Supabase + Cloudinary + Litterbox). Mobile client is built in Kotlin Jetpack Compose under /android.
Tất cả endpoint trả về JSON dạng { ok, data } hoặc { ok: false, error }. Auth dùng header Authorization: Bearer <jwt>.
GET /api/channelsPOST /api/channelsGET /api/channels/:id/postsPOST /api/channels/:id/postsPOST /api/channels/:id/subscribeGET /api/official-accountsPOST /api/official-accountsGET /api/official-accounts/:id/articlesPOST /api/official-accounts/:id/articlesGET /api/postsPOST /api/postsGET /api/posts/:idPOST /api/posts/:id/commentsPOST /api/posts/:id/reactionsGET /api/dm/conversationsPOST /api/dm/conversationsGET /api/dm/conversations/:id/messagesPOST /api/dm/conversations/:id/messagesGET /api/storiesPOST /api/storiesPOST /api/stories/:id/viewPOST /api/stories/:id/reactionsGET /api/emoji/packsPOST /api/emoji/packsPOST /api/emoji/packs/:id/itemsGET /api/hot-searchGET /api/hot-search/:scopeGET /api/search?q=&type=users|channels|posts|topics|miniprogramsPOST /api/auth/registerPOST /api/auth/loginPOST /api/auth/2fa/setupPOST /api/auth/2fa/verifyGET /api/meGET /api/me/privacyPATCH /api/me/privacyPOST /api/reportsPOST /api/blocksPOST /api/upload/cloudinary-signPOST /api/upload/litterboxGET /api/mini-programsPOST /api/mini-programsGET /api/super-topicsPOST /api/super-topicsGET /api/super-topics/:id/postsGET /api/groupsPOST /api/groupsbackend/sql/schema.sql và chạy./android, set API_BASE_URL trỏ tới domain này.