unsubbed.co

Strut

For office & productivity, Strut is a self-hosted solution that provides strut: A versatile Impress.js and Bespoke.js presentation editor.

A self-hosted GUI for Impress.js and Bespoke.js presentations, honestly assessed. Limited review data available — noted where it matters.

TL;DR

  • What it is: A web-based GUI for building Impress.js and Bespoke.js presentations — the kind that use CSS3 3D transforms instead of slide decks [merged profile].
  • Who it’s for: Developers who want a visual editor for Impress.js without writing raw HTML, and teams interested in a self-hosted, collaborative presentation tool once the revival lands.
  • Cost savings: Free to self-host under AGPL-3.0. No SaaS alternative pricing to compare against — the tool has no paid tier.
  • Key strength: The only GUI authoring tool for Impress.js and Bespoke.js that actually exists, with offline support and collaborative editing (powered by vlcn.io) in development [README].
  • Key weakness: The project is in an early revival state — originally built in 2011/2013, currently being rewritten. No stable release, no third-party review coverage, no documented deployment path for non-technical users.

What is Strut

Strut is a browser-based editor for creating Impress.js and Bespoke.js presentations. If you’ve seen an Impress.js demo — the kind where slides fly in from different angles in 3D space, rather than fading left to right — you know why a GUI matters. Writing Impress.js by hand means editing raw HTML with X/Y/Z/rotate attributes. Strut wraps that in a visual drag-and-drop interface [README].

The project was originally built in 2011–2013. It went dormant for years. As of this review, the GitHub README describes it as “coming back with a facelift, collaborative editing and offline support, powered by vlcn.io” [README]. The vlcn.io layer is the interesting technical piece — it uses cr-sqlite, a CRDTs-over-SQLite implementation that enables conflict-free collaborative editing and offline-first sync without a traditional backend [README].

The GitHub repository sits at 1,890 stars. The license is AGPL-3.0. The website (strut.io) is sparse and appears to be from the original 2013 era — it mentions features like the slide editor, transition editor, background support, online/offline mode, and export/sharing [merged profile, website scrape].

What Strut is not: it is not a Google Slides clone, not a Notion-style writing tool, and not a presentation SaaS. It is specifically a GUI for the Impress.js/Bespoke.js ecosystem.


Why people choose it

There is almost no third-party review coverage of Strut as a presentation editor. The search results indexed for this review returned unrelated products — an Apache Struts Java framework hosting guide, a Java Struts vs. Spring comparison thread, and an ISO-27001 Reddit thread — none of which are about this tool. This is itself a signal worth noting.

The SourceForge listing [1] exists but contains no actual user reviews of Strut, only promoted alternatives. The Product Hunt entry [2] appears to be a different product sharing the name “Strut” (an AI writing workspace), not the presentation editor.

What we can reason from the data: the 1,890 GitHub stars suggest meaningful developer interest, likely from the original Impress.js era (2012–2014 was the peak of “cool HTML5 presentations” as a category). People who found Strut then and starred it were almost certainly looking for exactly what it offered — a way to build the kind of kinetic, non-linear presentations that Prezi made famous, but without the Prezi price tag and with control over their own markup [README].

The revival effort, with its vlcn.io CRDTs layer, is targeting a more current need: collaborative editing without a cloud backend. That’s a legitimate gap — most self-hosted presentation tools don’t support real-time co-editing.


Features

Based on the README and website content:

Core editing:

  • Visual slide editor with drag-and-drop layout [website]
  • Transition editor for defining how slides move between each other, including pre-made transitions [website]
  • Background support (images, surfaces) [website]
  • Export presentations for sharing or self-hosting [website]

Presentation rendering:

  • Impress.js output — the 3D-transform presentation framework [README]
  • Bespoke.js output — a more modular, simpler alternative to Impress.js [README]
  • Works in Firefox, Chrome, and Safari; basic IE10 support noted in 2013 docs [README]
  • Presentations run in any web browser — no app required for viewers [website]

Infrastructure (in-progress revival):

  • Collaborative editing via vlcn.io/cr-sqlite (CRDTs) [README]
  • Offline support [README]
  • SQLite storage via cr-sqlite [merged profile]
  • REST API [merged profile]

What’s missing from current docs:

  • No documented user management or access control
  • No theming gallery beyond what the original 2013 editor shipped
  • No clear export format documentation (presumably HTML bundles)
  • The revival rewrite “requires bleeding edge builds of cr-sqlite” — this is not a stable production release [README]

Pricing: SaaS vs self-hosted math

Strut has no commercial pricing. It’s AGPL-3.0 open source [merged profile].

Self-hosted:

  • License: $0
  • Hosting: whatever a basic VPS costs ($5–10/mo), or your own infrastructure
  • Currently requires building from source with bleeding-edge dependencies [README]

Comparable SaaS costs if you were paying for alternatives:

  • Slides.com (built on Reveal.js): $7–13/mo
  • Prezi: $7–19/mo
  • Beautiful.ai: $12/mo
  • Pitch: free tier available, $8/mo paid
  • Google Slides: free (within Google Workspace)

The honest answer here is that the SaaS savings math doesn’t apply the way it does for a tool like Zapier vs. Activepieces. Impress.js-style presentations are a niche category, and the most likely alternative is either writing Impress.js HTML by hand (free, painful) or using Google Slides (free, but completely different format). Strut’s value is not primarily about cost — it’s about having a GUI for a presentation format that has almost no GUI tooling.


Deployment reality check

This is where the review has to be blunt: Strut is not currently deployable by non-technical users.

The README’s install instructions are for contributors, not end users [README]:

git clone --recurse-submodules git@github.com:tantaman/strut.git
cd strut
pnpm install
pnpm turbo run build --force
pnpm dev

The note that the rewrite “requires bleeding edge builds of cr-sqlite and refers to packages provided by that project as local dependencies” is a clear signal that this is a development-in-progress snapshot, not a stable release [README].

There is no Docker image, no Helm chart, no one-click deploy. The original strut.io cloud service may still be running (the website is live), but it’s unclear whether it reflects the current codebase or the 2013 original.

Realistic assessment:

  • A developer comfortable with pnpm and Node.js: probably 30–60 minutes to a working local instance
  • A non-technical founder: not deployable today without significant help
  • A DevOps engineer who wants to run this in production: no documented production deployment path exists yet

Pros and Cons

Pros

  • Only GUI for Impress.js/Bespoke.js. There is genuinely no other maintained visual editor for this presentation format [README]. If you want Impress.js without writing HTML, Strut is your only option.
  • AGPL-3.0 license. Free to self-host and modify [merged profile]. No vendor lock-in, no usage tiers.
  • Offline-first architecture coming. The vlcn.io/cr-sqlite layer is a technically sophisticated approach to sync — not just “saves to localStorage” but actual CRDTs [README].
  • Collaborative editing in scope. When the revival ships, it will support real-time co-editing without a cloud backend — unusual in this category [README].
  • Presentations need only a browser to view. No app, no account, no viewer software [website].

Cons

  • Not production-ready. The current codebase requires bleeding-edge dependencies and has no stable release or Docker path [README].
  • Abandoned for over a decade. The original project ran 2011–2013. The gap between then and the current revival is a long one. There’s no track record of sustained maintenance [README].
  • No third-party reviews. Zero coverage in 2024–2026 review sites, blogs, or communities. This isn’t a tool people are recommending to each other right now.
  • Niche output format. Impress.js presentations are impressive in demos and limited in practice. Most stakeholders expect PowerPoint or Google Slides compatibility. You can’t hand an Impress.js HTML file to a client expecting to open it in Keynote.
  • AGPL copyleft implications. AGPL-3.0 requires any modifications to be released under the same license if you run it as a network service. For a company embedding this in a product, that’s a lawyer conversation [merged profile].
  • Website suggests stagnation. The strut.io site appears to be from 2013 — same screenshots, same marketing copy. Whether the cloud version is maintained is unclear [website scrape].
  • Community is small. The Discord channel (#strut.io) is nested in the lfwdev server, not a standalone community [README]. This is a thin support structure for a tool you’d depend on.

Who should use this / who shouldn’t

Use Strut if:

  • You’re a developer building Impress.js presentations and want a visual editor instead of hand-coding HTML transforms.
  • You’re evaluating the vlcn.io/cr-sqlite stack for offline-first collaborative apps and want a real-world usage example.
  • You’re willing to work with an in-progress codebase and contribute to the revival.

Skip it if:

  • You need a stable, documented, production-ready presentation tool today. Data not available to suggest otherwise.
  • Your audience expects to open or edit presentations in PowerPoint, Keynote, or Google Slides format.
  • You’re a non-technical founder looking for a self-hosted alternative to Slides.com or Pitch — the deployment barrier is too high for now.
  • You need community support, tutorials, or professional deployment services.

Alternatives worth considering

  • Reveal.js — the other major HTML5 presentation framework. No GUI, but more actively maintained, huge community, slides hosted on slides.com if you want SaaS. Write your slides in Markdown or HTML.
  • Slides.com — the commercial SaaS built on Reveal.js. $7–13/mo, polished editor, no self-hosting option.
  • Google Slides — free, collaborative by default, universally compatible, cloud-only. The default choice for non-technical teams.
  • LibreOffice Impress — free, fully offline, compatible with PowerPoint format. No web output, but solid for traditional slide decks.
  • Pitch — modern collaborative presentation tool, polished UI, free tier available. Closed-source SaaS but notably better UX than Google Slides.
  • Deckset — Mac-only Markdown presentation editor, $30 one-time. Produces beautiful slides from plain text.

For a non-technical founder wanting to escape Google Slides, none of these is a self-hosted Strut. But Strut isn’t ready for that audience yet. The honest alternative is: wait for the revival to stabilize, or use Reveal.js + Slides.com and pay the $7/mo.


Bottom line

Strut occupies a genuinely unique position — it’s the only visual GUI for Impress.js/Bespoke.js presentations — but that uniqueness doesn’t translate to a recommendation for most teams today. The project is in an early revival with no stable release, no deployment documentation for non-technical users, and no third-party review coverage. The technical foundation being built (vlcn.io CRDTs for collaborative offline-first editing) is interesting and worth watching. But in its current state, Strut is a project for contributors and early adopters who want to help shape what it becomes, not for founders who need something running in production next week.

If Impress.js presentations are your thing and you’re willing to build from source, check the GitHub and join the Discord. Otherwise, wait for the v2 release to stabilize before betting anything on it.


Sources

  1. Strut on SourceForge — product listing, no user reviews present. https://sourceforge.net/software/product/Strut/
  2. Strut on Product Hunt — note: this listing appears to be a different product (AI writing workspace) sharing the name “Strut,” not the presentation editor. https://www.producthunt.com/products/strut-organize-and-write-with-ai

Primary sources:

Features

Integrations & APIs

  • REST API