Skip to content

facundopadilla/plurist

Repository files navigation

Plurist

CI Python Node pnpm Docker License: MIT

Create and edit AI-generated content through code or visual tools—no coding required.

Plurist is an AI-first workspace for building social and marketing content: an HTML/CSS canvas with chat-assisted generation, optional Monaco editing, workspace-scoped AI providers, and design-bank workflows. Use the visual surface, the chat, or code—whichever fits your workflow.


Features

  • Canvas-first editing — tldraw-based compose experience with HTML shapes and live preview
  • AI chat — stream-assisted edits and generation against configurable providers (OpenAI, Anthropic, Gemini, OpenRouter, Ollama, etc.)
  • Code panel — Monaco-based editing when you want direct control over markup and styles
  • Workspace & roles — accounts, invites, and scoped resources
  • Design bank & rendering — asset ingestion and render pipeline integration (see API and docs/)

Prerequisites

Requirement Notes
Docker & Docker Compose Used for Postgres, Redis, MinIO, Mailpit, backend, Celery, and frontend
GNU Make Makefile wraps compose commands
uv (optional) Python toolchain for running backend tools locally outside Docker
pnpm (optional) For frontend scripts on the host

Installation

git clone git@github.com:facundopadilla/plurist.git
cd plurist
cp .env.example .env

Edit .env as needed. For local development, defaults in .env.example match the Docker Compose Postgres and MinIO users (plurist / plurist). Set provider API keys (OPENAI_API_KEY, ANTHROPIC_API_KEY, etc.) when you want live LLM calls.

Start the full stack (builds images, waits for health checks, seeds test accounts):

make up

Service URLs (default ports)

Service URL
Frontend (Vite) http://localhost:5173
Backend API http://localhost:8000
MinIO console http://localhost:9001
Mailpit (email dev) http://localhost:8025

Shut down (add -v in the Makefile / compose if you need to drop volumes):

make down

Development

Quality gates run in Docker (same as CI):

make lint             # Ruff (backend) + tsc + ESLint (frontend)
make test-backend     # pytest
make test-frontend    # Vitest

End-to-end tests (Playwright) need the stack running first:

make up
make test-e2e

Git hooks (optional)

From the repo root, after pnpm install:

pnpm hooks:precommit   # pre-commit on staged files
pnpm hooks:prepush       # broader checks (bandit, mypy, full eslint/tsc/ruff)

Local tooling without Docker (advanced)

  • Backend: uv run --project backend --extra dev pytest / ruff check backend
  • Frontend: cd frontend && pnpm install && pnpm run test / pnpm run typecheck / pnpm run lint

CI still validates via Docker images; match versions (Python 3.12, Node 22, pnpm 9) for consistent results.


Repository layout

backend/          # Django app, Celery, API (Ninja)
frontend/       # React + Vite + tldraw
docs/           # Specs, proposals, verification notes
docker-utils/   # Optional static-analysis compose (SonarQube, Semgrep)
scripts/        # CI / helper scripts

Documentation


License

This project is licensed under the MIT License. Third-party and library-specific notices (e.g. canvas components) are documented under docs/licenses/.

About

Create and edit AI-generated content through code or visual tools, no coding required.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors