
Short answer: RSS-Bridge is an open source PHP application that you host yourself and that turns pages without a feed into RSS or Atom. Install it with Docker or on a PHP host, enable only the bridges you need, point a generic bridge such as the CSS selector bridge at the page and the elements that hold titles, links and dates, and request the result as a feed. Secure the instance, set a sensible cache lifetime, use it only for pages you have the right to read and share, and then paste the feed address into an auto-poster so that each new item is shared on your social channels.
Many useful websites have no feed at all. A club still posts its news on a hand-written page, a supplier lists announcements in a table, a government office publishes notices on a portal that was built before feeds were common. Sometimes the site belongs to you and the old system cannot be changed. RSS-Bridge solves this by fetching a page, reading it with rules and producing a feed that any reader or auto-poster understands. It is not magic, because it depends on the structure of the page, and a redesign can break a bridge. This guide explains how it works, how to install and secure it, how to build a reliable feed with a generic bridge and what to check before you rely on the result.
RSS-Bridge is a collection of small modules called bridges. Each bridge knows how to read one source, such as a social profile or a web service, and returns a list of items. A few generic bridges work with any page: they let you describe where the items are with selectors, rules for paths in the document or a filter applied to an existing feed. The application can return the same data as Atom, as RSS with media, as JSON or as plain HTML.
It is a tool for you to run, not a public service. Hosting your own copy gives you control over what is fetched, how often and by whom. It also gives you the duty to keep it updated and secure, because the software fetches remote pages on request, and an open instance can be abused by strangers.
| Need | Approach | Comment |
|---|---|---|
| Your own site has no feed | Fix the site if you can, otherwise use a generic bridge | A real feed from the CMS is always more reliable |
| A page lists items in a repeating pattern | CSS selector bridge | Needs stable markup |
| Several feeds should become one | Merge bridge | Good for a combined news stream |
| A noisy feed needs trimming | Filter bridge | Keep or drop items by words |
The simplest route is a container. The project publishes an image, and a short compose file starts it with a persistent folder for configuration.
services:
rss-bridge:
image: rssbridge/rss-bridge:latest
container_name: rss-bridge
restart: unless-stopped
ports:
- "127.0.0.1:3000:80"
volumes:
- ./config:/configThe port is bound to the local address on purpose, so that nothing reaches the application directly. Put a web server or a reverse proxy in front of it with HTTPS, and decide there who may call it. The principle is simple: one container, one folder for settings and no secrets in the image.
If you prefer a classic host, copy the project to a folder served by PHP, make the cache folder writable by the web server user and check that the required PHP extensions are present. The documentation lists them. The result is the same: a web page with a list of bridges and a form for each of them.
By default, only a few bridges are available, and a whitelist file controls which others are enabled. Resist the temptation to switch everything on. Each enabled bridge is code that fetches remote content, and fewer bridges mean fewer things to update and fewer ways to misuse your server. Write the names of the bridges you use, one per line, and restart if the setup needs it. For a first project, the CSS selector bridge, the merge bridge and the filter bridge cover most needs.
Open the bridge in the web form. You give it the address of the page, a selector for the element that wraps each item, a selector for the link, optional selectors for the title, the content, the date and the image, and a limit. After you submit, the form produces an address that you can open and copy. The address has this shape:
https://bridge.example.com/?action=display&bridge=CssSelectorBridge&home_page=https%3A%2F%2Fexample.org%2Fnews&url_selector=div.news-item+a&format=AtomParameter names can differ between versions, so always copy the address that the form gives you instead of typing one. To pick selectors, open the page in your browser, use the inspect tool and choose the smallest repeating element, then test the result in a feed validator. Prefer class names that describe the content, such as news-item, over names that describe the layout, such as col-md-4, because layout names change with every redesign.
A feed without dates has no order, and an auto-poster may treat every item as new on each visit. If the page shows dates, give the bridge the selector for them and check that the output uses a correct format. If the page shows no dates, the bridge may use the time of the request, which makes every item look new on every refresh and leads to repeats. In that case, do not connect the feed to an auto-poster until you have found a stable source of dates, for example the page of each item or a different list on the same site. See the guide to date format errors e why a feed auto-posts the same article twice.
Links must be absolute and must lead to the page of the item. Relative links on the source page need the base address, and tracking parameters in links can create a different identifier for every visit. Check the first ten items by hand and open each link.
RSS-Bridge is also useful for feeds that already exist. A merge bridge combines several feeds into one stream, which is helpful for a group of sister sites or the blogs of a team, and a filter bridge keeps or drops items by words in the title or the content. A reducer bridge can limit the number of items. Use them to prepare a clean address for an auto-poster instead of connecting many noisy feeds one by one. Remember that merged items keep the identifiers of their sources, so check that two sources do not publish the same story, or your followers will see it twice.
Every request to your bridge can cause a request to the source, and the owner of that site will notice if you ask too often. Keep the cache lifetime in line with how often the page changes. A news page that changes twice a day does not need a refresh every minute. A longer cache also protects your bridge when several tools ask for the same feed. Identify your instance honestly where the settings allow it, and stop at once if the owner asks you to. A slow source can also make your bridge slow, so test how long a request takes. See the guide to feed timeouts.
An open bridge is an open proxy for fetching pages, and attackers like those. Use at least two protections. First, limit access, either with a password or token feature of the application, with a rule in the web server that allows only your auto-poster and your own addresses, or with a long secret in the path. Second, keep the software up to date and watch the project for security notices. Run the container with a normal user, keep the configuration folder out of the public path and never store keys for other services in it. If the feed is only for your own use, consider publishing the resulting XML as a static file instead, and keeping the bridge itself private.
The fact that a page can be read does not mean that its content can be reposted. Read the terms of the site and its robots file, use feeds from sources that you own or have permission to use and share only titles, short summaries and links back to the original, which sends visitors to the author. Do not republish full articles that belong to others. If a site offers an official feed or an API, use that instead, because it is more stable and welcome. These points are general guidance, not legal advice.
Request the address from outside your network and check the response.
curl -i "https://bridge.example.com/?action=display&bridge=CssSelectorBridge&format=Atom&..."
curl -s "https://bridge.example.com/?action=display&bridge=CssSelectorBridge&format=Atom&..." | head -n 40A longer routine is in the feed validation guide, and a shorter one in debugging a feed with curl.
PostRSS has been publishing RSS and Atom feeds to social networks since 2014. Paste the address of your feed, connect your accounts and choose how each post is built from the title, the description or the page title. PostRSS checks the feed as often as every minute and shares each new entry, with its image and link, to the channels you choose among 66 supported networks, messengers, team chats and blogs, including LinkedIn, X, Bluesky, Mastodon and Telegram. Keyword filters, UTM parameters and posting windows let you tune each channel. See the PostRSS features page and the plan limits on the pricing page. More developer guides are under the Technical Guide tag.
RSS-Bridge is a practical way to give a feed to a page that has none, as long as you treat it as a small service that needs care. Enable only the bridges you need, choose stable selectors, make sure every item has a real date and an absolute link, set a polite cache lifetime, protect the instance and respect the owners of the sources. Test the live address from outside and then connect it to an auto-poster, so that new items reach your social channels without anyone copying and pasting.
It creates RSS or Atom feeds for pages and services that do not offer them, using small modules called bridges, and you host it yourself.
No. Docker is the simplest route, but you can also run it on a PHP host by copying the project to a folder that the web server serves.
When the source page shows no dates, a bridge may use the time of the request, so every refresh looks new. Find a stable date source before you connect an auto-poster.
Read the terms of the site first. Use sources you own or have permission to use, share only titles, summaries and links back, and prefer an official feed when one exists.
Yes. PostRSS reads any valid RSS or Atom address that is reachable without a login. Paste the address, connect your channels and new items are shared as soon as they appear.
What changed in the networks, what broke, and how to fix it before it costs you reach.
Realizzati da Internet Solutions, il team dietro PostRSS. Ognuno ti fa risparmiare tempo in modo diverso.