Create a project page and admin page that enables the project page per project -not to all projects

Hello team
I have been playing the last days with the forge apps and i manage to setup either a project page, or an admin page or other modules,deploy and install them.

What i wanted to do is to make one project page with an admin page that will allow me to enable the app in selected projects(saying the app in reality it is the project page)

I know i can setup one of the templates and then enhance the manifest to include the additinoal module i want
I findit very difficult to understand what the structure should be of the files/project, and what to include in each
Could you please suggest a working solution which will showcase the manifest, and any structure with what files i shuld create and in top level what they should include?
Thanks in advance

Hi @MichailKotantakis,

Thanks for your question and apologies for the slow reply.

I can share an example of a manifest with multiple modules, and the corresponding project structure (this is a confluence app, which uses every possible confluence module):

manifest.json:

  confluence:contentAction:
    - key: conf-module-demo-content-action
      resource: contentAction
      resolver:
        function: resolver
      render: native
      title: CME Content Action
  confluence:contentBylineItem:
    - key: conf-module-demo-content-byline-item
      resource: contentBylineItem
      resolver:
        function: resolver
      render: native
      title: CME Content Byline Item
  confluence:contextMenu:
    - key: conf-module-demo-context-menu
      resource: contextMenu
      render: native
      resolver:
        function: resolver
      title: CME Context Menu
  confluence:homepageFeed:
    - key: conf-module-demo-homepage-feed
      resource: homepageFeed
      render: native
      resolver:
        function: resolver
      title: CME Homepage Feed
  confluence:spacePage:
    - key: conf-module-demo-space-page
      resource: spacePage
      resolver:
        function: resolver
      render: native
      title: CME Space Page
      route: conf-space-page
  confluence:spaceSettings:
    - key: conf-module-demo-space-settings
      resource: spaceSettings
      render: native
      resolver:
        function: resolver
      title: CME Space Settings
      route: conf-space-settings
  macro:
    - key: conf-module-demo-macro
      resource: macro
      render: native
      resolver:
        function: resolver
      title: CME Macro
  confluence:globalPage:
    - key: conf-module-demo-global-page
      resource: globalPage
      render: native
      resolver:
        function: resolver
      title: CME Global Page
      route: conf-global-page
  confluence:globalSettings:
    - key: conf-module-demo-global-settings
      resource: globalSettings
      render: native
      resolver:
        function: resolver
      title: CME Global Settings
  function:
    - key: resolver
      handler: index.handler
resources:
  - key: contentAction
    path: src/frontend/contentAction.jsx
  - key: contentBylineItem
    path: src/frontend/contentBylineItem.jsx
  - key: contextMenu
    path: src/frontend/contextMenu.jsx
  - key: homepageFeed
    path: src/frontend/homepageFeed.jsx
  - key: macro
    path: src/frontend/macro.jsx
  - key: globalPage
    path: src/frontend/globalPage.jsx
  - key: globalSettings
    path: src/frontend/globalSettings.jsx
  - key: spacePage
    path: src/frontend/spacePage.jsx
  - key: spaceSettings
    path: src/frontend/spaceSettings.jsx
app:
  runtime:
    name: nodejs20.x
  id: <run forge register to get your id>

And this is how my project and files are structured:

I hope this helps to explain how to create multi module apps.