Contributing#

The repository is a monorepo holding both packages and this documentation.

Path

Holds

backend/

plonegovbr.socialmedia

frontend/packages/volto-social-media/

@plonegovbr/volto-social-media

docs/

This documentation

Report problems and propose changes on GitHub.

Set up#

You need uv, Node.js 24, and pnpm.

Install both packages from the repository root.

make install

The backend's installation also creates a site with the example content. To create it again from scratch, run the following command.

DELETE_EXISTING=1 make backend-create-site

Run#

Start the backend at http://localhost:8080.

make backend-start

In a second terminal, start the frontend at http://localhost:3000.

make frontend-start

Log in with the username admin and the password admin.

Test#

Run both test suites from the repository root.

make test

Or run one of them.

make backend-test
make frontend-test

To see the backend's test coverage, run the following commands.

cd backend
make test-coverage

To check the types of the frontend add-on, run the following commands. The check leaves out tests and stories.

cd frontend
pnpm typecheck

Format and lint#

make format
make lint

make lint also checks the types of the frontend add-on, as continuous integration does.

Storybook#

Every component has stories next to its source, in *.stories.tsx files. Start Storybook at http://localhost:6006.

cd frontend
make storybook-start

The published Storybook is at plonegovbr.github.io/social-media/storybook.

Documentation#

This documentation is written in MyST, and structured following Diátaxis. Preview it while you edit.

cd docs
make livehtml

Before proposing a change, build it and run the checks continuous integration runs.

cd docs
make html
make linkcheckbroken
make vale

Changelog#

Every change carries a news fragment, in the folder of the part it changes.

Part

Folder

The repository

news/

plonegovbr.socialmedia

backend/news/

@plonegovbr/volto-social-media

frontend/packages/volto-social-media/news/

Name a fragment after its issue, as 42.bugfix, or with a short slug, as +new-network.feature. Its type is one of breaking, feature, bugfix, internal, documentation, or tests.