Build a Mobile-Friendly Everything Static WebUI with DeepSeek: A Lightweight HTML Parsing Approach

[AI Readability Summary] This static WebUI adds a mobile-friendly experience to the Everything HTTP service without replacing the original service. It uses JavaScript to parse the default HTML pages and enables search, directory browsing, and path navigation. It solves the poor mobile usability of the native page. Keywords: Everything, static WebUI, DeepSeek.

This is a lightweight mobile adaptation solution built by parsing Everything HTTP pages on the frontend

Parameter Description
Language HTML, CSS, JavaScript
Protocol / Interface HTTP, local HTML fetching and DOM parsing
Stars Not open sourced; no public stars available
Core Dependencies Native browser Fetch API and DOMParser; no third-party libraries
Deployment Mount a single HTML file in the Everything HTTP service directory
Primary Capabilities Search, directory browsing, drive switching, breadcrumb navigation

The core of the original implementation is straightforward: the author repeatedly iterated on a SearchUI.html file through free DeepSeek chat sessions and eventually produced an Everything web interface suitable for mobile access.

The value of this approach is not that it has a high technical barrier. Its real value is that it addresses a real pain point: Everything’s built-in WebUI was designed for desktop use, so tapping, browsing, going back, and viewing long horizontal paths all feel awkward on a phone.

The architecture is essentially a frontend proxy-style parser

It does not modify the Everything server, nor does it call an official dedicated API. Instead, it fetches the default page with fetch('/') or fetch('/?search=...'), then uses DOMParser to convert the HTML table into structured data.

That means the deployment cost is extremely low. As long as a browser can access the Everything HTTP service, a single static page can provide the enhancement. This is especially well suited to home NAS and LAN-based file search scenarios.

async function fetchDriveList() {
  const response = await fetch(`/`); // Fetch the default Everything homepage
  const html = await response.text(); // Read the returned HTML text
  const parser = new DOMParser();
  const doc = parser.parseFromString(html, 'text/html'); // Parse into a DOM
  const table = doc.querySelector('table'); // Extract the table that contains the drive list
  return table;
}

This code turns Everything’s default homepage into a DOM data source that the frontend can process programmatically.

Search and directory browsing are unified into two HTML parsing workflows

Search mode fetches a results page through /?search=keyword, then extracts the name, size, timestamp, and link from the table.

Directory browsing mode builds a parent:"path" query to list files and subdirectories under a specific directory. This bypasses the interaction limitations of the original page while preserving Everything’s indexing capabilities and response speed.

Rendering search results depends on correctly distinguishing files from folders

Because Everything returns an HTML table rather than standard JSON, the frontend must infer the item type on its own. The implementation in the article uses a practical strategy: if the size field is empty, treat the item as a folder.

function parseSearchResults(html) {
  const results = [];
  const doc = new DOMParser().parseFromString(html, 'text/html');
  const rows = doc.querySelectorAll('table tr');

  for (let i = 1; i < rows.length; i++) {
    const cells = rows[i].querySelectorAll('td');
    const link = cells[0]?.querySelector('a');
    const name = link?.textContent || '';
    const size = cells[2]?.textContent?.trim() || ''; // Usually a folder when empty
    const isFolder = size === ''; // Infer folder type from the table field
    results.push({ name, isFolder });
  }
  return results;
}

This code extracts the smallest useful data structure from the search results table.

Image AI Visual Insight: This image shows that Everything’s native HTTP page relies on tables and a desktop-oriented layout. The search results area favors wide screens, touch targets are relatively small on mobile, and both directory hierarchy and path information are inconvenient for touch-based browsing. The interaction model is clearly better suited to a mouse than to a phone.

Image AI Visual Insight: This image shows that the customized mobile interface uses a card-based result list, a top search bar, drive-switching buttons, and larger touch targets. It is clearly optimized for one-handed phone use. Directories and files are separated through icons, color, and metadata hierarchy, which makes the UI more readable and easier to tap.

Mobile optimization is mainly about interaction density rather than new features

What this WebUI gets right is that it reorganizes existing capabilities into a phone-friendly form instead of inventing extra complexity.

For example, it uses a larger input box, rounded buttons better suited to touch, a card-style list, horizontally scrollable breadcrumbs, separate presentations for directories and files, and 300 ms debounced search. These are all classic mobile usability enhancements.

Breadcrumbs and drive highlighting make directory navigation feel closer to a native file manager

In file search scenarios, users often want more than just finding a file. They also want to continue exploring the directory where it lives. To support that, the code introduces current path state, parent directory back navigation, and highlighted drive-root status.

function updateDriveHighlights() {
  const currentRoot = getDriveRootFromPath(currentPath); // Extract the current drive letter
  document.querySelectorAll('.drive-btn').forEach(btn => {
    const drive = btn.dataset.drive;
    btn.classList.toggle('active', drive === currentRoot); // Highlight the current drive
  });
}

This code automatically syncs the selected state of the drive buttons based on the current browsing path.

This implementation also exposes the limits of pure conversational code generation

The most valuable part of the original article is not that AI wrote the code. It is the author’s summary of the real collaboration pattern: every change required regenerating the full HTML file, once certain logic was broken it was hard to restore through natural-language prompts alone, AI could not reliably guarantee correctness, and manual edits were often faster for critical sections.

That shows AI works well for scaffolding, style restructuring, repetitive code generation, and interaction drafting in small to medium frontend pages. But you should not treat it as an unquestionable source of engineering truth.

A safer human-AI workflow is AI generation plus human control over critical state

A practical recommendation is to keep versioned files and explicitly request minimal edits based on a specific version during each iteration. That reduces the risk of full-page rewrites causing functional regressions.

<input type="text" id="searchInput" class="search-box" placeholder="Search by file name..." autofocus>
<div class="drive-bar" id="driveBar"></div>
<div id="breadcrumb" class="breadcrumb" style="display:none;"></div>
<div id="resultsContainer"></div>

This code defines the core interaction skeleton of the mobile file search interface.

This single-file WebUI is a strong fit for home NAS and LAN file search

If your Everything instance already exposes an HTTP service and you want mobile access to your local file index, this static enhancement approach is close to the lowest-cost path: no backend, no framework, and no build step.

Its limitations are also clear. It depends heavily on Everything’s page structure. If the default HTML table changes, the parsing logic may break. That makes it more of a cost-effective customization layer than a long-term stable integration layer built on a formal API.

FAQ

Q1: Does this approach require modifying Everything itself?

A: No. It only places a static HTML page under the Everything HTTP service and enhances the experience by fetching the default page and parsing its HTML.

Q2: Why not rebuild it with a full frontend framework?

A: Because the goal is low-cost deployment. A single HTML file has no build process and no dependencies, which makes it ideal for home NAS, temporary utility pages, and LAN access scenarios.

Q3: What is DeepSeek best suited for in this kind of task?

A: It is best suited for quickly generating page structure, styles, and conventional interaction logic. But for path handling, state restoration, and edge cases, human review is still recommended, along with versioned files that you can roll back.

Key takeaways

This article reconstructs a practical workflow for using DeepSeek conversationally to generate a static Everything WebUI. By relying on pure frontend HTML, CSS, and JavaScript to parse Everything HTTP pages, the solution delivers mobile-friendly search, directory browsing, breadcrumb navigation, and drive switching. It also distills the core implementation ideas, key code patterns, and human-AI collaboration lessons from the project.