# Homepage Blocks

**URL:** https://meta.discourse.org/t/homepage-blocks/347066
**Category:** Theme component
**Created:** [January 14, 2025, 1:32pm UTC](https://meta.discourse.org/t/homepage-blocks/347066 "2025-01-14T13:32:21Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![manuel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/manuel/32/468169_2.png) [@manuel](https://meta.discourse.org/u/manuel)
#### Post date: [January 14, 2025, 1:32pm UTC](https://meta.discourse.org/t/homepage-blocks/347066/1 "2025-01-14T13:32:21Z")

</div>

| | | |
| --- | --- | --- |
| ℹ | **Summary** | Build a custom homepage with configurable block components |
| 🛠 | **Repository** | [Manuel Kostka / Discourse / Blocks / Homepage Blocks · GitLab](https://gitlab.com/manuelkostka/discourse/blocks/homepage-blocks) |
| ❓ | **Install Guide** | [How to install a theme or theme component](https://meta.discourse.org/t/how-do-i-install-a-theme-or-theme-component/63682) |
| 📖 | **New to Discourse Themes?** | [Beginner’s guide to using Discourse Themes](https://meta.discourse.org/t/beginners-guide-to-using-discourse-themes/91966) |

Install this theme component

This component combines features from [Right Sidebar Blocks](https://meta.discourse.org/t/right-sidebar-blocks/231067) and the [custom homepage route](https://github.com/discourse/discourse/pull/26291). It initializes the route and allows you to organize content blocks on the homepage, offering flexibility in layout and content presentation.

Below are two example views: the first shows a homepage with basic blocks stacked on top of each other, while the second demonstrates the same layout with custom styles applied:

 ![Screenshot 2025-01-14 at 10-40-23 Homepage Blocks](https://global.discourse-cdn.com/meta/original/4X/e/9/e/e9e0af5eaefec3190f6205580e38986b56b61c83.png)  
 ![Screenshot 2025-01-14 at 10-41-01 Homepage Blocks](https://global.discourse-cdn.com/meta/original/4X/6/6/c/66c135134a810161a82e8933256a6b055bf8a8e9.png)

## Editing blocks

You can customize blocks through the component settings. Each block is added by specifying its Ember component name:

 ![A screenshot of an interface with multiple dropdown menus and name inputs labeled "block-banner", "block-top-tags", and "block-upcoming-events", among others. (Captioned by AI)](https://global.discourse-cdn.com/meta/original/4X/c/a/9/ca9e085a11fb68de117690d36f01e2cd5aef7aa5.png)

After adding a block, you can adjust its properties using available parameters:

 ![The image shows a user interface with text fields for a "block banner," including title, subtitle, and class options. (Captioned by AI)](https://global.discourse-cdn.com/meta/original/4X/8/4/c/84c2481963ed879343752e94dbafc5713679198d.png)

## Available blocks

You can add any Ember component using its component name. Additionally, I have a collection of blocks available at [Blocks · GitLab](https://gitlab.com/manuelkostka/discourse/blocks). These are primarily variations from Right Sidebar Blocks.

For detailed information on each block, like the component name, available parameters and template layout, refer to their `README` file.

 ![A documentation page for the "Featured List" block component, detailing parameters and template code for creating a featured list with multiple filters. (Captioned by AI)](https://global.discourse-cdn.com/meta/original/4X/8/d/3/8d3bcdc31d60387297f8c46717def65bca7da4d7.png)

---

<div class="post-metadata">

### Author: ![Arkshine](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/arkshine/32/298682_2.png) [@Arkshine](https://meta.discourse.org/u/Arkshine)
#### Post date: [January 14, 2025, 8:38pm UTC](https://meta.discourse.org/t/homepage-blocks/347066/2 "2025-01-14T20:38:37Z")

</div>

This is really cool, Manuel, good job! 👍

---

<div class="post-metadata">

### Author: ![jrgong](https://avatars.discourse-cdn.com/v4/letter/j/c57346/32.png) [@jrgong](https://meta.discourse.org/u/jrgong)
#### Post date: [July 21, 2025, 12:10pm UTC](https://meta.discourse.org/t/homepage-blocks/347066/3 "2025-07-21T12:10:15Z")

</div>

@manuel could this also be used to create custom pages and add them to the sidebar navigation?

---

<div class="post-metadata">

### Author: ![manuel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/manuel/32/468169_2.png) [@manuel](https://meta.discourse.org/u/manuel)
#### Post date: [July 21, 2025, 12:30pm UTC](https://meta.discourse.org/t/homepage-blocks/347066/4 "2025-07-21T12:30:03Z")

</div>

This is a layout solution for the custom homepage route. Of course you can use something similar on other new routes. But creating these routes and integrating them in your app is a different task.

---

<div class="post-metadata">

### Author: ![xin\_wei](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/xin_wei/32/520178_2.png) [@xin\_wei](https://meta.discourse.org/u/xin_wei)
#### Post date: [September 4, 2025, 10:01am UTC](https://meta.discourse.org/t/homepage-blocks/347066/7 "2025-09-04T10:01:40Z")

</div>

```plaintext
Error: Attempted to resolve a dynamic component with a string definition, `block-banner` in a strict mode template. In strict mode, using strings to resolve component definitions is prohibited. You can instead import the component definition and use it directly.

```

I have this error

---

<div class="post-metadata">

### Author: ![manuel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/manuel/32/468169_2.png) [@manuel](https://meta.discourse.org/u/manuel)
#### Post date: [September 4, 2025, 12:05pm UTC](https://meta.discourse.org/t/homepage-blocks/347066/8 "2025-09-04T12:05:57Z")

</div>

Thanks for reporting @xin_wei. Though I can’t reproduce, on Discourse version 3.6.0.beta1-dev and using my block component from [Manuel Kostka / Discourse / Blocks / Banner · GitLab](https://gitlab.com/manuelkostka/discourse/blocks/banner).
