Hello World plugin returns blank page on /hello/ route

Hi, I’m trying to integrate a simple “Hello World” plugin where the /hello/ path should just display “Hello World.”

I followed this documentation: How to create a plugin app — edx-django-utils 8.0.0 documentation

I first created a plugin using the cookiecutter template, then added a function in views.py that returns “Hello World,” and mapped it to the /hello/ route in urls.pyof my plugin. I also updated setup.py to include the entry point, added the plugin config, and then installed the repo inside the LMS container using pip install.

Here’s my plugin repo: GitHub - zeuslearning-utsav-jariwala/hello-world-plugin

However, when I visit http://apps.local.openedx.io/hello/, I just see a blank page instead of the expected message.

Hello @utsavjari

In your apps.py you currently have:

plugin_app = {
    'url_config': {
        'lms.djangoapp': {
            'namespace': name,
            'regex': f'^{name}/',
            'relative_path': 'urls',
        },
    },

Since name = "hello_world", the regex becomes ^hello_world/.
That means your URL is mounted at: http://apps.local.openedx.io/hello_world/

But you’ve been visiting /hello/, which is why you only see a blank page.

You have two options:

Option 1: Keep it at /hello_world/
No code changes needed. Just visit:
http://apps.local.openedx.io/hello_world/

Option 2: Mount at /hello/ (what you expected):

Update apps.py like this:

class HelloWorldConfig(AppConfig):
    name = 'hello_world'
    domain_name = 'hello_world'
    verbose_name = 'hello world plugin'

    plugin_app = {
        'url_config': {
            'lms.djangoapp': {
                'namespace': 'hello',
                'regex': r'^hello/',
                'relative_path': 'urls',
            },
        },
    }

Now you’ll hit: http://apps.local.openedx.io/hello/

Let me know if it will help