webdev-readme-mobile-backend

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

Updated Sep 16, 2026
One-click install
npx skills add https://github.com/Military-Veteran-Team-LPT-Realty/mvt-manus-public-skills --skill webdev-readme-mobile-backend-military-veteran-team-lpt-realty
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: webdev-readme-mobile-backend
Source: https://github.com/Military-Veteran-Team-LPT-Realty/mvt-manus-public-skills/tree/main/skills/webdev-readme-mobile-backend
Command: npx skills add https://github.com/Military-Veteran-Team-LPT-Realty/mvt-manus-public-skills --skill webdev-readme-mobile-backend-military-veteran-team-lpt-realty

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Building server-side features for a Manus Expo mobile app requires coordinating authentication, database schema, typed APIs, and platform integrations; this Skill provides the authoritative guide so those features are implemented correctly the first time. ## 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 UNAUTHORIZED error handling. - Database & tRPC API: Define Drizzle MySQL tables, 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 (with structured JSON output), Whisper voice transcription, image generation, S3 file storage, and owner notifications without managing credentials. - Use Case: You are adding a synced to-do list to an Expo app. Follow this guide to create an items table in drizzle/schema.ts, add CRUD procedures in server/routers.ts, and consume them from React Native screens via trpc hooks. ## Quick Start Read this guide before adding any backend, database, or authentication feature to a Manus Expo mobile-app project, then follow its file-structure and code patterns to implement the feature.

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 authentication to an Expo app with Manus OAuth?

Manus OAuth is built into the template: native platforms use Bearer tokens stored in expo-secure-store, while web uses HTTP-only cookies. Use the useAuth hook to access user state and protect server routes with protectedProcedure in tRPC.

How do I create database tables and run migrations with Drizzle?

Define tables in drizzle/schema.ts using drizzle-orm mysql-core helpers, then run pnpm drizzle-kit generate to produce migration SQL. Apply the generated SQL via webdev_execute_sql to keep the schema and database in sync.

How do I add a tRPC API route with input validation?

Add procedures in server/routers.ts using publicProcedure or protectedProcedure, attach a Zod schema via .input() for type-safe validation, and call query helpers from server/db.ts. Consume routes on the frontend with trpc hooks like useQuery and useMutation.

Does the backend require user login for LLM or storage features?

No, backend features like LLM calls, image generation, and S3 storage work without user authentication by using publicProcedure instead of protectedProcedure. User auth is only mandatory when identifying users or syncing user-specific data.

Why does my protected tRPC call fail when the user is not logged in?

protectedProcedure throws an UNAUTHORIZED error for unauthenticated requests. Handle it on the frontend by catching the error, checking error.data?.code === 'UNAUTHORIZED', and redirecting to the login screen.

Can I get structured JSON output from the invokeLLM helper?

Yes, pass response_format with type json_schema for flat structures or json_object for nested arrays and objects. Parse the result from response.choices[0].message.content with JSON.parse.