Share links your way – without handing control to someone else
If you have ever needed to send a handful of URLs to a client — research links, reference pages, portfolio pieces, documents to review — you will know the friction involved. Pasting a wall of links into an email looks messy. Sending them one at a time is worse. And the polished alternatives, the dedicated link-sharing platforms, come with a quiet catch: the moment you sign up, someone else owns the infrastructure that holds your links.
The new Link Sharing module in ToggleWP takes a different approach. It lives inside your existing WordPress install, stores everything in your own database, and gives recipients a clean page where they can open every link at once — all without signing up for anything, handing your data to a third party, or worrying about what happens to your links when a platform decides to change its terms.
How it works
The concept is simple: a package is a named bundle of URLs. You create one, give it a title and an optional message, and ToggleWP generates a short, shareable link on your own domain — something like yoursite.com/packages/spring-onboarding.
When a recipient opens that link, they land on a clean viewer page that lists every URL in the package, along with a single “Open All Tabs” button that fires each one open in a new tab simultaneously. No redirects through a third-party server, no tracking pixels from an external platform, no cookie consent banners from someone else’s analytics stack.
Here is what the module does under the hood:
Packages are stored as a custom post type. Each package lives in WordPress as a tab_package post. The URLs and titles are stored as JSON in post meta. That means they benefit from all the things you already rely on in WordPress: database backups, access controls, your hosting provider’s infrastructure.
A dedicated viewer page is created automatically on activation. When you enable the module, it creates a /packages/ page on your site with the viewer shortcode already in place. You do not have to configure anything — the first link you share will work straight away.
The viewer is clean and functional. Recipients see a numbered list of links with titles and URLs, a button to open all tabs at once, and a button to copy the full URL list to their clipboard. There is no in your face upsell, no account prompt, no “get your own linktree” banner, just a small “Powered By ToggleWP” link shown with the free plugin.
Password protection is built in. Any package can be made private with a password. The password is hashed using WordPress’s own wp_hash_password — the same mechanism that protects user accounts — so nothing sensitive is ever stored in plain text. Recipients see a password gate before the content is revealed.
Custom package IDs let you make links meaningful. Instead of an auto-generated code, you can choose your own slug: yoursite.com/packages/client-kickoff-march or yoursite.com/packages/design-references. Memorable links that tell the recipient what they are getting before they even click.
View tracking is anonymous and private. Every time a package is opened, a timestamp is recorded — nothing else. No IP address, no browser fingerprint, no user profile. You can see how many times each package has been accessed and when, from your own WordPress admin, without any third-party analytics service involved.
Speeding things up with the Chrome extension
Creating a package from the WordPress admin is straightforward, but if you find yourself sharing links regularly, the real speed gain comes from the Chrome extension.
The Link Sharing module exposes a REST API on your site (/wp-json/urlneedthis/v1/packages). The Chrome extension connects directly to this endpoint using a WordPress Application Password — a secure, revocable credential that does not require you to share your main login details.
Once configured, the workflow becomes:
- Open the tabs you want to share in your browser.
- Click the extension icon.
- Add a message, optionally set a password, and hit send.
The extension reads your open tabs, posts them to your site’s REST API, and hands you back a shareable link — all without leaving the browser. No copying URLs, no switching to WordPress admin, no manual form filling.
Because the extension talks directly to your own site, every package it creates is stored exactly the same way as one you create by hand in the admin. The data lives in your database, under your control, from the moment it is created.
Why owning your link sharing matters
The obvious alternatives to running your own link sharing are services like Linktree, Campsite, Shorby, or a URL shortener like bit.ly. They are genuinely convenient, especially when you are starting out. But for anyone who already has a WordPress site and cares about what happens to their data over the long term, there are real reasons to think twice.
Terms of service change. Platforms that are free today are under no obligation to stay free tomorrow. Features get paywalled. Free plans get storage caps or view limits. You build a workflow around a tool and then find out the part you relied on now costs ten dollars a month per workspace. With your own WordPress install, you set the terms — which is to say, there are none.
Platforms shut down. This is not a hypothetical. Tools that seemed permanent have closed with thirty days’ notice, leaving users scrambling to migrate links that were embedded in emails, documents, presentations, and client reports. Links that lived in those services are now dead. Links that live on your own domain, under a URL you control, stay alive for as long as your site does.
Your data is your business. When you share a bundle of client-facing links through a third-party service, that service can see what you are sharing, when, and how often. For most use cases that is probably fine. But for agencies sharing confidential research, consultants sending pre-sales materials, or anyone working with sensitive client information, keeping that data entirely within your own infrastructure is simply the right call.
You already have the infrastructure. This is the argument that often gets overlooked. If you have a WordPress site — which you almost certainly do if you are reading this — you already have a database, a server, backups, and a domain. You are not adding a new dependency; you are making use of what you already pay for. The Link Sharing module does not require a new service, a new subscription, or a new account. It is a feature that runs on the site you already own.
Who this is for
The Link Sharing module is particularly useful for:
- Freelancers and agencies who regularly send curated sets of links to clients — reference materials, competitor research, design inspiration, resource roundups.
- Consultants running onboarding workflows, where a clean package of links replaces a messy “here are eight things to read” email.
- Content creators who want to share a themed collection of links — articles, videos, tools — with their audience without routing that traffic through an external platform.
- Teams who want a lightweight internal tool for sharing reference links without standing up a separate service.
The setup is minimal: enable the module in ToggleWP, create a package, share the link. The Chrome extension takes it a step further for anyone who does this regularly. And underneath all of it, everything stays exactly where it belongs — on your site, in your database, under your control.
Link sharing is one of those tasks that seems too small to warrant much thought, right up until you realise you have been quietly routing it through a platform you do not actually own. The Link Sharing module is a straightforward fix for that — fast to set up, simple to use, and built on infrastructure you already have.
