Want to share what you know without a full learning management system? Heavy LMS setups can mean extra database records, student login barriers, and more complex page caching. No LMS keeps course building simple. Turn any standard WordPress post into an interactive, distraction-free course using nat
PricingFree downloadThe WordPress.org download is free. Pro versions, add-ons or external services may cost extra.
CompatibilityRequires WordPress 6.3 and PHP 7.2.5.
SourceWordPress plugins · Nov 15, 2026
01 / Source details
Aboutthistool.
Want to share what you know without a full learning management system? Heavy LMS setups can mean extra database records, student login barriers, and more complex page caching. No LMS keeps course building simple.
Turn any standard WordPress post into an interactive, distraction-free course using native Gutenberg blocks in minutes. Add modules and lessons, publish, and let readers track their progress without creating an account. Progress stays in their browser, with no server-side progress records to clutter your database.
Feature highlights
Native Gutenberg blocks: Build your course with Module and Lesson blocks, using ordinary WordPress blocks for lesson content.
Zero login friction: Guests can mark lessons complete. Browser-based local progress tracking keeps their place between visits.
100% cache & CDN friendly progress: Completion is saved locally, with no dynamic session queries for progress. Public course pages can use full-page caching and a CDN.
Clean standalone layout: Give learners a focused reading experience with lesson navigation and a customizable accent color. Sidebar and horizontal layouts are also available.
Non-destructive: Course posts keep their original URLs and post content. Build on an existing post without starting over.
Accessible & robust: The full course remains readable when JavaScript is disabled. JavaScript and browser storage enable interactive progress tracking.
Best used for
Free mini-courses and lead magnets.
Step-by-step developer documentation and software onboarding.
Multi-part blog tutorials.
Internal employee training and standard operating procedure (SOP) training, on a site with appropriate access controls.
How it works
01Open an existing post or create a new one in the block editor.
03Keep existing blocks above the modules as an introduction, or move them into lessons.
04Add a Module block, set its title, and add Lesson blocks inside it.
05Add ordinary WordPress blocks such as paragraphs, images, and embeds inside each lesson.
06Publish or update the post. Each lesson needs content and a unique ID; the editor assigns IDs automatically, including fresh IDs to duplicated lessons.
After activation, the No LMS welcome screen offers an optional demo course draft and lets you create a new course draft.
The Course Overview block lists every published course. Add it to a page if you want a course listing.
For a starting structure, insert the Course starter pattern from the block editor. It adds an introduction, one module, and two lessons. Replace its example text before publishing.
Choose a sidebar, horizontal, or Standalone course page layout in the Course panel. The standalone layout is selected by default and gives the course its own full page with a minimal header, large title, lesson navigation, and an accent color you can set per course. It keeps the post’s URL and content, but uses the plugin page design instead of the theme’s single-post template. Add a post excerpt to show a short description below its title. Existing blocks before the first module appear once on the course Overview. Readers then move through one focused lesson at a time, while the full course remains readable when JavaScript is unavailable. On small screens, readers can expand the lesson list when needed instead of scrolling past the whole outline.
Modules and lessons can be renamed or reordered. Progress remains tied to each lesson ID. Deleted lessons stop counting toward the current total.
Reading a course
Open the post as usual. The outline links to each lesson and shows the completed count and progress bar. Readers can use Mark complete or Mark incomplete at the end of a lesson. The choice is saved in this browser’s local storage. Clearing site data also clears progress. JavaScript and browser storage are needed to save progress.
WordPress 6.3 or later and PHP 7.2.5 or later are required. The editor and reader scripts are built before packaging the plugin, as described below.
Source code and build instructions
The readable source code for the generated JavaScript and CSS in frontend/dist/ is included in this plugin under /frontend/. Run npm ci && npm run build to rebuild the artifacts.
Data retention
The plugin does not store lesson progress on the server. Browser progress remains until the reader clears site data. Uninstalling the plugin keeps its data by default. In No LMS > Settings, enable “Delete No LMS data when the plugin is uninstalled” to remove plugin settings, course flags, layouts, accent colors, and demo markers when deleting the plugin. On multisite, this preference applies separately per site. Posts, pages, demo courses, and lesson content are always kept. Deactivation does not remove data.
See it in action
Screenshots & previews.
A focused lesson with ordinary WordPress content, lesson navigation, and the Mark complete control.Building a course in the WordPress block editor with Module and Lesson blocks and ordinary blocks inside each lesson.The No LMS welcome screen with getting-started guidance and an optional demo course draft.
02 / Source details
Gettingstarted.
01Upload the no-lms directory to /wp-content/plugins/ .
02Activate No LMS through the WordPress Plugins screen.
03Open No LMS in the admin menu.
The welcome screen appears after activation. You can create the optional demo draft there or open an existing post and enable Course in its document settings.
03 / Source details
Frequently asked questions.
Where can I get support or request a feature?
For help, to report an issue, or to submit a feature request, visit No LMS support or use the WordPress forum.
Can I turn an existing blog post into a course without losing SEO?
Yes. Enable Course in the post’s document settings, then add Module and Lesson blocks. Its URL and existing content remain intact, so you do not need a new URL or a redirect. Search rankings still depend on your content and other SEO factors.
Does this require students to register or log in?
No. Guests can read published courses and mark lessons complete without an account. No LMS saves completed lesson IDs in localStorage in the reader’s browser, rather than in your WordPress database. Progress stays in that browser and does not sync across devices. Clearing site data clears progress; JavaScript and browser storage must be available to save it.
Will it slow down my website?
No LMS uses native WordPress blocks and bundles its reader scripts, including Vue, with the plugin. It requires no external runtime downloads or hosted LMS service. Lesson progress is stored locally, with no server writes or dynamic session queries for completion tracking. Public course pages support static full-page caching and CDNs. Page speed still depends on your hosting, theme, lesson content, and embeds.
Does lesson progress sync across devices?
No. Progress is saved in the current browser’s local storage. Using another browser or device, or clearing site data, starts with no saved progress.
Can I use ordinary WordPress blocks in lessons?
Yes. Add paragraphs, images, embeds, and other WordPress blocks inside Lesson blocks.
What happens to my courses when I uninstall the plugin?
Posts, pages, and lesson content are kept. Plugin settings and course metadata are also kept unless you enable “Delete No LMS data when the plugin is uninstalled” in No LMS > Settings before deleting the plugin.
FinderPress Media Auditor helps site administrators scan for broken images, missing Media Library files, unreachable media URLs, and other media issues across WordPress content. Use it to audit images, video, audio, PDFs, featured images, and attachment files without sending scan data to an external
The Accepted Payment Methods plugin is a straightforward, lightweight solution that enhances your website by displaying visually appealing icons of the payment methods you accept. This plugin is ideal for a variety of websites, including e-commerce platforms, service-oriented websites, and informati