Welcome to Mago β Meet. Present. Collaborate.
Mago is a portfolio of software built for how modern teams meet, present, and teach β hardware-agnostic, platform-agnostic, and available globally.
π’ Mago β the unified meeting room platform
Meet β One-touch join for Teams, Zoom, Google Meet, Webex, and 20+ platforms.
Present β Fast, wireless content sharing from any device.
Collaborate β Advanced whiteboarding and annotation tools.
Admin Center β Manage every room from one dashboard.
π₯ Mago Director β turns any BYOD space into a multi-camera experience using the devices already in the room. No PTZ cameras, no technician required.
ποΈ Mago Whiteboard β free, real-time collaborative whiteboarding in any browser. No install, no account.
π« Mago Classroom β no-internet lesson broadcasting for K-12 through Higher Ed, supporting up to 200 devices.
Demos, tutorials, and real-world use cases β every week.
π mago.io
π mago.io/blog
π kb.mago.io
π
mago.io/book-a-demo
Shared 21 hours ago
14 views
Shared 2 weeks ago
17 views
Shared 1 month ago
48 views
Shared 1 month ago
31 views
Shared 2 months ago
58 views
Shared 3 months ago
20 views
Shared 3 months ago
34 views
Shared 3 months ago
218 views
Shared 3 months ago
224 views
Shared 3 months ago
93 views
Shared 3 months ago
46 views
Invidious encountered an error while trying to parse this item. For more information see below:
Title: `Could not parse Mago and Danny Hayasaka (Exception)` Date: `2026-10-02T00:05:17Z` Route: `/channel/UCLttkDP_9ecbGnd7iGGFrWg` Version: `2.20260723.0- @ master` <details> <summary>Backtrace</summary> <p> ``` Could not parse Mago and Danny Hayasaka (Exception) from src/invidious/helpers/utils.cr:119:3 in 'decode_date' from src/invidious/yt_backend/extractors.cr:670:25 in 'parse_internal' from src/invidious/yt_backend/extractors.cr:41:16 in 'parse' from src/invidious/yt_backend/extractors.cr:647:16 in 'process' from src/invidious/yt_backend/extractors.cr:524:17 in 'parse_internal' from src/invidious/yt_backend/extractors.cr:41:16 in 'parse' from src/invidious/yt_backend/extractors.cr:516:16 in 'process' from src/invidious/yt_backend/extractors.cr:1162:17 in 'parse_item' from src/invidious/yt_backend/extractors.cr:1209:14 in 'extract_items' from src/invidious/channels/videos.cr:32:12 in 'get_videos:continuation:sort_by' from src/invidious/channels/videos.cr:12:12 in 'get_videos:sort_by' from src/invidious/channels/videos.cr:38:34 in 'get_60_videos:continuation:sort_by' from src/invidious/routes/channels.cr:56:36 in 'videos' from src/invidious/routes/channels.cr:11:5 in 'home' from src/invidious/routing.cr:117:27 in '->' from lib/kemal/src/kemal/route.cr:12:26 in '->' from src/invidious/helpers/handlers.cr:31:5 in 'process_request' from lib/kemal/src/kemal/route_handler.cr:17:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/websocket_handler.cr:13:14 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/filter_handler.cr:22:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from /usr/share/crystal/src/http/server/handlers/static_file_handler.cr:60:12 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:163:5 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:80:12 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:145:12 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:132:5 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from /usr/share/crystal/src/http/server/handlers/compress_handler.cr:14:5 in 'call' from src/invidious/helpers/handlers.cr:70:5 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/exception_handler.cr:8:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/head_request_handler.cr:57:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/logger.cr:21:35 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/init_handler.cr:15:7 in 'call' from /usr/share/crystal/src/http/server/request_processor.cr:58:11 in 'process' from /usr/share/crystal/src/http/server.cr:521:5 in 'handle_client' from /usr/share/crystal/src/http/server.cr:451:5 in '->' from /usr/share/crystal/src/fiber.cr:168:11 in 'run' from /usr/share/crystal/src/fiber.cr:103:3 in '->' from ??? ``` </p> </details>
Shared 4 months ago
50 views
Invidious encountered an error while trying to parse this item. For more information see below:
Title: `Could not parse Mago and Danny Hayasaka (Exception)` Date: `2026-10-02T00:05:17Z` Route: `/channel/UCLttkDP_9ecbGnd7iGGFrWg` Version: `2.20260723.0- @ master` <details> <summary>Backtrace</summary> <p> ``` Could not parse Mago and Danny Hayasaka (Exception) from src/invidious/helpers/utils.cr:119:3 in 'decode_date' from src/invidious/yt_backend/extractors.cr:670:25 in 'parse_internal' from src/invidious/yt_backend/extractors.cr:41:16 in 'parse' from src/invidious/yt_backend/extractors.cr:647:16 in 'process' from src/invidious/yt_backend/extractors.cr:524:17 in 'parse_internal' from src/invidious/yt_backend/extractors.cr:41:16 in 'parse' from src/invidious/yt_backend/extractors.cr:516:16 in 'process' from src/invidious/yt_backend/extractors.cr:1162:17 in 'parse_item' from src/invidious/yt_backend/extractors.cr:1209:14 in 'extract_items' from src/invidious/channels/videos.cr:32:12 in 'get_videos:continuation:sort_by' from src/invidious/channels/videos.cr:12:12 in 'get_videos:sort_by' from src/invidious/channels/videos.cr:38:34 in 'get_60_videos:continuation:sort_by' from src/invidious/routes/channels.cr:56:36 in 'videos' from src/invidious/routes/channels.cr:11:5 in 'home' from src/invidious/routing.cr:117:27 in '->' from lib/kemal/src/kemal/route.cr:12:26 in '->' from src/invidious/helpers/handlers.cr:31:5 in 'process_request' from lib/kemal/src/kemal/route_handler.cr:17:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/websocket_handler.cr:13:14 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/filter_handler.cr:22:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from /usr/share/crystal/src/http/server/handlers/static_file_handler.cr:60:12 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:163:5 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:80:12 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:145:12 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:132:5 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from /usr/share/crystal/src/http/server/handlers/compress_handler.cr:14:5 in 'call' from src/invidious/helpers/handlers.cr:70:5 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/exception_handler.cr:8:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/head_request_handler.cr:57:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/logger.cr:21:35 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/init_handler.cr:15:7 in 'call' from /usr/share/crystal/src/http/server/request_processor.cr:58:11 in 'process' from /usr/share/crystal/src/http/server.cr:521:5 in 'handle_client' from /usr/share/crystal/src/http/server.cr:451:5 in '->' from /usr/share/crystal/src/fiber.cr:168:11 in 'run' from /usr/share/crystal/src/fiber.cr:103:3 in '->' from ??? ``` </p> </details>
Invidious encountered an error while trying to parse this item. For more information see below:
Title: `Could not parse Mago and Danny Hayasaka (Exception)` Date: `2026-10-02T00:05:17Z` Route: `/channel/UCLttkDP_9ecbGnd7iGGFrWg` Version: `2.20260723.0- @ master` <details> <summary>Backtrace</summary> <p> ``` Could not parse Mago and Danny Hayasaka (Exception) from src/invidious/helpers/utils.cr:119:3 in 'decode_date' from src/invidious/yt_backend/extractors.cr:670:25 in 'parse_internal' from src/invidious/yt_backend/extractors.cr:41:16 in 'parse' from src/invidious/yt_backend/extractors.cr:647:16 in 'process' from src/invidious/yt_backend/extractors.cr:524:17 in 'parse_internal' from src/invidious/yt_backend/extractors.cr:41:16 in 'parse' from src/invidious/yt_backend/extractors.cr:516:16 in 'process' from src/invidious/yt_backend/extractors.cr:1162:17 in 'parse_item' from src/invidious/yt_backend/extractors.cr:1209:14 in 'extract_items' from src/invidious/channels/videos.cr:32:12 in 'get_videos:continuation:sort_by' from src/invidious/channels/videos.cr:12:12 in 'get_videos:sort_by' from src/invidious/channels/videos.cr:38:34 in 'get_60_videos:continuation:sort_by' from src/invidious/routes/channels.cr:56:36 in 'videos' from src/invidious/routes/channels.cr:11:5 in 'home' from src/invidious/routing.cr:117:27 in '->' from lib/kemal/src/kemal/route.cr:12:26 in '->' from src/invidious/helpers/handlers.cr:31:5 in 'process_request' from lib/kemal/src/kemal/route_handler.cr:17:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/websocket_handler.cr:13:14 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/filter_handler.cr:22:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from /usr/share/crystal/src/http/server/handlers/static_file_handler.cr:60:12 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:163:5 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:80:12 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:145:12 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:132:5 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from /usr/share/crystal/src/http/server/handlers/compress_handler.cr:14:5 in 'call' from src/invidious/helpers/handlers.cr:70:5 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/exception_handler.cr:8:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/head_request_handler.cr:57:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/logger.cr:21:35 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/init_handler.cr:15:7 in 'call' from /usr/share/crystal/src/http/server/request_processor.cr:58:11 in 'process' from /usr/share/crystal/src/http/server.cr:521:5 in 'handle_client' from /usr/share/crystal/src/http/server.cr:451:5 in '->' from /usr/share/crystal/src/fiber.cr:168:11 in 'run' from /usr/share/crystal/src/fiber.cr:103:3 in '->' from ??? ``` </p> </details>
Invidious encountered an error while trying to parse this item. For more information see below:
Title: `Could not parse Mago and Danny Hayasaka (Exception)` Date: `2026-10-02T00:05:17Z` Route: `/channel/UCLttkDP_9ecbGnd7iGGFrWg` Version: `2.20260723.0- @ master` <details> <summary>Backtrace</summary> <p> ``` Could not parse Mago and Danny Hayasaka (Exception) from src/invidious/helpers/utils.cr:119:3 in 'decode_date' from src/invidious/yt_backend/extractors.cr:670:25 in 'parse_internal' from src/invidious/yt_backend/extractors.cr:41:16 in 'parse' from src/invidious/yt_backend/extractors.cr:647:16 in 'process' from src/invidious/yt_backend/extractors.cr:524:17 in 'parse_internal' from src/invidious/yt_backend/extractors.cr:41:16 in 'parse' from src/invidious/yt_backend/extractors.cr:516:16 in 'process' from src/invidious/yt_backend/extractors.cr:1162:17 in 'parse_item' from src/invidious/yt_backend/extractors.cr:1209:14 in 'extract_items' from src/invidious/channels/videos.cr:32:12 in 'get_videos:continuation:sort_by' from src/invidious/channels/videos.cr:12:12 in 'get_videos:continuation' from src/invidious/channels/videos.cr:47:36 in 'get_60_videos:continuation:sort_by' from src/invidious/routes/channels.cr:56:36 in 'videos' from src/invidious/routes/channels.cr:11:5 in 'home' from src/invidious/routing.cr:117:27 in '->' from lib/kemal/src/kemal/route.cr:12:26 in '->' from src/invidious/helpers/handlers.cr:31:5 in 'process_request' from lib/kemal/src/kemal/route_handler.cr:17:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/websocket_handler.cr:13:14 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/filter_handler.cr:22:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from /usr/share/crystal/src/http/server/handlers/static_file_handler.cr:60:12 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:163:5 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:80:12 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:145:12 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/handlers.cr:132:5 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from /usr/share/crystal/src/http/server/handlers/compress_handler.cr:14:5 in 'call' from src/invidious/helpers/handlers.cr:70:5 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/exception_handler.cr:8:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/head_request_handler.cr:57:7 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from src/invidious/helpers/logger.cr:21:35 in 'call' from /usr/share/crystal/src/http/server/handler.cr:30:7 in 'call_next' from lib/kemal/src/kemal/init_handler.cr:15:7 in 'call' from /usr/share/crystal/src/http/server/request_processor.cr:58:11 in 'process' from /usr/share/crystal/src/http/server.cr:521:5 in 'handle_client' from /usr/share/crystal/src/http/server.cr:451:5 in '->' from /usr/share/crystal/src/fiber.cr:168:11 in 'run' from /usr/share/crystal/src/fiber.cr:103:3 in '->' from ??? ``` </p> </details>
Shared 7 months ago
277 views
Shared 10 months ago
366 views
Shared 11 months ago
122 views
Shared 11 months ago
214 views
Shared 11 months ago
207 views
Shared 1 year ago
240 views
Shared 1 year ago
140 views
Shared 1 year ago
127 views
Shared 1 year ago
51 views