Embed live, interactive websites directly inside your PowerPoint presentations. Each slide can display a different website URL.
Created by Pedro Hernandez — PeopleWorks Services
- Live websites inside slides - Display any website directly in PowerPoint
- Video support - Embedded video plays (autoplay, fullscreen, DRM); YouTube & Vimeo links are auto-converted to their embeddable player
- Per-slide URLs - Each slide remembers its own URL
- Presentation mode - Hide/show controls, reload, or go fullscreen from the toolbar
- Smart URL handling - Auto-adds
https://if you forget the protocol - Error handling - Friendly messages when a site can't be embedded
- Zero dependencies - Just HTML, JS, and an XML manifest
- Download
manifest.xml - Go to PowerPoint Online and open a presentation
- Go to Insert > Add-ins > Upload My Add-in
- Select the
manifest.xmlfile - Insert the add-in into any slide
- Enter a URL and press Enter
The viewer is hosted at https://powerpointwebviewer.peopleworksservices.com/viewer.html — no server setup needed.
Important: PowerPoint Desktop does not have an "Upload" button. You need to set up a shared folder catalog.
Step 1: Create a shared folder for manifests
- Create a folder on your PC, e.g.
C:\AddinManifests - Copy
manifest.xmlinto that folder - Right-click the folder > Properties > Sharing tab > Share...
- Add your user (or "Everyone") with Read permission
- Note the network path (e.g.
\\YOUR-PC\AddinManifests)
Step 2: Register the folder in PowerPoint
- Open PowerPoint > File > Options
- Click Trust Center > Trust Center Settings...
- Click Trusted Add-in Catalogs
- In Catalog URL, paste the network path:
\\YOUR-PC\AddinManifests - Click Add catalog
- Check the Show in Menu checkbox
- Click OK > OK
- Close and reopen PowerPoint (required)
Step 3: Load the add-in
- Go to Home > Add-ins (in the ribbon)
- Click Advanced (at the bottom)
- Select SHARED FOLDER at the top
- Select "Live Website Viewer" and click Add
- Clone this repository
- Host
viewer.htmlon your own HTTPS server - Edit
manifest.xmland update theSourceLocationURL to point to your server - Follow Option A or B to load the modified manifest
| File | Description |
|---|---|
viewer.html |
The add-in that runs inside PowerPoint slides |
manifest.xml |
Office Add-in manifest (registers the add-in with PowerPoint) |
powerpointwebviewer.html |
Documentation page (English/Spanish) |
web.config |
IIS configuration for Windows Server hosting |
The add-in uses Microsoft's Office.js API to:
- Load a lightweight HTML page inside a PowerPoint content add-in
- Accept a URL from the user
- Display the website in an iframe
- Persist the URL using
Office.context.document.settingsso it's saved with the presentation
Want to host your own version or personalize it? Here's everything you need to change:
Edit manifest.xml and update these two lines with your server address:
<IconUrl DefaultValue="https://YOUR-DOMAIN.com/icon.png"/>
<SupportUrl DefaultValue="https://YOUR-DOMAIN.com/support"/>
<SourceLocation DefaultValue="https://YOUR-DOMAIN.com/viewer.html"/>In manifest.xml, generate a new unique ID and update the provider name:
<Id>YOUR-UNIQUE-GUID-HERE</Id>
<ProviderName>Your Name or Company</ProviderName>
<DisplayName DefaultValue="Your Custom Name"/>
<Description DefaultValue="Your custom description."/>You can generate a GUID at guidgenerator.com
In viewer.html, find the branding footer near the bottom of the <body> and update:
<!-- Branding footer -->
<div id="branding">
<div class="brand-left">
<div class="brand-logo">P</div> <!-- Your logo letter -->
<span class="brand-name">PeopleWorks</span> <!-- Your brand name -->
<span class="brand-separator">|</span>
<span class="brand-author">by Pedro Hernandez</span> <!-- Your name -->
</div>
<div class="brand-right">
<a href="https://YOUR-DOMAIN.com">YOUR-DOMAIN.com</a> <!-- Your URL -->
</div>
</div>Also update the welcome screen in the same file:
<!-- Welcome overlay -->
<div id="overlay">
...
<div style="margin-top: 24px; opacity: 0.5; font-size: 12px; color: #999;">
Created by <strong>Your Name</strong> — Your Company
</div>
</div>And the showWelcome() function in the <script> section — it has the same text.
In viewer.html, the main colors are defined in the CSS:
| Color | Where | What it does |
|---|---|---|
#4a90d9 |
.btn-primary, .spinner, #urlInput:focus |
Primary blue (buttons, accents) |
#1a1a2e / #16213e |
#branding gradient |
Footer background |
#63b3ed |
.brand-name, a in branding |
Brand text highlight |
#f0f2f5 |
body, #overlay |
Background color |
IIS (Windows Server):
- Copy
viewer.html,manifest.xml, andweb.configto your site folder - The included
web.confighandles CORS, HTTPS redirect, and MIME types - Make sure you have a valid SSL certificate (Office Add-ins require HTTPS)
- Install the URL Rewrite module if not already installed
Apache:
# .htaccess
Header set Access-Control-Allow-Origin "*"
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]Nginx:
server {
listen 80;
server_name your-domain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name your-domain.com;
add_header Access-Control-Allow-Origin *;
location / {
root /var/www/powerpointwebviewer;
index viewer.html;
}
}GitHub Pages (free):
- Fork this repository
- Go to Settings > Pages and enable GitHub Pages from the
mainbranch - Your viewer will be at
https://YOUR-USERNAME.github.io/powerpointwebviewer/viewer.html - Update
manifest.xmlwith that URL
- PowerPoint (Desktop or Online)
- HTTPS hosting for the viewer page (already provided at peopleworksservices.com)
- Some websites block iframe embedding (e.g., Google, Facebook, X/Twitter) via
X-Frame-Optionsor CSP headers — use the Window button to open those in a separate window - YouTube and Vimeo video links are auto-converted to their embeddable player so they display correctly; other video pages depend on the site's own embedding policy
- The viewer requires an internet connection to load websites
Contributions are welcome! Feel free to open issues or submit pull requests.
MIT License - Free to use, modify, and distribute.
Pedro Hernandez — PeopleWorks Services