PPTGOSlide editor in the browser
PPTGo · slide editor in the browser
A whole deck,
finished in the browser
Drag to place, double-click to retype, style it on the right. What comes out is a real editable PPTX, not a stack of pictures.
Drag it, resize it, spin itx 80 · y 146 · w 584 · h 184 · 0°
Sign in and your decks go to your own object storage; stay signed out and they stay in this browser, exportable any time.
Spec
What it does- Elements
- Text · images · shapes (28 preset geometries, plus freehand) · lines · tables · charts (column / bar / line / area / scatter / pie / doughnut / radar) · video · audio · LaTeX formulas
- Canvas
- Drag · resize from eight handles (rotation-compensated) · rotate · marquee and multi-select · scale and rotate a whole group · snapping guides · grid · rulers · zoom · context menu · lock · double-click to edit text and table cells in place
- Editing
- Per-type property panel · layer panel · z-order · align · distribute · format painter · hyperlinks · inline rich text (bold / colour / highlight / lists / links / super- and subscript) · image crop and tint · shape gradients · shadows · merge and split table cells · chart data editing · undo and redo · system clipboard · find and replace
- Slides
- Thumbnails · drag to reorder · duplicate and delete · sections · backgrounds (solid / gradient / image, applicable to all) · speaker notes · transitions · per-element entrance and exit animations
- Presenting
- Step through animations · transitions · pen / highlighter / eraser / laser / blackboard · timer · autoplay · thumbnail navigation · notes · fullscreen · audio and video playback
- In and out
- Import PPTX and JSON; export PPTX (real editable text boxes, not screenshots), PNG, PDF and JSON
- Mobile
- The canvas runs on pointer events throughout, so mouse, touch and stylus share one code path · pinch to zoom · side panels fold into drawers · swipe to change slides while presenting
- Accounts
- Sign in with Google and every autosave writes to object storage; the dashboard lists decks by last edit with a thumbnail of the first slide · it also works signed out, with decks kept in this browser
Self-hosting
One compose file brings up three services: Next.js, PostgreSQL, and rustfs for S3-compatible storage. A deck's contents are a JSON object in storage; its title, slide count and last-edited time are a row in Postgres. Both live on your machine, with no third-party service involved.
Editor interactions modelled on PPTistterminal
$ cp .env.example .env
$ docker compose up -d
# web → :3000
# postgres → :5433
# rustfs → :9100 / :9101