🔐 Restricted Access
This content is private. Enter the password to continue.
Building Health Trend Seller Without a Laptop
Peter M. Mutiti · Lead Engineer, Health Trend Seller Project
Alright, let me be straight with you. Building and executing the Health Trend Seller application without a laptop is going to be challenging. Not impossible – I've been doing it myself – but you need to know exactly what you're up against.
I've been in your shoes. No laptop, but a vision that won't wait. So I figured out the workarounds. Here is a breakdown of the restrictions and limitations I faced, and what I actually did about them.
"A vision that won't wait doesn't need a laptop – it needs a workaround." – Peter M. Mutiti
📋 Table of Contents
🚫 The Hard Truth – What I Couldn't Do Without a Laptop
1. I Couldn't Run the Application Locally
| Limitation | What I Experienced |
|---|---|
| No local server | I couldn't run npm run dev or start any of the services (Express, Next.js, PostgreSQL, Temporal, Redis, IPFS) because my phone doesn't have the processing power, memory, or storage. |
| No database | PostgreSQL won't run on a phone. I couldn't store or query data locally. |
| No WebSocket | Real-time chimes require a WebSocket server running locally. Not possible on my phone. |
2. I Couldn't Write or Edit Code Effectively
| Limitation | What I Experienced |
|---|---|
| No code editor | VS Code, WebStorm, or any real IDE requires a desktop. Phone code editors are frustrating for a project this size. |
| No file system | I couldn't create, rename, move, or delete files in bulk the way I needed to. |
| No git operations | Cloning, committing, branching, merging, and pushing to GitHub were extremely difficult on my phone. |
3. I Couldn't Test or Debug
| Limitation | What I Experienced |
|---|---|
| No browser dev tools | I couldn't inspect network requests, debug JavaScript, check console logs, or test API responses. |
| No terminal | I couldn't run git, npm, npx, prisma, or any CLI commands. |
| No error tracing | When something broke (and it did), I couldn't see stack traces or error messages to figure out what went wrong. |
4. I Couldn't Deploy Easily
| Limitation | What I Experienced |
|---|---|
| No build process | I couldn't run npm run build to generate production-ready files. |
| No deployment CLI | Vercel, Netlify, and AWS deployment require a terminal or a desktop. |
| No environment variables | I couldn't set .env files locally or upload them securely. |
😅 What I COULD Do Without a Laptop
| What I Did | How I Did It |
|---|---|
| Planned the architecture | I documented the project structure, API design, database schema, and workflows. I used this chat to help me. |
| Wrote code snippets | I generated components, routes, and functions to copy-paste later. |
| Created mockups | I designed the UI, planned the user flow, and built static HTML previews (like the dashboard you've already seen). |
| Studied the codebase | I read and understood the project code through our conversations. |
| Designed the database schema | I planned tables, relationships, and migrations. |
| Researched | I read documentation, watched tutorials, and learned the technologies (Next.js, Prisma, Temporal, etc.). |
| Hosted code on GitHub | I created the repository. Someone else pushed the code for me. |
🚀 GitHub Codespaces – My Go-To Solution
GitHub Codespaces gives me a full VS Code editor in my browser, a terminal, and the ability to run commands – all without a laptop. It's like having a laptop in the cloud. I use this every day.
What I liked: I could run npm run dev, install dependencies, and test code.
What I didn't like: Limited free tier (60 hours/month). Performance could be slow. Still needed a browser and internet.
🛠️ My Complete Guide to Setting Up GitHub Codespaces
1. Went to github.com
2. Clicked Sign Up
3. Entered my email, created a password, and chose a username
4. Verified my email
2. Clicked the + icon → New repository
3. Named it:
health-trend-seller4. Set it to Private
5. Checked Add a README file
6. Clicked Create repository
2. Clicked the Codespaces tab
3. Clicked Create codespace on main
Wait 1-3 minutes while the cloud environment builds. I used this time to grab coffee. ☕
Once Codespaces opened, I had a VS Code editor in my browser with a terminal at the bottom.
I ran these commands in order:
# Check Node.js is installed
node --version
# Showed v18 or higher – good
# Check npm
npm --version
# Showed v9 or higher – good
# Initialize the project
npm init -y
# Install dependencies
npm install express next react react-dom
# Install development dependencies
npm install -D nodemon prisma
# Create the folder structure
mkdir -p src/app src/api/controllers src/api/models src/api/routes src/services src/config
# Create a basic .gitignore file
echo "node_modules/
.env
.next/
dist/
*.log" > .gitignore
I created src/server.js:
// src/server.js
const express = require('express');
const app = express();
const PORT = process.env.PORT || 3000;
app.use(express.json());
app.get('/health', (req, res) => {
res.json({ status: 'healthy', timestamp: new Date().toISOString() });
});
app.get('/api/v1/trends', (req, res) => {
res.json({
status: 'success',
data: {
trends: [
{ name: 'Wellness Products', score: 87, change: '+23%', confidence: 0.92 },
{ name: 'Mental Health', score: 72, change: '+18%', confidence: 0.85 },
{ name: 'Fitness Tech', score: 34, change: '-5%', confidence: 0.45 },
{ name: 'Supplements', score: 91, change: '+31%', confidence: 0.96 }
]
}
});
});
app.listen(PORT, '0.0.0.0', () => {
console.log(`✅ Server running on http://localhost:${PORT}`);
});
I opened package.json and added this under "scripts":
"scripts": {
"start": "node src/server.js",
"dev": "nodemon src/server.js"
}
In the Codespaces terminal:
npm run dev
I waited for: "✅ Server running on http://localhost:3000"
1. In Codespaces, a popup appeared saying "Your application running on port 3000 is available."
2. I clicked Open in Browser
3. My API was running!
I tested these URLs:
http://localhost:3000/health→ Shows health statushttp://localhost:3000/api/v1/trends→ Shows trend data
git add .
git commit -m "Initial setup: Express server with API endpoints"
git push origin main
⚠️ Codespaces Limitations – What I Learned
| Limitation | What I Did |
|---|---|
| Free tier limit | 60 hours per month on the free plan. I use wisely and stop the server when not working. |
| No persistent storage | Codespaces spins down after inactivity. I always commit and push changes. |
| No PostgreSQL | I couldn't run PostgreSQL locally. I use a cloud database (Supabase, Neon). |
| No Redis | I use a cloud Redis service (Upstash). |
| No Temporal | I use Temporal Cloud or skip for now. |
If Codespaces is full, I use GitPod (free 50 hours/month):
- Go to gitpod.io
- Log in with GitHub
- Enter my repository URL
- Click Continue
It works the same way as Codespaces.
📱 Termux on Android – My Fallback Guide
I use this when I can't access Codespaces. It's powerful but limited. Codespaces is always my first choice.
2. Searched for Termux
3. Installed the official app (by Fredrik Fornwall)
4. Opened Termux
Important: If Termux is not available in your country, download the APK from f-droid.org
pkg update && pkg upgrade -y
Typed y when prompted.
pkg install nodejs -y
Checked installation:
node --version
# Showed v18 or higher – good
npm --version
# Showed v9 or higher – good
pkg install git -y
pkg install nano -y # Text editor
pkg install curl -y # For API testing
pkg install wget -y # For downloading files
git clone https://github.com/YOUR_USERNAME/health-trend-seller.git
cd health-trend-seller
Replace YOUR_USERNAME with your actual GitHub username.
npm install
This took 2-5 minutes depending on internet speed.
mkdir -p src/app src/api/controllers src/api/models src/api/routes src/services src/config
nano src/server.js
I copied and pasted the server code from the Codespaces section above.
Save: Press Ctrl + X, then Y, then Enter.
nano package.json
Added this under "scripts":
"scripts": {
"start": "node src/server.js",
"dev": "nodemon src/server.js"
}
Save: Press Ctrl + X, then Y, then Enter.
npm install -g nodemon
npm run dev
I saw:
✅ Server running on http://localhost:3000
I opened another Termux session (swiped from the left edge and tapped "New session") and used curl:
curl http://localhost:3000/health
I saw:
{"status":"healthy","timestamp":"2026-..."}
⚠️ Termux Limitations – What I Discovered
| Limitation | What I Did |
|---|---|
| No port forwarding | I couldn't access my app from another device. Only localhost. |
| No browser dev tools | I couldn't inspect network requests or debug JavaScript easily. |
| Limited storage | My phone storage was limited. I kept node_modules clean. |
| Battery drain | Running servers drained my battery quickly. I used a charger. |
| No PostgreSQL | I used a cloud database (Supabase, Neon). |
| No Redis | I used a cloud Redis service (Upstash). |
| No Temporal | I used Temporal Cloud or skipped. |
| No Docker | Termux does not support Docker. |
✅ What I CAN Do on Termux
| Activity | Status |
|---|---|
| Write code | ✅ Yes |
| Run Express server | ✅ Yes |
| Test API endpoints | ✅ Yes |
| Push to GitHub | ✅ Yes |
| Install npm packages | ✅ Yes |
| Edit files | ✅ Yes (with nano or vim) |
| Run basic Node.js apps | ✅ Yes |
🔑 My Pro Tips for Termux
termux-setup-storage
Android will ask you automatically. Tap Allow.
pkg install vim -y
npm run dev &
ps aux
kill <PID>
📋 Summary: Which Option Should You Use?
🚀 My Next Steps
- I use Codespaces as my primary platform
- I've set up the project using the guides above
- I'm building the API by adding more endpoints
- I'll connect a database (Supabase or Neon are free)
- I'll deploy to Vercel (I can do this from Codespaces)
Peter M. Mutiti – Lead Engineer, Health Trend Seller Project
Building the future of health trend intelligence, one line of code at a time.