Toboggan is a modern, multi-platform slides system built in Rust. Write your slides in Markdown, run a lightweight WebSocket server, and control the presentation from any device.
Background and origin
Toboggan comes from the presentation Access Granted 01.4 - FCSC Challenge Retex : Shrimp-Say ! by BitK (in French). BitK and Kevin Mizu worked together on FCSC challenges. In the Q&A, around 00:16:10, BitK explains that his slides were homemade and names the tool “Toboggan”.
The original project was created by Igor Laborie (@ilaborie). I forked and significantly modified it: more accessible, easier to build, simpler to distribute, and practical for personal use. The current Toboggan repository is at https://github.com/Tednoob17/toboggan.
Why Toboggan
I prefer presentations that are easy to write and flexible to present. Toboggan was created to meet that need: write your slides in Markdown (or TOML if you prefer structured files), start a small WebSocket server, and control the presentation from any device. Rust provides a fast, portable foundation, which is useful when you want a reliable tool without heavy dependencies.
What it is (brief)
Toboggan offers:
- Authoring: write slides in Markdown or TOML.
- Distribution: a lightweight server that serves slides and accepts clients over WebSocket.
- Presentation: connect from a browser, terminal client, desktop app, or mobile device and control progress in real time.
The flow is intentionally simple: author -> server -> client(s). That makes remote demos, collaborative workshops and multi-screen setups easy.
Design principles
- Minimalism: few layers between the source file and final rendering.
- Interoperability: many client types (web, TUI, native) can communicate via WebSocket.
- Performance and safety: Rust enables a compact, fast binary with a reduced attack surface.
Quick example
- Create
slides.md:
| |
- Start the Toboggan server:
| |
- Open a browser at
http://localhost:PORTor connect a third-party client.
Navigation commands (next/previous) are sent over WebSocket, so you can control the presentation from a second device.
Getting started (practical)
These steps show a typical workflow to build and run Toboggan. Check the repository README for exact commands if versions differ.
Prerequisites:
- Install Rust toolchain (rustup + cargo).
- Have
gitinstalled to clone the repository.
Clone the repository:
| |
- Build (development):
| |
This runs the project without producing a release binary and is convenient for development. For a release build:
| |
Note: some builds can be resource-intensive; building in release mode may use a lot of RAM on some machines.
Start the server before connecting clients:
- The server prints the listening address and port to stdout. Open that URL in a browser or connect a client.
- Example:
http://localhost:PORT(replace PORT with the value printed by the server).
Presenting and controls:
- Connect a browser or other client to the server URL.
- Navigation commands (next/previous) are typically available via UI buttons or keyboard (arrow keys, space). Remote clients send commands over WebSocket to control slide state.
Troubleshooting and tips:
- If build fails due to resource limits, try
cargo runfor dev mode or use a machine with more RAM. - Look in the project’s README for flags (port, host, TLS) or examples of slide formats (Markdown/TOML).
- If build fails due to resource limits, try
Use cases
- Conferences and meetups: synchronize multiple screens or show a presenter view separately.
- Classes and workshops: let participants connect to follow or control the presentation.
- Quick demos: share a local link for code reviews or technical walkthroughs.
Limitations and roadmap
Toboggan favors lightweight workflows over WYSIWYG editing. If you need a heavy GUI editor (Keynote/PowerPoint style), this is not the goal. For developers and users who prefer source-first workflows (Markdown/TOML), Toboggan fits well.
Possible improvements: additional CSS themes, live annotation support, streaming integrations, or a native desktop app for easier distribution.
Contributing
Toboggan is open to contributions. If you’d like to help:
- Open issues and pull requests on the GitHub repository.
- Create slide templates or alternative client implementations (web, TUI, desktop, mobile).
- Improve documentation or test coverage.
- Help optimize build times and reduce memory usage.
The project is actively maintained and welcomes collaborators.
Learn more
For complete documentation, detailed guides, and advanced configuration, visit the Toboggan documentation.







































































































































































