This repository provides social media components for Plone and Volto.
It includes:
plonegovbr.socialmedia: A Python package for Plone Dexterity behaviors.@plonegovbr/volto-social-media: A React package for Volto components and widgets.
Ensure you have the following installed:
- UV 🐍 (Python dependency manager)
- Node.js 22 🟩
- pnpm 🧶 (JavaScript package manager)
- Docker 🐳 (Containerized environment)
- Clone the repository:
git clone [email protected]:plonegovbr/social-media.git
cd social-media- Install all dependencies:
make install- Create a new Plone site:
make backend-create-site- Start the Backend (Plone) at http://localhost:8080/:
make backend-start- In a separate terminal, start the Frontend (Volto) at http://localhost:3000/:
make frontend-startVoilà! Your Plone site should now be live. 🎉
Deploy a full local Docker Compose stack with:
- Backend (Plone)
- Frontend (Volto)
- Traefik Router
- Postgres Database
Run:
make stack-start
make stack-create-siteYour site will be available at http://social-media.localhost. 🌐
This monorepo contains:
| Path | Package | Description |
|---|---|---|
backend/ |
plonegovbr.socialmedia |
Python package for Plone behaviors |
frontend/ |
@plonegovbr/volto-social-media |
React package for Volto components |
Run:
make checkThis will verify code formatting, linting, and quality for both backend and frontend.
Run:
make format| Section | Tool | Description | Config File |
|---|---|---|---|
| Backend | Ruff | Python formatting and imports sorting | backend/pyproject.toml |
| Backend | zpretty | XML and ZCML formatting | -- |
| Frontend | ESLint | JavaScript/TypeScript lint fixing | frontend/.eslintrc.js |
| Frontend | Prettier | JavaScript/TypeScript formatting | frontend/.prettierrc |
| Frontend | Stylelint | Stylesheet (CSS/LESS/SASS) formatting | frontend/.stylelintrc |
Formatters can also be run individually inside backend/ and frontend/.
Run:
make lint| Section | Tool | Description | Config File |
|---|---|---|---|
| Backend | Ruff | Python code linting and import sorting | backend/pyproject.toml |
| Backend | Pyroma | Python package metadata checking | -- |
| Backend | check-python-versions | Python versions metadata checking | -- |
| Backend | zpretty | XML and ZCML structure checking | -- |
| Frontend | ESLint | JavaScript/TypeScript lint checking | frontend/.eslintrc.js |
| Frontend | Prettier | JavaScript/TypeScript formatting checking | frontend/.prettierrc |
| Frontend | Stylelint | CSS/LESS/SASS linting | frontend/.stylelintrc |
Linters can also be run separately inside backend/ and frontend/.
Extract and sync i18n messages:
make i18nThis will update translation files for both Plone (backend) and Volto (frontend).
Maintained by the PloneGov-Br Community 🇧🇷❤️.