An Honest Ask: Dfinity, Please Address These Roadblocks with Real Transparency
Hello team,
This post is not meant to provoke, troll, or spread FUD. I’m posting this in the spirit of Dfinity’s own stated values: transparency, decentralization, and technical clarity.
I’m a mid-level developer who wants to build on the Internet Computer. I respect the ambition behind Motoko and the IC — but I’m also seeing a growing pattern: real developers hit a wall, go quiet, or silently migrate off-chain.
This post outlines real, observable roadblocks that make it extremely difficult to ship full-scale, user-facing apps on the Internet Computer. I’m asking Dfinity staff to factually and publicly address these concerns — not with vague roadmaps or marketing boilerplate, but with real technical clarity.
The Ask:
Please directly acknowledge and explain how Dfinity is addressing (or not addressing) the following core development and deployment roadblocks.
Each of these has been encountered repeatedly by active developers — publicly and behind the scenes.
Core Technical Constraints
Canister Size Limitations
- Wasm binaries are capped at 4MB for installation, with expanded limits (~300MB) using chunking — still insufficient for large applications.
- Devs must manually split logic across multiple canisters and orchestrate them.
Why this matters: Complex apps (AI, rich media, composable logic) don’t fit into one canister. Splitting logic requires non-trivial architecture and increases dev overhead.
No Native HTTP Fetch in Motoko
- Motoko canisters cannot make HTTP requests directly.
- The System API’s http_request pattern is limited to certified subnets, rate-limited, non-deterministic, and paid.
Why this matters: Fetching external data or APIs (auth, third-party services, analytics) is essential for modern apps. Without this, you’re locked in a silo.
Stable Memory is Manual
- No automatic persistence between upgrades.
- Developers must explicitly handle preupgrade/postupgrade logic and define Stable types.
- Schema evolution and rollback are left entirely to the dev.
Why this matters: Entry-level devs lose their data. Experienced devs waste hours writing backup logic for every schema update.
Update Calls Are Slow
- Query calls are fast but read-only.
- All writes go through update calls, which take 2–5+ seconds.
Why this matters: Users perceive lag. It breaks the illusion of responsiveness. Real-time UX is nearly impossible without heavy caching or optimistic UI hacks.
No Built-In Query Layer
- No SQL or key-value index support.
- All filters, sorts, and pagination must be implemented manually in memory.
Why this matters: Apps with searchable content, feeds, or filters become bottlenecked by poor performance and bloated logic.
Cycles Management
- When a canister runs out of cycles, it silently dies.
- No native metering or alerting system exists.
- Developers must build their own gas management tools.
Why this matters: Abandoned apps might just be out of fuel. It’s a bad look and a worse experience.
UX Breakdown
- Wallet UX is poor (Internet Identity lacks mobile support and has confusing recovery flows).
- No persistent sessions (refresh = logout for many dapps).
- Canister-hosted frontends are slow , with no CDN acceleration.
- No local caching or state management beyond what you custom-build.
Real-World Examples
- OpenChat: Strong vision, but suffers from sluggish updates, file upload limits, and slow iteration.
- DSCVR: Began fully on-chain, now uses off-chain infra for indexing and media storage.
- IC Drive, InfinitySwap: Shifted to hybrid models for performance and usability reasons.
- Taggr, ICNS: Stalled due to architectural and performance issues.
This is not speculative. These are observable shifts in architecture, repo commits, and user feedback.
What We’d Like from Dfinity
- A clear, public status report addressing these challenges.
- Direct answers: Are these limitations intentional, temporary, or avoidable?
- Transparent tradeoffs: What is realistic on-chain and what isn’t?
- Honest timelines or reasons why they aren’t on the roadmap.
Final Note
This is not a complaint thread. I’m not here to argue with power-users, mods, or defenders. I’m here to ask for clarity from the team building the protocol.
Please don’t derail this post with:
- “You’re not using it right.”
- “You just don’t understand the paradigm.”
- “Go build it yourself.”
These are the real limitations hundreds of developers have encountered. They are holding the platform back from delivering on its promise.
If the Internet Computer is truly revolutionary, then let’s be honest about where it is right now — and how it’s evolving.
Thank you for reading,
LostInTheCanister
AKA Clippy von Bytebite