Zooming UIs in 2026: Prezi, impress.js, and why I built something different

Published: (April 6, 2026 at 02:53 PM EDT)
2 min read
Source: Hacker News

Source: Hacker News

Prezi

  • Pioneered the zooming canvas for presentations and remains the market leader in that space.
  • Recently added AI‑powered generation and text‑editing tools.
  • Polished product with real traction.

Limitations

  • Closed platform, not a library—you can’t embed its zoom engine in your own app.
  • Pricing starts at $15/month for meaningful features.
  • Exporting to PowerPoint flattens all zoom effects into static slides.
  • Users often report motion‑sickness from the zooming and panning transitions.
  • Uses zoom as a storytelling device between pre‑arranged frames, not as a navigation model.

impress.js

  • Brought Prezi‑like zooming to the open web as a presentation framework built on CSS3 transforms and transitions.
  • Architecture is step‑based: you position “steps” in 3D space and the camera moves between them.

Limitations

  • Great for presentations but not suited for apps where users navigate by zooming into content.
  • No concept of dynamically mounting views, managing zoom depth, or handling navigation state.
  • Essentially a slide‑deck engine with a zoom trick.

Zumly

Full disclosure: I’m the sole developer.

  • Offers an alternative to traditional page navigation using zooming.
  • You mark an element as zoomable, point it to a view, and Zumly handles the transition and inserts the new view.
  • Started in 2020 after the author’s work on Zircle UI (a Vue zooming library).
  • Framework‑agnostic and focused solely on the zoom part.
  • Views are dynamically mounted and unmounted during zoom transitions.
    • In impress.js, all steps exist in the DOM simultaneously.
    • In Zumly, the target view is injected and scaled into place when you zoom into a trigger element, which is closer to SPA routing than to slide‑deck behavior.
  • The landing page is built with Zumly itself, so you can experience it before touching any code.

Resources

  • Landing page (built with Zumly):
  • GitHub repository:
  • Discussion on Hacker News:
0 views
Back to Blog

Related posts

Read more »

It's all the same, PT 2...

Background I was trying to create a consistent API across “social” sites and noticed that the same patterns keep re‑appearing in both PHP and JavaScript implem...

CipherKit

Introduction I built 77 free developer tools that run 100 % in your browser—no tracking, no backend. If you’re like me, you’ve probably hesitated before pastin...

TypeScript Type Guards

When you're building a payment system, “close enough” isn’t good enough A single undefined value or a mismatched object property can be the difference between...