Web Development on Android Using UserLAnd and CX File Explorer (Node.js)

October 15, 2025
4 min read
Web Development on Android Using UserLAnd and CX File Explorer (Node.js)

If you don't have a laptop or a PC, learning web development or starting freelancing is no longer impossible! UserLAnd is an excellent solution for creating a complete development environment using an Android phone. This app allows you to run a Linux operating system without needing to root your phone.

Linux is the foundation of web servers and hosting. By setting up Linux on your phone, you get the opportunity to develop any type of website—such as Node.js, PHP, Laravel, WordPress, e-commerce, or a blog. Follow this guide to transform your Android phone into a coding laptop.


🧩 Step 1: Install UserLAnd App and Initial Setup

  1. Open the Google Play Store.
  2. Search for 👉 UserLAnd, install, and open the app.
  3. The first time you open it, choose a Linux Distribution. Select Ubuntu as it is easy and popular for developers.
  4. After selecting Ubuntu, choose the Minimal and Terminal options.

    Uploaded image
    Uploaded image
    Uploaded image

🧩 Step 2: Ubuntu System Setup and Download

The necessary files will begin downloading. This step may take some time depending on your internet speed (approximately 1 GB of data). Once the download and setup are complete, a Terminal window will open automatically.

🧩 Step 3: Update System Packages

It's crucial to update all packages in the Linux system first. Type the following command in the terminal:

sudo apt update && sudo apt upgrade -y

Note: This process may take some time to complete for the first time. Please be patient.

🧩 Step 4: Install Node.js

Node.js is very popular for web development. Install Node.js and npm (Node Package Manager) by running the following commands sequentially:

First, install curl:

sudo apt update && sudo apt install -y curl

Then, install Node.js (LTS Version):

curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs

Verify Installation:

Check the Node and npm versions to see if the installation was successful:

node -v
npm -v 

If a version number is displayed (e.g., v22.10.0), then Node.js has been set up successfully. ✅

🧩 Step 5: File Editing with CX File Explorer (FTP Setup)

To easily edit files, we will use CX File Explorer and an FTP server.

  1. Install CX File Explorer from the Google Play Store.
  2. Install the FTP Server in the UserLAnd Terminal:
    sudo apt update
    sudo apt install python3 python3-pip -y
    sudo pip3 install pyftpdlib
    
  3. Start the FTP Server (Port 2141 is used):
    nohup python3 -m pyftpdlib -p 2141 -w -d /home/userland&
    
  4. Set up the FTP Connection in CX File Explorer:
    • Open CX File Explorer.
    • Go to the Network option.
    • In the Remote section, tap "New connection/location" (or the + icon).
    • Connection Type: FTP
    • Host: localhost
    • Port: 2141
    • Anonymous: Check the box.
    • Tap OK or Connect.

Now you can easily manage the files in your Linux environment.

🧩 Step 6: Create and Run a Node.js Web App

Now we will create a simple Express.js server:

1. Create Project Folder (myapp 📂) and Setup:

mkdir myapp
cd myapp
npm init -y
npm install express

2. Create and Edit File:

Create a file named server.js inside the myapp folder using CX File Explorer. Copy, paste, and save the code below:

const express = require('express');
const app = express();
const PORT = 3000;

// Root route
app.get('/', (req, res) => {
  res.send(`
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Node.js Mobile Demo</title>
      <style>
        body {
          margin: 0;
          font-family: Arial, sans-serif;
          display: flex;
          justify-content: center;
          align-items: center;
          height: 100vh;
          text-align: center;
          background-color: #f0f0f0;
          color: #333;
        }
        a {
          color: #007bff;
          text-decoration: none;
        }
        a:hover {
          text-decoration: underline;
        }
      </style>
    </head>
    <body>
      <div>
        <h1>✨ Hello! ✨</h1>
        <p>I am running <strong>Node.js</strong> from mobile 😎</p>
        <p>Server is running on <a href="http://localhost:${PORT}">http://localhost:${PORT}</a></p>
      </div>
    </body>
    </html>
  `);
});

// Start server
app.listen(PORT, () => {
  console.log(`🚀 Server running at http://localhost:${PORT}`);
});

3. Start the server in UserLAnd:

node server.js 

4. View in Browser:

After seeing the message in the terminal, go to your phone's browser: http://localhost:3000. Your web server is running! 🎉


📱➡️💻 Your phone is now your coding laptop!

With this setup, you can develop not only Node.js but also PHP, Next.js, and Python applications. Develop anywhere, anytime! 😎🔥

Recent Articles

Deploy Your Hugo + Tailwind v4 Website to Cloudflare Pages Automatically with GitHub Actions

November 1, 2025

This guide shows how to automatically deploy a Hugo + Tailwind CSS site to Cloudflare Pages every time you push code to your GitHub repository. It’s written for beginners — no advanced DevOps …

How I Optimized Core Web Vitals to 100% on My HugoGo Website

October 31, 2025

Optimizing a HugoGo website to achieve a perfect 100% Core Web Vitals score is completely possible without major code rewrites. Hugo’s static site generation already gives a strong base — with server …

Best Nodejs Package Hicons for HugoGo: Effortless SVG Icon Management

October 31, 2025

SVG icons are a staple of modern web design, but managing them in static site generators like Hugo can be tedious. If you’ve ever found yourself manually copying SVG code, worrying about layout bloat, …

Why Your First Website Should Be Built with HugoGo Instead of WordPress

October 30, 2025

When it comes to building your first website, most people immediately think of WordPress. It’s popular, widely supported, and has tons of plugins but is it really the best choice for every …

Why Hugo static website generation Can Be Better Than Next.js in 2026

October 30, 2025

When it comes to building fast, secure, and scalable websites, Hugo and Next.js both stand tall. But depending on your goals — especially if you’re running a blog, portfolio, agency site, or a …

My Personal Blog/Portfolio Hosting Choice — VPS vs Serverless Explained

October 7, 2025

Short answer: For personal portfolio or static blog, I recommend Hugo + Cloudflare Pages. It’s fast, free, and no server headache. VPS gives more control, but needs setup and maintenance. Serverless …