Using WordPress? Every integration here is also available as a plugin. Browse the plugin store →

Released component

Documents

Documents puts a SharePoint library, a OneDrive folder or a SharePoint list on your website — files as a browsable, searchable list with previews and downloads, or list rows as a table you control column by column.

The component platform is in pre-launch, so SharePoint & OneDrive Display for WordPress is the route open today — the same Microsoft 365 job, delivered as a WordPress plugin. If the web component is what you need, tell us and we will come back to you.

port-authority.example/publications
port authority
Publications / 2026 SharePoint library · read-only
  • Harbour access statement PDF · 2.4 MB · 12 March Preview
  • Tariff schedule (revised) XLSX · 310 KB · 9 March Open
  • Board minutes — February PDF · 640 KB · 2 March Preview
  • Dredging programme 2026–28 PDF · 5.1 MB · 27 February Preview
  • Berth application form DOCX · 88 KB · 19 February Open
No Microsoft sign-in for the visitor — access is resolved server-side.

Documents itself, running here on a fictional host — the released bundle from our CDN, loaded the same way your own page would load it. The data behind it is sample data of our own invention; on your site the same component reads your Microsoft 365 tenant.

Putting it on the page

What you paste into the page.

Two lines, and neither of them is a build step. Everything the component shows is resolved from the key at request time, so the markup on the page is the last markup anyone writes.

<script src=https://cdn.wpistatic.com/platform.js async></script>
<wpi-documents embed-key="your-embed-key"></wpi-documents>
One loader for every component — it finds the element and fetches this bundle itself. Your own embed key comes from the builder.
  1. The script tag

    One bundle for one component. It defines the custom element and does nothing else — no framework, no build step, and no change to how the rest of the page is built.

  2. The element

    An ordinary HTML tag, placed wherever the component should appear — including inside a page builder’s raw-HTML block, a shortcode, or a template partial.

  3. The embed key

    The key resolves to one configured instance — the Microsoft 365 source, the arrangement, the theme, and the domains allowed to render it. Change any of those and the page itself never has to be edited again.

What it does

How it works

The Documents component reads a SharePoint document library, a OneDrive folder or any SharePoint list through Microsoft Graph and renders it on your page. Pointed at files, visitors browse folders, search, sort, preview and download. Pointed at a list, the component asks the list what columns it has and you choose which to publish, what to call them and how each one is formatted. Either way there is no Microsoft sign-in for the visitor: authorisation happens server-side, so no Graph token ever reaches the browser.

Why it exists

Publishing a document to a website usually means downloading it out of SharePoint, uploading it again, and remembering to repeat that every time it changes. Publishing a table of data usually means retyping it into the page. Pointing at the library or the list instead means the newest version in SharePoint is the version on the site, with no second copy to maintain.

Element
<wpi-documents>
Reads from
SharePoint document libraries, SharePoint lists, OneDrive for Business
Arrangements
5 in the builder
Graph access
managed or proxy — the tenant chooses

Where it runs

Anywhere you can paste two lines of HTML

A custom element needs no build step and no framework, so where your site is built is not a question you have to answer before this one.

  • WordPress
  • Webflow
  • Squarespace
  • Shopify
  • Wix
  • Astro
  • Next.js
  • Drupal
  • SharePoint pages
  • Plain HTML

Named as examples of places HTML can be pasted. No partnership is implied, none of these are customers, and the marks beside them are our own drawings rather than any vendor's logo. WordPress is the one that gets more than an embed — the same Microsoft 365 jobs also ship as plugins with a Gutenberg block.

In detail

Everything Documents does.

12 capabilities, every one of them resolved from the embed key rather than written into the page.

  1. Point at a library by its URL

    Enter the SharePoint site URL and the library’s display name, or a user’s OneDrive and a folder path, and the underlying ids are resolved server-side. Explicit site, drive and folder ids take precedence when you already have them.

  2. List or grid, with folder navigation

    Subfolders stay browsable and a breadcrumb shows where the visitor is. Thumbnails, file size and last-modified date are individually switchable.

  3. Search and sort in the widget

    Optional search and sort controls, with a default sort by name, date modified or size, ascending or descending.

  4. Preview in place or open in SharePoint

    Images and PDFs can open in an in-page lightbox with no redirect, or every click can go to the file’s SharePoint or OneDrive URL in a new tab. File types that cannot be previewed always open in a new tab.

  5. Restrict to the file types you publish

    A comma-separated extension allowlist hides everything else. Folders are always shown, so navigation still works when only PDFs are listed.

  6. Downloads on or off

    Download links can be switched off for a library that should be readable on the page but not distributable from it.

  7. Paging for large libraries

    Page size is configurable up to 200 items, so a large library is fetched a page at a time rather than all at once.

  8. Or publish a SharePoint list, not files

    Point the same component at any list on a site. It reads the list’s own column definitions once, and you pick which columns appear, in what order, under what heading, and how each value is formatted — text, number, currency, date, yes/no, link, image, badge or rich text.

  9. Filter and order a list at the source

    An OData filter and sort are passed to Microsoft as written, so a list can be published as “published items only, newest first” without a second copy of it. A filter decides what is shown, not who may see it: every visitor to the page gets the same rows.

  10. Lay a row out yourself

    A row template renders each list row however you like — values, links, badges, conditionals and grouping. The template language contains no HTML by construction, so a template cannot inject markup into the host page.

  11. Inline, button or floating embed

    Render the file browser in the page, behind a button that opens a modal, or as a floating launcher pinned to a corner.

  12. Domain allowlist, GTM and custom CSS

    The embed renders only on domains you list, a Google Tag Manager container id can be attached, and custom CSS covers anything the settings do not.

One of these you can have today.

SharePoint & OneDrive Display for WordPress is on sale in the store now and does this job inside WordPress. The web component is in pre-launch — if that is the delivery you need, tell us and we will come back to you.

Reaching your tenant

Two ways for us to reach Graph. One of them never lets us.

Every tenant runs in one mode or the other, and the choice belongs to your IT rather than to us. It is the reason this works inside organisations that will not delegate Graph access to a vendor.

managed

We hold the credentials

WPIntegrate runs the client-credentials flow for your tenant. Your administrator grants consent once and is not asked again.

proxy

You hold the credentials

You supply a base URL and an API key for your own gateway. We store that key encrypted at rest and never hold a Graph token at all.

Arrangements

Pick the shape that fits the page.

Each of these is a setting on the instance, not a different component — the source, the theme and the embed key stay the same when you change it.

  • Files — list with metadata columns
  • Files — grid of thumbnail cards
  • List — table with your own columns
  • List — stacked label and value
  • List — card grid

Questions

The things people ask before they buy.

If yours is not here, ask it — the answers come back from a person rather than a form.

Do visitors need a Microsoft account?

No. Requests are authorised server-side with the tenant’s own Graph credentials, so a visitor sees the files you have chosen to publish without signing in to Microsoft.

Is the file list live?

Yes. The library is read at request time, so a file added, renamed or removed in SharePoint shows up on the site without anyone editing the page.

Can we limit it to one folder?

Yes. A folder id or folder path pins the root of the browser, and visitors can only navigate below that point.

Can visitors upload or delete files?

No. The Documents component is read-only today — browsing, previewing and downloading are the operations it performs.

Which files preview inside the page?

Images and PDFs render in the in-page lightbox. Office documents and other types open in SharePoint or OneDrive in a new tab, where Microsoft’s own viewer handles them.

Can it show a SharePoint list rather than files?

Yes. Choose “SharePoint list” as the source and the component reads that list’s columns, so you can publish it as a table, a stacked list or a card grid with the columns you choose. This is the replacement for both legacy shortcodes — [o365_sp_search_list] and [o365_sp_view] pointed at a list.

How many list rows does one embed show?

Up to 200 per page. Switch on Previous / Next in the Layout zone and a visitor can walk a list of any length; leave it off and the rows one embed reads are the only rows a visitor can reach. Sorting and the search box work within the page a visitor is on.

Do person columns show a name?

Created by and Modified by do. A person or lookup column you created yourself does not: Microsoft returns those as a reference to a row in another list rather than as a name, so they render blank. The builder shows three real rows from your list before you publish, so you can see which columns are affected.