JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 55
  • Score
    100M100P100Q109370F
  • License MIT

Frontend integration made easy. Use the Littlebox Strapi Suite plugin to enhance the admin panel with powerful tools that simplify content management and frontend integration.

Package Exports

  • @littlebox/strapi-suite/package.json
  • @littlebox/strapi-suite/strapi-admin
  • @littlebox/strapi-suite/strapi-server

Readme

✨ Features

  • Menus: powerful menu management tool to create, customize, and organize menus for seamless navigation.
  • Translations: simplify and organize string translations for efficient multilingual content management and smooth integration.
  • Slug: optimize URLs with smart, SEO-friendly slugs for better rankings and cleaner links effortlessly.
  • Sitemap: a way to set the properties to generate the sitemap.
  • Page attributes: a way to set page properties like templates or parent pages to automatically create full slugs.
  • Parameters: effortlessly manage and customize settings with a intuitive and flexible solution.

     

⏳ Installation

Install the plugin in your Strapi project.

# using yarn
yarn add @littlebox/strapi-suite

# using npm
npm install @littlebox/strapi-suite --save

     

🖐 Requirements

The full installation requirements are identical to those of Strapi and can be found in the Strapi Quick Start guide.

Supported Strapi versions:

  • Strapi ^5.0.0

     

💡 Usage

With this plugin, you can add new features to Strapi. It makes it easier to manage menus, create slugs, generate sitemaps, set public and private parameters, translate strings, and define page settings. Use our ready-to-go Next.js frontend to take advantage of these solutions.

Powerful menu management tool to create, customize, and organize menus for seamless navigation. Use drag and drop to build menus in a simple and intuitive way.

Menu

Menu edit

Menu edit metadata

To get the data from the frontend, use your preferred HTTP client:

GET /api/littlebox-strapi-suite/modules/menus?locale=<LOCALE>
[
    {
        "id": 1,
        "documentId": "rvycb4q234yqz47g1v69mzkm",
        "title": "Header",
        "uid": "header",
        "locale": "en",
        "createdAt": "2025-04-13T19:43:24.092Z",
        "updatedAt": "2025-04-13T19:48:35.207Z",
        "publishedAt": "2025-04-13T19:43:24.092Z",
        "children": [
            {
                "id": 1,
                "documentId": "k6phd1g4cf7ysqw527ok78d5",
                "menuId": "rvycb4q234yqz47g1v69mzkm",
                "parentId": null,
                "title": "Experiences",
                "url": "experiences",
                "target": "_self",
                "order": 1,
                "metadata": {},
                "createdAt": "2025-04-13T19:48:35.216Z",
                "updatedAt": "2025-04-13T19:48:35.216Z",
                "publishedAt": "2025-04-13T19:48:35.216Z",
                "children": [
                    {
                        "id": 2,
                        "documentId": "leb5vbdlthaw9uvbfo8njwsv",
                        "menuId": "rvycb4q234yqz47g1v69mzkm",
                        "parentId": "1",
                        "title": "Dolphin Watching",
                        "url": "experiences/dolphin-watching",
                        "target": "_blank",
                        "order": 1,
                        "metadata": {},
                        "createdAt": "2025-04-13T19:48:35.224Z",
                        "updatedAt": "2025-04-13T19:48:35.224Z",
                        "publishedAt": "2025-04-13T19:48:35.225Z",
                        "children": []
                    }
                ]
            },
            {
                "id": 3,
                "documentId": "zakerhh8fx912il34lxkj04f",
                "menuId": "rvycb4q234yqz47g1v69mzkm",
                "parentId": null,
                "title": "Transfer",
                "url": "transfer",
                "target": "_self",
                "order": 2,
                "metadata": {},
                "createdAt": "2025-04-13T19:48:35.234Z",
                "updatedAt": "2025-04-13T19:48:35.234Z",
                "publishedAt": "2025-04-13T19:48:35.234Z",
                "children": []
            }
        ]
    }
]

     

Translations

Simplify and organize string translations for efficient multilingual content management and smooth integration.

Translation

To get the data from the frontend, use your preferred HTTP client:

GET /api/littlebox-strapi-suite/modules/translations
[
    {
        "id": 5,
        "uid": "About us",
        "translations": {
            "en": "About us",
            "pt": "Sobre nós"
        }
    },
    {
        "id": 3,
        "uid": "Book now",
        "translations": {
            "en": "Book now",
            "pt": "Reserve agora"
        }
    }
]

     

Slug

Optimize URLs with smart, SEO-friendly slugs for better rankings and cleaner links effortlessly.

Slug

Slug edit

Slug attach

Slug custom field

Slug settings

This lets you get data from a document (either a collection or single content) using the slug. To get the data from the frontend, use your preferred HTTP client:

GET /api/littlebox-strapi-suite/modules/pages?slug=<SLUG>
{
    "document": {
        "id": 26,
        "documentId": "i111r5p3pa73r6tm71b7lh86",
        "title": "Littlebox Suite helped me build websites faster",
        "slug": "news/littlebox-suite-helped-me-build-websites-faster",
        "createdAt": "2025-04-13T21:32:18.148Z",
        "updatedAt": "2025-04-13T21:50:12.142Z",
        "publishedAt": "2025-04-13T21:50:12.161Z",
        "locale": "en",
        "localizations": [
            {
                "id": 27,
                "documentId": "i111r5p3pa73r6tm71b7lh86",
                "title": "Littlebox Suite ajudou-me a construir sites mais rápido",
                "slug": "pt/noticias/littlebox-suite-ajudou-me-a-construir-sites-mais-rapido",
                "createdAt": "2025-04-13T21:37:55.693Z",
                "updatedAt": "2025-04-13T22:05:35.160Z",
                "publishedAt": "2025-04-13T22:05:35.185Z",
                "locale": "pt"
            }
        ]
    }
}

Note: The default language won't show up in the URL slug if the SHOW LANGUAGE SLUG setting is turned off in the slug module settings (see screenshot above).

Using the slug module settings (as shown in the screenshot above), you can choose which content will be set as the homepage. Then, just call the API to get the data:

GET /api/littlebox-strapi-suite/modules/pages/home?properties=attributes

The return will be the content in the default language and the respective localizations:

{
    "document": {
        "id": 53,
        "documentId": "un6hqh6smm657hwf0n06xm72",
        "title": "Home PT",
        "slug": "",
        "createdAt": "2025-04-14T19:38:34.673Z",
        "updatedAt": "2025-04-14T22:19:21.242Z",
        "publishedAt": "2025-04-14T22:19:21.270Z",
        "locale": "pt",
        "localizations": [
            {
                "id": 59,
                "documentId": "un6hqh6smm657hwf0n06xm72",
                "title": "Home EN",
                "slug": "en",
                "createdAt": "2025-04-14T22:19:29.371Z",
                "updatedAt": "2025-04-14T23:45:50.177Z",
                "publishedAt": "2025-04-14T23:45:50.210Z",
                "locale": "en"
            },
            {
                "id": 61,
                "documentId": "un6hqh6smm657hwf0n06xm72",
                "title": "Home EU",
                "slug": "en-eu",
                "createdAt": "2025-04-15T10:49:50.490Z",
                "updatedAt": "2025-04-15T10:49:51.244Z",
                "publishedAt": "2025-04-15T10:49:51.263Z",
                "locale": "en-EU"
            }
        ]
    },
    "attributes": {
        "template": "default",
        "priority": "0.5",
        "frequency": "weekly"
    }
}

     

Page Attributes

A way to set page properties like templates or parent pages to automatically create full slugs.

Page Attributes

Page Attributes slug

Page Attributes parent

To get the data from the frontend, use your preferred HTTP client:

GET /api/littlebox-strapi-suite/modules/pages?slug=<SLUG>&properties=attributes
{
    "document": {
        "id": 26,
        "documentId": "i111r5p3pa73r6tm71b7lh86",
        "title": "Littlebox Suite helped me build websites faster",
        "slug": "news/littlebox-suite-helped-me-build-websites-faster",
        "createdAt": "2025-04-13T21:32:18.148Z",
        "updatedAt": "2025-04-13T21:50:12.142Z",
        "publishedAt": "2025-04-13T21:50:12.161Z",
        "locale": "en",
        "localizations": [
            {
                "id": 27,
                "documentId": "i111r5p3pa73r6tm71b7lh86",
                "title": "Littlebox Suite ajudou-me a construir sites mais rápido",
                "slug": "pt/noticias/littlebox-suite-ajudou-me-a-construir-sites-mais-rapido",
                "createdAt": "2025-04-13T21:37:55.693Z",
                "updatedAt": "2025-04-13T22:05:35.160Z",
                "publishedAt": "2025-04-13T22:05:35.185Z",
                "locale": "pt"
            }
        ]
    },
    "attributes": {
        "template": "default",
        "priority": "0.5",
        "frequency": "never",
        "parent": {
            "id": "wnzxub0s3ghckznjdkshgcw7",
            "model": "api::page.page"
        }
    }
}

     

Sitemap

A way to set the properties for generating the sitemap on the frontend. To get the data from the frontend, use your preferred HTTP client:

GET /api/littlebox-strapi-suite/modules/pages?properties=attributes
[
    {
        "id": 69,
        "documentId": "un6hqh6smm657hwf0n06xm72",
        "slug": "",
        "locale": "pt",
        "updatedAt": "2025-04-14T22:19:21.283Z",
        "attributes": {
            "template": "default",
            "priority": "0.5",
            "frequency": "weekly"
        },
        "localizations": [
            {
                "id": 74,
                "documentId": "un6hqh6smm657hwf0n06xm72",
                "slug": "en",
                "locale": "en",
                "updatedAt": "2025-04-14T23:45:50.237Z",
                "attributes": {
                    "template": "default",
                    "priority": "0.5",
                    "frequency": "weekly"
                }
            },
            {
                "id": 76,
                "documentId": "un6hqh6smm657hwf0n06xm72",
                "slug": "en-eu",
                "locale": "en-EU",
                "updatedAt": "2025-04-15T10:49:51.275Z",
                "attributes": {
                    "template": "default",
                    "priority": "0.5",
                    "frequency": "weekly"
                }
            }
        ]
    },
    {
        "id": 59,
        "documentId": "wgobkq9xr8bxtdwz4bcjx69y",
        "slug": "noticias/littlebox-suite-ajudou-me-a-construir-sites-mais-rapido",
        "locale": "pt",
        "updatedAt": "2025-04-13T23:58:16.975Z",
        "attributes": {
            "template": "default",
            "priority": "0.5",
            "frequency": "weekly",
            "parent": {
                "id": "p49dnxpwf5lcvd56dym1895d",
                "model": "api::page.page"
            }
        },
        "localizations": [
            {
                "id": 54,
                "documentId": "wgobkq9xr8bxtdwz4bcjx69y",
                "slug": "en/news/littlebox-suite-helped-me-build-websites-faster",
                "locale": "en",
                "updatedAt": "2025-04-13T23:11:36.047Z",
                "attributes": {
                    "template": "default",
                    "priority": "0.5",
                    "frequency": "weekly",
                    "parent": {
                        "id": "p49dnxpwf5lcvd56dym1895d",
                        "model": "api::page.page"
                    }
                }
            },
            {
                "id": 65,
                "documentId": "wgobkq9xr8bxtdwz4bcjx69y",
                "slug": "en-eu/news/littlebox-suite-helped-me-build-websites-faster",
                "locale": "en-EU",
                "updatedAt": "2025-04-14T01:15:31.193Z",
                "attributes": {
                    "template": "default",
                    "priority": "0.9",
                    "frequency": "weekly",
                    "parent": {
                        "id": "p49dnxpwf5lcvd56dym1895d",
                        "model": "api::page.page"
                    }
                }
            }
        ]
    },
    {
        "id": 68,
        "documentId": "p49dnxpwf5lcvd56dym1895d",
        "slug": "noticias",
        "locale": "pt",
        "updatedAt": "2025-04-14T20:10:06.388Z",
        "attributes": {
            "template": "default",
            "priority": "0.5",
            "frequency": "weekly"
        },
        "localizations": [
            {
                "id": 52,
                "documentId": "p49dnxpwf5lcvd56dym1895d",
                "slug": "en/news",
                "locale": "en",
                "updatedAt": "2025-04-13T23:11:21.477Z",
                "attributes": {
                    "template": "default",
                    "priority": "0.5",
                    "frequency": "weekly"
                }
            },
            {
                "id": 63,
                "documentId": "p49dnxpwf5lcvd56dym1895d",
                "slug": "en-eu/news",
                "locale": "en-EU",
                "updatedAt": "2025-04-14T01:15:01.792Z",
                "attributes": {
                    "template": "default",
                    "priority": "0.9",
                    "frequency": "daily"
                }
            }
        ]
    }
]

If you prefer, you can use our ready-to-go Next.js frontend as a base, which already implements these solutions.

     

Parameters

Effortlessly manage and customize settings with a intuitive and flexible solution.

Parameter

Parameter list

To get the data from the frontend, use your preferred HTTP client:

GET /api/littlebox-strapi-suite/modules/parameters
[
    {
        "uid": "recaptcha-public-key",
        "value": "iuyTYYT7ybknokdiuYTtdjapodu"
    }
]

This request will only return public parameters. To get the private parameters from the Strapi backend (e.g. for use in other plugins), use the @strapi/strapi/admin library:

import { getFetchClient } from '@strapi/strapi/admin';
const { get } = getFetchClient();
const data = await get('/littlebox-strapi-suite/admin/parameters');

     

🤝 Contributing

Feel free to fork and make a pull request of this plugin. All the input is welcome!

     

⭐️ Show your support

Give a star if this project helped you.

     

     

🌎 Community support

     

📝 Resources