CS Remove Sample Data is a free Joomla 5 and 6 extension that detects and removes every item Joomla's Blog and Multilingual sample-data plugins install โ articles, categories, tags, menus, modules, custom fields, workflows, the whole pile โ with a preview, per-item opt-out, and a full activity log. One click, about 80 items gone, no leftover "same alias" collisions next time you reinstall sample data.
Why this exists
You installed Joomla. You clicked "Install sample data โ Blog" because you wanted to see what was there. Now you have 80+ items in your database that you don't want, and Joomla has no built-in way to remove them. Deleting them by hand is tedious and you'll miss things โ the workflow stages, the per-language association rows, the orphaned custom-field values โ and the next time you try to reinstall the sample data, Joomla refuses because "another tag has the same alias."
Remove Sample Data knows exactly what each of Joomla's sample-data plugins creates, finds it on your site, and removes it cleanly. Preview before any deletion, per-item opt-out, edited-item safeguard, and a full activity log of every action it took.
Key features
- Detects every item the sample-data plugins create. Articles, categories, tags, menus, modules, custom fields, workflows, workflow stages, workflow transitions, language switcher modules โ all of it.
- Including the language-suffixed variants. If Joomla's blog plugin was installed on a site with content languages already configured, it appends
-en-gb(or-fr-fr, etc.) to every alias. Remove Sample Data reads your installed content languages and catches those variants too. - Locale-aware detection. The extension reuses the same algorithm Joomla's sample-data plugin uses to generate aliases at install time, fed by the same language file. So it works the same on French, German, Spanish, Vietnamese sites โ no locale-specific code.
- Preview before removal. A flat-table scan with per-column filters lets you see exactly what's about to be removed. Tick what you want gone, leave what you want to keep.
- Edited-item safeguard. Anything you've changed since install (title doesn't match the original, or it was modified more than two minutes after creation) gets an "Edited" badge so you can review before deleting.
- Click any row title to open the underlying item in core Joomla (article โ
com_content, menu item โcom_menus, module โcom_modules, custom field โcom_fields, and so on). - Activity log. Every deletion and every side-effect (e.g. disabling the Language Filter plugin) recorded. The viewer has refresh, CSV download, clear-all-with-modal, hot-linked stats cards, text filter, color-coded levels, and expandable detail rows.
- Joomla 5 and 6 native. Modern Toolbar API,
DatabaseInterfaceDI,Joomla\Input\Input, no deprecated APIs. PHP 8.1+. Dark-mode safe under the Atum admin template. - Automatic updates. Once installed, future versions show up in Extensions โ Manage โ Update via Joomla's standard update checker.
How detection works
Joomla's sample-data plugins don't hardcode their aliases in English โ they generate them at install time by feeding translated titles through Joomla's ApplicationHelper::stringURLSafe() function. On a French site the alias for the "tropical shoreline" sample article is actually ma-cote-tropicale, not tropical-shoreline.
Remove Sample Data reuses the exact same algorithm. At scan time it loads plg_sampledata_blog.ini for each installed admin language, runs the same URL-safe transform, and looks up matching items by alias in their correct context (this category, this menu type, this custom-field group). The result is exhaustive detection that works on any locale without locale-specific code.
For sites where the Blog sample data was installed on top of an existing multilingual setup โ where Joomla's blog plugin then appends -en-gb (or whichever language) to every alias and title โ the detector additionally enumerates your #__languages table and computes those suffixed variants. Nothing slips through.
Safety
Preview every item before any deletion. Per-item opt-out via the row checkboxes. "Edited" items flagged so you can spot anything you've changed since install. A "Yes, I have a site backup and want to remove these items" checkbox in the confirm modal โ the Remove button stays disabled until you tick it. A lock-out overlay during the run prevents double-submits and tab navigation. Every action and every side-effect recorded in the activity log.
Take a full site backup before running. Removal cannot be undone from inside the extension.
Installing it
- Download the latest release zip from the link near the top of this page.
- In Joomla admin, go to System โ Install โ Extensions and upload the zip.
- Open Components โ Remove Sample Data to see the dashboard. The two cards show how many Blog and Multilingual sample-data items the extension detected.
Requirements
- Joomla 5.0+ or 6.0+
- PHP 8.1+
- Database: MySQL 5.7+ / MariaDB 10.3+ / PostgreSQL 11+
Open source
Remove Sample Data is open source under GPL-2.0-or-later. Free to use on as many sites as you like. Full source, issue tracker, and release downloads live at github.com/cybersalt/cs-remove-sample-data.
Add comment