Local development
Set up the Olgax DXP monorepo locally - pnpm and Turborepo workspace layout, running the demo site, tests, lint and build, and how to open a good pull request.
Olgax DXP is open source, and contributions of every size are welcome. Come say hello on Discord if you want to talk through an idea before writing code.
Repository layout
A pnpm and Turborepo workspace at github.com/OLGAX-com/olgax-dxp:
apps/demo Reference Next.js + Payload + Puck site
apps/docs This documentation site (Fumadocs)
packages/payload-preset Payload collections and globals
packages/sdk registerComponent() and developer-facing APIs
packages/components Default component library
packages/datasource Collection, filter and limit data resolvers
packages/multi-tenancy Groundwork only: Sites collection and withSite() helper
packages/marketplace Groundwork only: component manifest schema and validation
create-olgax-site The CLI scaffolder and its project templateTemplate and demo stay in sync
create-olgax-site/template is what users get, and apps/demo is the reference site. Shared files between them are
kept identical. If you change one, apply the same change to the other.
Get set up
git clone https://github.com/OLGAX-com/olgax-dxp.git
cd olgax-dxp
pnpm install
cp apps/demo/.env.example apps/demo/.env # then set PAYLOAD_SECRET
pnpm --filter demo seed # admin user and a demo page
pnpm dev # all dev servers via TurborepoRequires Node.js 20.9 or newer and pnpm.
Open the demo at http://localhost:3000, and sign in with the seeded admin (see the
Quick start).
Run the docs site
pnpm --filter docs devDocs are MDX files in apps/docs/content/docs. Every page has an Edit on GitHub link. Add a page by creating an
.mdx file with title and description frontmatter, and list it in the folder's meta.json.
Before you open a PR
pnpm lint
pnpm build
pnpm testCI runs the same checks on every pull request.
Pull request tips
- Keep PRs focused: one component, one fix or one doc update.
- Explain why, not only what changed.
- If you touch a published package, add a changeset. See Releasing.
- Unsure whether an idea fits? Open an issue or ask on Discord first.
Code of conduct
Be respectful and constructive. This is a community project.
Questions, ideas or something not working?
Ask in our official Discord, open an issue on GitHub, or edit this page.
@olgax.com/payload-preset
Reference for @olgax.com/payload-preset - the Payload CMS collections and globals behind Olgax DXP - users, media, pages, sections, page views, webhooks and site settings.
Default components
Add a component to the shared @olgax.com/components library - a 15 minute walkthrough that builds a Spacer block with registerComponent and CSS tokens.