What’s new in FileDeck — the features, improvements and fixes we ship, newest first.
Releases go out as soon as they’re ready — sometimes several in a day, sometimes a quiet week. Every entry below shipped to production.
Big libraries just got a lot faster
If your library holds thousands of documents, every page view was asking your database to do far more work than it needed to. That work is gone, and it's in the free version.
Less work per page, especially on big libraries
Loading the first page of a library used to get steadily more expensive as the library grew — and more expensive again the more information each document carried, so libraries using custom fields, expiry dates and access rules paid the most. In our own testing on a 10,000-document library, the server-side work behind page 1 dropped to roughly a ninth of what it was.
Nothing about your library changes: the same documents, in the same order, under the same access rules. It simply takes far less work to get there.
The gain applies everywhere a library is queried — the block, the shortcode, the Elementor widget, embeds, and the search, filter and paging requests behind the scenes on larger libraries.
Fixes & improvements
- The check that decides when a library is large enough to page on the server no longer gets slower as the library grows; it now costs the same on 1,000 documents as on 10,000.
Find the PDFs in your library that fail accessibility checks
If you publish documents for a public body, the hard part of accessibility is rarely fixing one PDF — it's knowing which of your two thousand PDFs are the problem. FileDeck's AI tier now screens the whole library and lists them, under Documents → Accessibility.
What it finds
The scan runs in the background and reports four things a machine can establish, each named against the standard it relates to:
- Scanned image, no text — the page is a picture, so nothing can be read aloud, searched or reflowed.
- Not tagged for screen readers — no structure tree, so a screen reader gets an undifferentiated wall of text: no headings, no lists, no table structure, no reliable reading order. Usually the most serious finding.
- No document language set — assistive technology has to guess, so English can be read aloud in a French voice.
- No document title — the window or tab shows a filename instead of a name.
Files that are corrupt or locked are reported as could not be checked — never quietly counted as passes. A report that inflates its own pass rate is worse than no report.
What it deliberately does not do
This is a screening tool, not a compliance check, and FileDeck says so on the report itself.
Automated testing finds only a minority of accessibility problems. FileDeck can tell you a PDF has no tag tree. It cannot tell you the tags are *wrong* — that the reading order is scrambled, that a heading is tagged as body text, or that the alt text says "image1.png". Those need a person.
So it's built to find the documents that certainly need work, not to certify the ones that don't. A document that passes every check may still be unusable with a screen reader, and we'd rather say that plainly than let a green number stop you looking.
Where it runs
Locally, in small background batches. No AI provider is called and no document content leaves your server — the screening is structural parsing of the PDF itself. It sits in the AI tier because of who needs it, not because it uses a model.
Full detail, including what to do about each finding, is in Find PDFs that fail accessibility checks.
See FileDeck working before you upload anything
Setup used to end at *"Add your first document"* — which meant going off to find a PDF before you could see a single thing work. Now there's a Load sample library button next to it, free in every install.
One click gives you nine documents across three categories — Policies, Forms and Reports — and a library you can actually try: search it, filter it, switch layouts, download from it. It's also offered on the Documents screen any time your library is empty, so it's there if you skipped setup.
Real PDFs, not placeholders
Each sample is a genuine one-page PDF. They open in the browser, they generate thumbnails where your server supports it, their text is readable by content search, and downloading one moves the download counter. A demo whose files didn't open would tell you nothing useful about the plugin.
Removing them won't take anything of yours
While samples are installed, the Documents screen carries a reminder with a Remove sample documents link. It deletes the nine samples and their files — and stops there:
- Documents you added are untouched, even if one has the same title.
- If you swapped a sample's PDF for your own file, your file stays in the Media Library.
- A category is only deleted if it's empty. Filed your own documents under *Policies*? That category stays, with your documents in it.
So you can load the samples, build your real library alongside them, and clear them out whenever you're ready.
Full details are in Try FileDeck with a sample library.
Turn your FileBird folders into a published document library
FileDeck Pro now reads FileBird folders directly. Go to Documents → Import & Export → Migrate and, if FileBird is organising files on your site, FileDeck tells you how many documents it found and offers a one-click import. Your folder tree comes across as nested categories.
Already using FileBird Document Library? This is the same import — it displays FileBird's folders rather than storing anything itself, so its documents are your FileBird documents.
Your photo library stays a photo library
FileBird organises your *whole* Media Library, so its folders hold your images just as readily as your PDFs. Importing everything in them would turn a few thousand photos into a few thousand "documents" and bury the files you actually wanted.
So FileDeck imports documents only — PDFs, Word, Excel, PowerPoint, OpenDocument, text, archives — and leaves images, video and audio where they are. The count on the Migrate card already reflects that, so the number you're shown is the number you get. If you *do* want images imported, there's a filter for it, documented in the guide.
Your folders, not your workarounds
The folder tree becomes FileDeck categories with the same nesting, so *Policies → HR* arrives as an HR category inside Policies. A document filed in two folders keeps both. Collections are left out on purpose — they're a grouping laid over your folders, and importing them too would file the same document under two names.
Nothing is copied or moved
Each document points at the same Media Library file it always did. Nothing is duplicated on disk, and FileBird keeps working exactly as before — you can carry on organising in the Media Library while FileDeck publishes the library on your site. Run the import again later to pick up whatever you've added since; anything already imported is skipped.
Full details are in Migrate from FileBird.
Bring a WP Customer Area portal across, customer access included
FileDeck Pro now imports WP Customer Area. Go to Documents → Import & Export → Migrate and, if it has data on your site, FileDeck tells you how many private files it found and offers a one-click import. That makes ten plugins FileDeck can take a library from.
This one is different from the others. WP Customer Area doesn't just restrict files — it gives each one to particular customers, and that's usually the whole reason a site uses it. So the import brings the access across, not only the documents.
Your customers keep exactly the access they had
Each file's owners become a FileDeck client area — a category with those people assigned to it. A file owned by one customer becomes their private area. A file owned by several people goes into one shared area holding all of them, which is what actually reproduces "these people can see this."
Areas are named after their members, like *Alice* or *Bob + Carol*. Rename them to whatever your customers would recognise — the assignments stay put. Add the [filedeck_my_documents] shortcode to a page and each person sees only their own areas.
A file that was private stays private
If a file's owner no longer exists, or it was owned by a group whose membership lives in an add-on FileDeck can't read, the document arrives restricted to logged-in users rather than published openly. FileDeck never resolves an unknown owner by making the file public — you can assign those documents to the right area yourself afterwards.
Your files become yours again
WP Customer Area keeps files in a private folder outside your uploads directory, where the web server can't serve them at all. FileDeck copies each one into your Media Library, so it can serve it and protect it behind a signed link — and it leaves the originals exactly where they are, so nothing is moved or lost.
Full details are in Migrate from WP Customer Area.
Two more libraries you can move across in one click
FileDeck Pro now imports BSK PDF Manager and Download Attachments directly. Go to Documents → Import & Export → Migrate and, if either has data on your site, FileDeck tells you how many files it found and offers a one-click import. No CSV export, no column mapping, and nothing leaves your server. That makes nine plugins FileDeck can take a library from.
BSK PDF Manager, including the parts that are easy to lose
Your PDFs arrive with their descriptions, their nested categories, their download counts, their publish dates and their expiry dates. Files come across whether you uploaded them through the Media Library or put them on the server yourself.
Two things are handled deliberately rather than mechanically. Anything sitting in the trash is not imported — not counted, not listed, not brought across. And anything you left as a draft stays a draft, even if you chose to publish the import: publishing something you had deliberately held back isn't a decision an importer should make for you.
Items you marked restricted, and items in a password-protected category, arrive restricted to logged-in users, so nothing becomes public just because you migrated. You can then set up exactly the access you want with FileDeck's category rules.
Download Attachments, without dragging in your whole Media Library
Download Attachments doesn't create documents — it takes charge of files already in your Media Library. So the import brings across only the files it actually manages, and leaves every photo, logo and unrelated upload alone. Files nobody has downloaded yet come across too; a count of zero still means it's one of your downloads.
Because the only way that plugin organises files is by the post or page they're attached to, those become your categories — a file attached to your *Annual Reports* page lands in an Annual Reports category.
Details for both, including what isn't carried across, are in Migrate from BSK PDF Manager and Migrate from Download Attachments.
Move a Simple Download Monitor library across in one click
FileDeck Pro now imports Simple Download Monitor directly. Go to Documents → Import & Export → Migrate and, if its data is on your site, FileDeck tells you how many downloads it found and offers a one-click import. No CSV export, no column mapping, and nothing leaves your server.
Your downloads arrive intact, not just their titles
Each download becomes a FileDeck document with its description, its file, and its categories — including the way you had them nested. Tags come across too. Files already in your Media Library are linked rather than copied, so nothing is duplicated on disk and your originals stay exactly where they are.
The import runs in the background, so you can close the page. Running it again is safe: anything already imported is skipped, never duplicated, and an interrupted import simply picks up where it stopped.
Your download counts survive the move
Simple Download Monitor works out a download's total from the downloads it logged plus the count offset you can set by hand. FileDeck adds up the same two numbers, so the figure after importing matches the figure you saw before — including on items where you had logging switched off and the offset was the only record of the real total.
Restricted downloads stay restricted
If you used Only Allow Logged-in Users to Download, those documents arrive restricted to logged-in users, and their files move into FileDeck's protected vault so the old direct link no longer works. Any download you had individually opted out of that setting stays public, exactly as before.
Full details, including what isn't carried across, are in Migrate from Simple Download Monitor.
Style your library to match any theme
FileDeck's frontend is now built entirely on design tokens, so you can restyle a library across every dimension — colours, surfaces, borders, radius, density — from the Display settings, the block editor, or a line of CSS. All of it is in the free version.
Match your theme in a click
The Display tab gains a Style preset with a Match my theme option that pulls colours straight from your theme's global styles, so a library looks native without touching CSS. There are Minimal (no card border or shadow), Bordered, and Compact (dense rows) presets too — and new Surface and Text colour settings alongside the existing accent, with tints and hairlines derived automatically so a single colour re-skins the whole library.
A built-in dark scheme
A new Colour scheme setting adds Dark and Auto (follow the visitor's device) alongside the default light. Every surface, row and hairline flips; your accent stays your brand colour. Set it globally, or per library with [filedeck scheme="dark"].
Style it in the block editor
The Document Library block now supports the editor's own colour and border controls — pick a background, text colour or corner radius in the sidebar and the whole library follows, mapped onto FileDeck's tokens so rows, headers and tints all stay consistent.
Fixes & improvements
- Every FileDeck style now reads from a
--fdk-*custom property, so overriding one variable restyles everything that uses it — including buttons — without specificity battles. - Text fields adopt the library's surface and text colours, so search and filter controls stay legible under any preset or the dark scheme.
- Shortcode styling gained
preset,scheme,surface_colorandtext_colorattributes for per-library control.
Download counts and the content-gap report now measure what they claim
Two corrections to numbers FileDeck shows you. Neither adds a feature; both make an existing one true.
Download counts no longer include search-engine crawlers
Page views have always ignored crawlers. Download counts did not — so every time Googlebot, Bingbot or a social-preview fetcher followed a download link, the counter went up. Two numbers from the same log, held to different standards.
Crawlers are now excluded from download counting. Your counts may drop slightly, and the lower number is the accurate one — it is the number of times a person downloaded the file.
Scripted clients like curl and wget still count. Somebody automating retrieval of their own library did download the file, and their count should say so. The exclusion is only for agents following links with nobody behind them.
Nothing about access changes: crawlers are served exactly as before, they are simply not counted.
The content-gap report now shows real searches, not half-typed words
Search runs as you type, so one visitor looking for "policy" could send po, pol, polic and policy as separate searches. Each was logged separately — which inflated search counts and, worse, filled the content-gap report with fragments of words nobody actually searched for. That report exists to tell you which documents to write next, so noise in it is expensive.
Consecutive searches from the same visitor where one is a prefix of the other are now collapsed into a single entry, keeping the query they settled on. One person searching once produces one row.
Unrelated searches are still logged separately, and a search that found something is still recorded differently from one that found nothing.
What you'll notice: search totals will look lower than before and the gap report shorter. Both were previously counting the same intent several times.
—
Neither change is retrospective — existing rows and counters stay as they are. The correction applies from here.
Gate downloads behind your own form, and attach documents to any post
Two more from the competitive review, and they close the last of it.
Require a form before download (Pro)
FileDeck's own lead capture asks for a name and email. If you already run Gravity Forms, Ninja Forms, WPForms or Contact Form 7, you have a form that is already validated, already styled and already wired into your CRM. Now you can gate downloads behind that one instead.
Turn on Documents → Settings → Downloads → Require a form, paste the form's shortcode exactly as you would put it on a page, and every download opens a dialog containing your form. Submit it and the file starts. One submission unlocks downloads for an hour, so nobody fills the same form three times.
Why a shortcode rather than a form picker? Because it works with every form plugin, not four. The four above open the gate automatically; anything else can too:
“php add_filter( 'filedeck_formgate_hooks', function ( $hooks ) { $hooks[] = 'my_form_plugin_submission_complete'; return $hooks; } ); “
Your form plugin still processes the submission exactly as it would anywhere — notifications, CRM entries, everything. FileDeck only listens for "that finished", and records it in the activity log.
Enforced on the server, like the terms gate: closing the dialog does not get you the file. Signed share links skip it. And the same honest limit applies — this gates the FileDeck download route, so pair it with an access restriction if the file must not be reachable at its own URL.
Attach documents to a post (Pro)
You're writing a post that refers to three documents and you want them listed at the bottom. Until now that meant remembering a shortcode and its arguments.
There's now an Attached documents box in the post and page editor. Tick the documents; they list automatically at the end of the content, using your normal library layout and columns.
Nothing is duplicated — the post records which documents it points at, and the library stays the single source of truth. Access rules still apply: a restricted document attached to a public post does not become public.
The list only ever renders on the actual post or page, never in feeds, archives or widget queries. Developers can change which post types get the box with filedeck_attach_post_types, and the heading with filedeck_attach_heading.
Terms before download, sidebar widgets, and a richer activity log
Three additions from a competitive review of every document-library plugin ranked above FileDeck on WordPress.org.
Require terms before a download (Pro)
Some libraries can't just hand a file over. Drawing sets carry licence conditions, clinical guidance carries a disclaimer, research data carries a use agreement.
Turn on Documents → Settings → Downloads → Terms before download, write your agreement (links allowed), and every download now opens a dialog the reader has to accept first.
It is enforced on the server, not in the browser: accepting issues a short-lived token and the download endpoint refuses without one. Dismissing the dialog does not get you the file. Signed share links skip the gate — you already made that grant for a named recipient — and one acceptance covers the visit, so readers aren't asked per file.
The point is the record. Every acceptance lands in the activity log as a terms event with the document, the time and the visitor, exportable to CSV alongside your downloads. It records consent; it does not enforce a licence — a document with no access restriction still has a directly shareable file URL, so pair the terms gate with a restriction when the agreement really matters.
Lead capture still works alongside it: terms first, then details, then the file.
Sidebar widgets (free)
Two widgets for any sidebar or block area: Recent Documents and Top Downloads. Set how many to show, limit to a category, and optionally show download counts.
Both are access-aware — a restricted document never appears in a sidebar to someone who couldn't open it. A widget that advertises what you can't have is worse than no widget.
The activity log now records country, referrer and user agent
The log already told you which document, when, and by whom. It now also records:
- Country — where your host already resolved one
- Referrer — which page sent the reader to the download, often the most useful of the three
- User agent — browser or script
All three are in the CSV export. Existing logs keep working; the new columns fill in from here.
One deliberate limit: FileDeck never calls a geolocation service and ships no IP database. Country comes from a header your host or CDN already set (Cloudflare, Vercel, CloudFront, mod_geoip and similar). Where none is present the field stays empty rather than sending a visitor's IP to a third party to find out. "Documents never leave your site" has to cover visitor data too.
AI questions continue to store no IP — and now no agent, referrer or country either. The question is the data, not who asked it.
Security and reliability improvements
A maintenance release. We recommend updating at your earliest convenience.
Fixes & improvements
- Security and reliability improvements.
Publish your library on any website
Your document library no longer has to live only on your WordPress site. FileDeck Pro can now publish any library onto any other website — Wix, Squarespace, Shopify, Webflow, Framer, Google Sites, an intranet page, or a custom Astro/Next.js front end — with one line of code.
Publish & embed (Pro)
Go to Documents → Settings → Publish, choose what to publish (a category or the whole library, layout, columns), enter the destination site's address, and copy the snippet. The destination site needs no WordPress and no plugin — the embed carries search, categories, previews, downloads and tracking, sizes itself to its content, and updates live as you manage documents.
Snippets can be locked to one destination site, so nobody else can frame your library. And embeds show public documents only, enforced on the server: restricted documents never appear in an embed's rows, search results or page counts — cookies don't work reliably inside cross-site frames, so we exclude gated content outright rather than pretend. Signed expiring links for protected files still work inside embeds.
Headless front ends, documented
Building on Astro or Next.js? A new guide covers all three integration levels — the embed snippet, the JSON library endpoint for rows in your own markup, and signed download links — in the knowledge base.
Reliable in-browser viewing and downloads
A maintenance release. No new settings and no new screens — just a set of fixes to how documents get handed to your visitors, from watermarked PDFs that wouldn't open to buttons offering a file your library had already withdrawn.
Watermarked documents open properly in the browser
A browser's built-in PDF viewer doesn't fetch a document in one go — it asks for it in pieces, a few at a time. Watermarking stamps each PDF as it is served, and because every one of those pieces was being stamped on its own, the viewer could end up stitching together parts of slightly different copies. The document then either refused to render or came out garbled.
Watermarked and view-only PDFs are now handed over as a single consistent copy, so they open the way any other PDF does. Nothing to change in your settings — if watermarking or view-only mode is on, this just works now.
Fixes & improvements
- Zip downloads use each document's real filename. Files kept in protected storage came through under a scrambled name instead of the one you uploaded.
- The front-end edit form shows the correct name of the file currently attached to a submission, rather than that same scrambled name.
- The standalone
[filedeck_download]button respects a document's expiry date and its view-only setting. It could previously show a Download button for a document that the download itself would then, correctly, refuse. - A resumed upload no longer risks reassembling incorrectly when the connection drops and a piece gets sent twice.
- Downloading an empty file completes cleanly instead of leaving the browser waiting for a byte that was never coming.
- Security and reliability improvements.
Settings you can actually find
FileDeck's Settings screen had grown to thirteen tabs in a single row, which wrapped onto three lines and gave you no clue which one held the setting you were looking for. They're now a grouped sidebar.
Five groups instead of thirteen tabs
The sections are gathered under Library, Search, AI, Workflow and Privacy & data, down the left-hand side. Nothing was renamed, moved between sections, or removed — every setting is exactly where it was, and the sidebar simply makes it obvious where to look.
Only the sections your site actually has appear, so the free version shows a short list and an AI-tier site shows the full one.
Link straight to a section
The section you're viewing now appears in the page address, so you can bookmark the one you visit often or paste a link to it in a message to a colleague. It opens on that section rather than dumping them at the top.
Fixes & improvements
- The Settings screen's tabs are now a grouped sidebar, and the open section is reflected in the page address so it can be bookmarked and shared.