
TL;DR
A developer reverse-engineered a travel itinerary app, discovered it was just reformatting JSON, and replaced the entire 43MB app with a 0.05MB webpage.
We have all been there. You want to check a flight status, view a restaurant menu, or access your travel itinerary - and instead of a simple webpage, you are forced to download a 50MB app that exists solely to deliver what is essentially formatted text. Dan Q decided to do something about it.
His blog post "Your 'app' could have been a webpage" documents the reverse-engineering of Travelbound, a travel itinerary app that his family was required to use for a trip. What he found confirmed every suspicion developers have about these unnecessary apps - and the Hacker News discussion that followed became a masterclass in why this pattern persists.
Dan intercepted the app's network traffic using an Android emulator with root access, HTTP Toolkit for proxy interception, and Magisk to bypass certificate pinning. The findings were damning.
The app weighs 43MB on initial download, expanding to 124MB after downloading content. What does all that storage buy you? The app simply reformats JSON data already delivered via HTTPS. Dan's replacement webpage requires 0.05MB (plus an optional 35MB for images if you want them cached locally).
The app's functionality breaks down to: text, images, and PDF links. All of which the web handles natively.
The real kicker: "they're clearly producing HTML code anyway" - the server was already generating the content in a web-friendly format. The app was a wrapper around capabilities the browser provides for free.
Dan built a webpage replacement that offers everything the app did, plus several things apps cannot match:
The discussion thread hit 254 comments and surfaced years of frustration with app-ification.
The notification theory won consensus. Multiple commenters agreed that push notifications are the killer feature apps provide that companies want. One commenter put it bluntly: "My strong belief is they want apps because they can spam you with notifications to get your attention."
Another expanded: "An app installed on a mobile device is a much more effective attentional hook than a website that must be either bookmarked or remembered. It is like inviting a door-to-door salesman to your house, of course they will take the invitation."
The tracking angle got darker. Beyond notifications, apps enable fingerprinting and data collection that browsers actively block. One commenter noted: "They want apps so they could fingerprint your device, spy on you and get a lot more information than a web app."
Someone linked to Loupe, a tool that shows what iOS apps can see - "Seconds since last reformat, number of times clipboard was used since last reformat, seconds since last reboot, dozens of other apps installed on the phone... On Apple devices, so much is leaked to developers."
PWA disappointment ran deep. The thread became a collective mourning for what Progressive Web Apps were supposed to deliver. "We were supposed to be in the age of PWAs. That was the initial plan for iOS before the app store and 30% cuts on subscription apps."
Some defended the technical capabilities of PWAs - web push notifications work, service workers enable offline functionality, you can add to home screen. But adoption never happened, and commenters debated whether that failure was technical limitations, discoverability problems, or deliberate sabotage by platform owners who profit from app stores.
Platform lock-in accusations flew. iOS took particular heat for restricting browser engines. "Apple doesn't let other browsers use their own engine on iOS (unless you are located in the EU)" - meaning every browser on iPhone is Safari with a different interface. The comparison to Microsoft's antitrust troubles was raised: "How did Microsoft face antitrust lawsuits for merely bundling IE when Apple is literally forcing their browser?"
Real-world examples piled up. Commenters shared war stories:
Some defended native apps. Not everyone agreed with the anti-app sentiment. Native apps offer real benefits: no page load delays, better performance, access to platform APIs, integration with system features. One commenter noted that users genuinely prefer apps for frequently used services, even when a website would suffice.
Newsletter
Get the weekly deep dive
Tutorials on Claude Code, AI agents, and dev tools, delivered free every week.
From the archive
Jul 14, 2026 • 5 min read
Jul 14, 2026 • 5 min read
Jul 14, 2026 • 9 min read
Jul 14, 2026 • 6 min read
Dan's adventure exposed a truth about modern software distribution: many apps exist not because they provide superior functionality, but because they serve business interests that websites cannot.
Apps offer:
Websites offer:
The gap between what apps should require (complex offline functionality, hardware access, gaming, real-time communication) and what actually gets shipped as apps (menus, itineraries, loyalty programs, content viewers) reveals the incentive misalignment.
If you are building something that is fundamentally text and images - consider whether you actually need an app. PWAs have come a long way. Responsive web design handles mobile gracefully. Service workers enable offline access. Web push notifications exist.
If you are a user frustrated with app requirements - Dan's approach works. Network traffic inspection, API reverse-engineering, and building a custom frontend is within reach for technical users. Many apps are thinner wrappers than you might expect.
And if you are evaluating whether to force users into an app - be honest about whether the technical requirements justify it, or whether you are just chasing engagement metrics at the cost of user experience.
Read next
Astro 7.0 rewrites core components in Rust, upgrades to Vite 8 with Rolldown, and delivers significant performance gains for content-heavy sites.
6 min readA simple image rotation button reveals deep truths about responsive interface design - why buttons must always respond predictably, even during animations.
6 min readA workflow for archiving, signing, notarizing, and distributing Apple apps entirely from the command line - with AI coding assistants doing the heavy lifting.
6 min readTechnical content at the intersection of AI and development. Building with AI agents, Claude Code, and modern dev tools - then showing you exactly how it works.
Gives AI agents access to 250+ external tools (GitHub, Slack, Gmail, databases) with managed OAuth. Handles the auth and...
View ToolCentralized manager for MCP servers. Connect once to localhost:37373 and access all your servers through a single endpoi...
View ToolAI-powered context manager that remembers your code, snippets, links, and project context across IDEs, browsers, and ter...
View ToolA hosted infinite canvas your headless AI agents drive over MCP. Any MCP-speaking agent - Claude Code, Codex, Cursor, or...
View ToolInstall the dd CLI and scaffold your first AI-powered app in under a minute.
Getting StartedWhat MCP servers are, how they work, and how to build your own in 5 minutes.
AI AgentsInstall Ollama and LM Studio, pull your first model, and run AI locally for coding, chat, and automation - with zero cloud dependency.
Getting Started
Astro 7.0 rewrites core components in Rust, upgrades to Vite 8 with Rolldown, and delivers significant performance gains...

OpenAI's Codex CLI now encrypts inter-agent communications for Sol and Terra models, leaving users unable to inspect wha...

Git 2.54 and 2.55 introduced git history with fixup, reword, and split subcommands that make interactive rebasing feel l...

A Hacker News discussion blows up over LLM vocabulary quirks, with developers sharing hooks, filters, and coping mechani...

New benchmarks on 5,559 test utterances show Apple's iOS 26 SpeechAnalyzer API achieving 2.12% word error rate - beating...

A workflow for archiving, signing, notarizing, and distributing Apple apps entirely from the command line - with AI codi...

New tutorials, open-source projects, and deep dives on coding agents - delivered weekly.