Back to list

Blog

Tutorial: Building a Full-Stack App Remotely with Tactic Remote

Follow along as we build a complete task management app using Claude Code directed from an iPhone — proving that substantial development work is possible from mobile.

Published Tags: Getting started / fullstack / workflow / hands-on
Blog

Follow product and engineering updates from this channel.

Browse category

This tutorial walks you through building a complete full-stack application — a task management API with a React frontend — entirely through Tactic Remote. You'll direct Claude Code from your iPhone while your Mac does the heavy lifting.

By the end, you'll have a working application and practical experience with the remote development workflow that Tactic Remote enables.

Prerequisites

Before starting, ensure you have:

  • Tactic Remote set up and connected (Getting Started guide)
  • Node.js 18+ installed on your Mac
  • A working project directory (we'll use ~/projects/taskflow)

Part 1: Project Setup (10 minutes)

Open Tactic Remote on your iPhone and start a new session pointed at your project directory.

Prompt 1: Scaffold the Project

Send this prompt to Claude Code:

Create a full-stack task management application called TaskFlow.

Backend:
- Express.js server with TypeScript
- SQLite database with better-sqlite3
- RESTful API: CRUD for tasks and projects
- Input validation with zod

Frontend:
- React 18 with TypeScript
- Vite for bundling
- Tailwind CSS for styling
- React Query for data fetching

Set up the monorepo structure with packages/api and packages/web.
Use a root package.json with workspaces.

Claude Code will work for 3-5 minutes on this task. You'll see it creating directories, writing configuration files, and installing dependencies. This is a great time to put your phone down — Tactic Remote will notify you when the task completes or if approval is needed.

What to watch for: Claude Code will likely request approval for running npm install. Approve this from the notification — it's installing the dependencies for your project.

Prompt 2: Verify the Setup

Once scaffolding completes, verify everything works:

Start both the API server and the frontend dev server.
Run any initial tests. Report the URLs where each is accessible.

You should see Claude Code start the servers and report back with URLs like http://localhost:3001 for the API and http://localhost:5173 for the frontend.

Part 2: Building the API (20 minutes)

Now let's build out the backend API with substantive business logic.

Prompt 3: Database Schema and Models

Create the database schema and models:

Tables:
- projects: id, name, description, color (hex), created_at, updated_at
- tasks: id, project_id (FK), title, description, status (todo/in_progress/done),
  priority (low/medium/high/urgent), due_date, created_at, updated_at

Include:
- Migration system that runs on server start
- Type-safe model layer with full TypeScript types
- Seed data: 2 sample projects with 5 tasks each

This prompt demonstrates a key benefit of AI-assisted development: you describe the what and Claude handles the how. The result will include properly typed models, SQL migrations, and seed data — work that would take a human developer 30-60 minutes.

Prompt 4: API Routes with Validation

Implement the full REST API:

Projects:
- GET /api/projects (list all, with task counts)
- POST /api/projects (create, validate with zod)
- PUT /api/projects/:id (update)
- DELETE /api/projects/:id (cascade delete tasks)

Tasks:
- GET /api/projects/:id/tasks (list by project, support ?status= filter)
- POST /api/projects/:id/tasks (create with validation)
- PUT /api/tasks/:id (update, including status transitions)
- DELETE /api/tasks/:id

Include proper error handling with consistent error response format.
Add request logging middleware.

Approval note: Claude Code may request approval for modifying multiple files. Review the file list in the approval card — it should be limited to files within your project's packages/api/ directory. If you see any file outside this scope, reject and clarify the prompt.

Prompt 5: Test the API

Write integration tests for all API endpoints using vitest and supertest.
Test both success cases and error cases (invalid input, not found, etc.).
Run the tests and report results.

Watch the test results stream through your terminal view. Green passing tests are satisfying even on a phone screen. If any tests fail, Claude Code will typically diagnose and fix the issue automatically.

Part 3: Building the Frontend (25 minutes)

Prompt 6: Core UI Components

Build the frontend UI:

1. Layout with sidebar (project list) and main area (task board)
2. ProjectList component: shows projects with task counts and color indicators
3. TaskBoard component: kanban-style columns for todo/in_progress/done
4. TaskCard component: shows title, priority badge, due date
5. Drag-and-drop between columns to change task status

Use React Query for all data fetching. Show loading skeletons.
Style with Tailwind - clean, modern look with the project color as accent.

This is the most substantial prompt so far. Claude Code will generate several components, set up routing, configure React Query, and implement drag-and-drop. Expect 5-8 minutes of work.

Prompt 7: Forms and Interactions

Add interactive features:

1. Create Project modal: name, description, color picker
2. Create Task modal: title, description, priority selector, due date picker
3. Inline task editing: click to edit title, click priority to cycle through levels
4. Delete confirmation dialogs for projects and tasks
5. Toast notifications for successful operations

All forms should validate input and show helpful error messages.

Prompt 8: Polish and Responsive Design

Polish the UI:

1. Make everything fully responsive (mobile-friendly at 375px+)
2. Add empty states for projects and tasks (with calls-to-action)
3. Add a search/filter bar: filter tasks by title or status
4. Add keyboard shortcuts: N for new task, / for search
5. Add subtle animations for card transitions and modal open/close

Fix any visual issues you notice.

Part 4: Integration and Final Verification (10 minutes)

Prompt 9: End-to-End Verification

Verify the complete application:

1. Start the API server and frontend
2. Create a new project through the UI
3. Add several tasks with different priorities
4. Move tasks between columns
5. Edit and delete tasks
6. Test responsive layout at mobile sizes
7. Report any issues found and fix them

Provide the final URLs to access the application.

Prompt 10: Documentation

Create a README.md in the project root with:

1. Project description and screenshot placeholder
2. Tech stack overview
3. Getting started instructions (install, run, test)
4. API endpoint documentation with example requests/responses
5. Project structure explanation

What You Just Built

In about an hour of directing Claude Code from your phone, you've created:

  • A TypeScript Express API with SQLite persistence
  • A React frontend with drag-and-drop kanban board
  • Full CRUD operations with validation
  • Integration tests
  • Responsive design
  • Project documentation

This is a non-trivial application — hundreds of lines of code across dozens of files. And you built it without sitting at your desk.

Tips for Remote Full-Stack Development

Break work into clear phases. Don't try to describe the entire application in one prompt. Phase-by-phase prompting gives better results because each prompt builds on verified work from the previous phase.

Verify after each phase. Ask Claude Code to run tests or start servers after each major piece of work. Catching issues early prevents cascading problems.

Use approval notifications wisely. The approval flow isn't just a security feature — it's a checkpoint where you can review what Claude Code is doing and course-correct if needed.

Don't watch continuously. The whole point of remote development is freedom. Start a prompt, put your phone down, come back when you get a notification. Trust the system.

Next Steps

Try Tactic Remote

Control your coding Agents from your phone

Connect to Claude Code, Codex, and other Agents on your Mac, Windows, or Linux computer. Check progress and send the next instruction from iPhone or iPad.