webdev-readme-mobile-backend

Implements backend features for Expo mobile apps using Manus OAuth, Drizzle, and tRPC.

1|Updated Jul 17, 2026
One-click install
npx skills add https://github.com/waiyanphyo999/telegram-bot-deploy --skill webdev-readme-mobile-backend-waiyanphyo999
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: webdev-readme-mobile-backend
Source: https://github.com/waiyanphyo999/telegram-bot-deploy/tree/main/skills/webdev-readme-mobile-backend
Command: npx skills add https://github.com/waiyanphyo999/telegram-bot-deploy --skill webdev-readme-mobile-backend-waiyanphyo999

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Building server-side features for a Manus Expo mobile app requires coordinating authentication, database schemas, type-safe APIs, and platform integrations, and this guide provides the exact patterns and file locations to do it correctly. ## Core Features & Use Cases - Authentication & User Management: Implement Manus OAuth login flows for native (Bearer token via expo-secure-store) and web (HTTP-only cookie), with protected tRPC procedures and a useAuth hook. - Database & tRPC API: Define Drizzle MySQL schemas, generate migrations, write query helpers in server/db.ts, and expose type-safe routes with Zod input validation. - Built-in Integrations: Call preconfigured helpers for LLM chat (invokeLLM), Whisper voice transcription, image generation, S3 file storage, and owner notifications without manual credential setup. - Use Case: You are adding a synced to-do list to your Expo app. Follow the guide to create an items table in drizzle/schema.ts, add CRUD helpers in server/db.ts, expose protected tRPC routes, and call them from React Native components with automatic auth handling. ## Quick Start Read this guide before adding any backend, database, or authentication feature to your Manus Expo mobile app project.

Frequently Asked Questions about webdev-readme-mobile-backend

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a database table to a Manus Expo mobile app?

Define the table in drizzle/schema.ts using drizzle-orm mysql-core helpers, then run pnpm drizzle-kit generate to produce migration SQL and apply it via webdev_execute_sql. Add query helpers in server/db.ts and export inferred types from the schema.

How do I create protected tRPC routes with user authentication?

Use protectedProcedure from server/_core/trpc instead of publicProcedure, which guarantees ctx.user exists. On the frontend, catch UNAUTHORIZED errors from failed calls and redirect the user to the login screen.

Does Manus OAuth work differently on native and web?

Yes. On iOS and Android, login uses WebBrowser.openAuthSessionAsync and stores a Bearer token in expo-secure-store. On web, authentication uses an HTTP-only cookie that the browser sends automatically with requests.

Can I use LLM or storage features without requiring user login?

Yes. Backend capabilities like invokeLLM, generateImage, transcribeAudio, and storagePut work with publicProcedure routes. User authentication is only mandatory when you need to identify users or sync user-specific data.

Why does json_schema structured output fail with nested objects?

The json_schema response format works reliably only for flat structures. For nested arrays or objects, use response_format with type json_object instead and describe the desired shape in the system prompt, then parse the returned content with JSON.parse.

How do I upload files to S3 storage from the backend?

Call storagePut from server/storage.ts with a relative key, file buffer, and content type. It returns a key and a /manus-storage/ URL served via signed redirect, which you save in your database for later retrieval.