Written in English. Automatic translation available.

Complete free course · 56 lessons

Professional Joomla 6 Development

Learn to build components, modules, plugins and libraries for the frontend and administrator. Step by step, with every file explained, full source code and installable downloads.

Planned start: 11 January 2027. Free access to lessons and code. No signup required.

Your skills. One connected project.

Build a real resource portalPractise with Nicode Resource Hub: a catalogue of resources and activities with categories, permissions and editorial approval.
ComponentsAdministrator, frontend and API
ModulesUseful content across your site
PluginsEvents and integrations
LibrariesReusable, tested logic

Learn each extension from a clear starting point, then connect the pieces.

56 practical lessonsFrom your first file to a complete package
Frontend + administratorDevelop for both sides of Joomla
Full code + ZIPsRead it, install it and test it yourself

Learn by building

Understand every step. Build extensions you can maintain.

You will learn how Joomla extensions work and how to design, connect, test and distribute them. Nicode Resource Hub is the practical project running through the course: each new skill adds a useful capability to a resource portal you can continue developing.

Start from the first file

Follow complete instructions with file paths, full code, explanations, expected results and help with common errors. Understand why each part exists and how it works.

Choose a clear entry point

Learn the standalone module without first building the component. Where an integration needs another extension, use the supplied starting package and explicit prerequisites.

Practise professional development

Work with permissions, validation, accessibility, tests, upgrades and packaging. Each lesson connects its explanation to the same version of the source code and installable download.

Your learning path

From your first ZIP to a maintainable release.

Explore the 56 planned lessons below. The course covers individual extensions and their integration into a complete application. Lesson links and downloads will appear here as they are released.

01–04Foundations
  1. The project, its architecture and how the extensions fit together.
  2. A reproducible environment, exact versions, sample data and debugging.
  3. Namespaces, PSR-4, dependency injection, service providers and the request lifecycle.
  4. Your first installable ZIP: manifest, languages, licence and installation checks.
05–08Modules
  1. Build a standalone frontend module with configurable resources.
  2. Module forms, subforms, layouts and translations.
  3. Web Asset Manager, JavaScript, accessibility, caching and AJAX.
  4. Build an administrator module with dashboard information and permissions.
09–12Libraries and your first plugins
  1. A content plugin that works with native Joomla articles.
  2. Typed events, subscribers, execution contexts and plugin tests.
  3. An installable library: autoloading, Composer, interfaces and tests.
  4. Interchangeable data sources: manual entries, Joomla articles and optional integration.
13–25A complete component
  1. A minimal MVC component for the administrator and the site.
  2. Database design and versioned schema migrations.
  3. Administrator lists, filters, sorting and pagination.
  4. Forms, validation, saving and error handling.
  5. Action and record permissions, ownership and access levels.
  6. Categories, tags and custom fields.
  7. States, record locking, concurrent editing and batch operations.
  8. Public catalogue and resource pages with reusable layouts.
  9. Frontend creation and editing with permissions and request protection.
  10. Menus, routing, SEF URLs, canonical URLs and metadata.
  11. Multilingual content and associations.
  12. Content history and approval workflows.
  13. Files, media, protected downloads and upload limits.
26–39Plugins and integrations
  1. A custom field for resource information.
  2. An editor button to select and insert resources.
  3. Smart Search indexing that respects language and access.
  4. Scheduled tasks with locking and retries.
  5. Console commands for imports and diagnostics.
  6. Web services with authentication, authorisation and pagination.
  7. Privacy: inventory, export and erasure of extension data.
  8. Action logs without exposing secrets.
  9. Workflow transitions and notifications.
  10. User preferences and lifecycle events.
  11. System plugins: context, event order and performance.
  12. Authentication and MFA in an isolated lab, including recovery.
  13. Media action plugins: processing and validation.
  14. Custom events and versioned integration contracts.
40–44Presentation and onboarding
  1. A frontend child template and overrides.
  2. An administrator child template and an accessible dashboard.
  3. Installable language packs and complete English and Spanish interface translations.
  4. File extensions for your own assets without overwriting third-party files.
  5. Sample data and guided tours with controlled installation and removal.
45–50Bringing the product together
  1. Validated batch imports and exports with repeatable operations.
  2. Email templates, notifications and delivery limits.
  3. Performance: queries, indexes, cache segmentation and invalidation.
  4. The full package: dependencies, installation order, coexistence and uninstallation.
  5. HTTPS update servers, XML, compatibility declarations and checksums.
  6. Schema upgrades, recovery from backups and data retention.
51–56Testing and distribution
  1. Unit tests and integration tests with Joomla.
  2. Browser tests for frontend, administration, mobile, accessibility and denied access.
  3. Continuous integration, a compatibility matrix and reproducible builds.
  4. Security, dependencies, licences and JED Checker.
  5. A stable release: downloads, documentation, support and JED submission preparation.
  6. Maintenance through Joomla updates, deprecations and future major versions.

How to follow the course

One lesson a day. Your own pace.

11 January–7 March 2027

Planned release schedule: 56 daily lessons, including weekends. Follow each new instalment or return to earlier lessons whenever you need them.

Read, build and check

Use the full explanation, code and downloadable package to reproduce each result on your own Joomla installation.

Keep the materials

Lessons will be public on NicolauRoca.dev, with the course sources on GitHub and installable ZIPs for the relevant milestones. No email needed to access them.

Before you begin

What should I already know?

You should already know basic PHP, HTML and CSS, and be comfortable using Joomla. We build the extensions from scratch; this is not an introduction to programming or to using Joomla.

Is the whole course free?

Yes. All lessons, course source code and installable downloads will be freely accessible. You will not need to subscribe or provide your email to use them.

What language is the course in?

The original lessons are written in English, like the rest of NicolauRoca.dev. Google Translate provides automatic translations. Technical identifiers and code should be used in their original form.

Will it work with future Joomla versions?

The course targets Joomla 6. Each release will state the versions it has been tested with. The project will evolve with Joomla; compatibility with future releases will be declared after testing.

Is this an official Joomla course?

This is an independent course by Nicolau Roca. You will learn to work with Joomla APIs and standards, including preparation of suitable extensions for the Joomla Extensions Directory. It does not offer Joomla certification or guarantee directory acceptance.