---
canonical_url: "https://handbook.propay.co.za"
---
<u-page-hero headline="Handbook" orientation="horizontal">

![Developer Productivity](https://handbook.propay.co.za/assets/images/dev-productivity.svg)<template v-slot:title="">

Propay Developer Manual

</template>

<template v-slot:description="">

The PropaySystems System consists of processes and tools that Propay & sub companies use to achieve our purpose by coordinating efforts to develop software, create content and design products.

This site is our living documentation, used daily by our teams, and shared openly with anyone who finds it useful.

</template>

<template v-slot:links="">
<u-button color="neutral" size="xl" to="https://handbook.propay.co.za/guides/introduction" trailing-icon="i-lucide-arrow-right">

Get started

</u-button>

<u-button color="neutral" size="xl" to="https://github.com/PropaySystems" icon="simple-icons-github" variant="outline">

Open on GitHub

</u-button>
</template>
</u-page-hero>

<u-page-section headline="Sections">
<template v-slot:title="">

What's included in this Handbook

</template>

<template v-slot:features="">
<u-page-card :spotlight="true" icon="lucide:book" to="https://handbook.propay.co.za/guides/introduction">
<template v-slot:title="">

Guides

</template>

<template v-slot:description="">

A carefully crafted set of guides for building and shipping software the Propay way—from introduction and architecture to Laravel, testing, security, Git, and API conventions.

</template>
</u-page-card>

<u-page-card :spotlight="true" icon="lucide:clipboard-list" to="https://handbook.propay.co.za/analysis/introduction">
<template v-slot:title="">

Analysis

</template>

<template v-slot:description="">

Business analysis standards and the propay-jira-user-story Cursor skill: consistent Jira stories, acceptance criteria, dependencies, and install paths for teams.

</template>
</u-page-card>

<u-page-card :spotlight="true" icon="lucide:scale" to="https://handbook.propay.co.za/principles/introduction">
<template v-slot:title="">

SOLID Principles

</template>

<template v-slot:description="">

Single Responsibility, Open/Closed, Liskov, Interface Segregation, and Dependency Inversion: learn the theory and see it applied so your code stays clean and easy to change.

</template>
</u-page-card>

<u-page-card :spotlight="true" icon="lucide:file-braces-corner" to="https://handbook.propay.co.za/clean-code/introduction">
<template v-slot:title="">

Clean Code

</template>

<template v-slot:description="">

Clean Code principles for PHP: variables, functions, classes, SOLID, DRY, and tests—practical guidelines for readable and maintainable software.

</template>
</u-page-card>

<u-page-card :spotlight="true" icon="cib:laravel" to="https://handbook.propay.co.za/laravel/strategy">
<template v-slot:title="">

Laravel

</template>

<template v-slot:description="">

Our Laravel playbook: follow framework defaults and default structure, one consistent way per concern, and clear conventions from routing and validation to authorization, jobs, and tests.

</template>
</u-page-card>

<u-page-card :spotlight="true" icon="cib:php" to="https://handbook.propay.co.za/php/naming">
<template v-slot:title="">

PHP

</template>

<template v-slot:description="">

Our PHP style: less magic, more types. PSR-12, Slevomat, strict types, and tooling (Pint, PHPStan) on CI—with naming, final classes, and domain-specific methods instead of setters.

</template>
</u-page-card>

<u-page-card :spotlight="true" icon="lucide:waypoints" to="https://handbook.propay.co.za/api/introduction">
<template v-slot:title="">

API

</template>

<template v-slot:description="">

RESTful API conventions: Laravel routing and controllers, auth, versioning, and consistent structure (JSON:API). Rate limiting, pagination, and caching so APIs stay secure and maintainable.

</template>
</u-page-card>

<u-page-card :spotlight="true" icon="lucide:database" to="https://handbook.propay.co.za/databases/introduction">
<template v-slot:title="">

Database

</template>

<template v-slot:description="">

Database practices for performance and security: backups, archiving, access control, and indexes—when to use them and how they affect reads and writes.

</template>
</u-page-card>

<u-page-card :spotlight="true" icon="lucide:git-branch" to="https://handbook.propay.co.za/git/introduction">
<template v-slot:title="">

Git

</template>

<template v-slot:description="">

Git and Gitflow at Propay: branch naming (feature/, release/, hotfix/), main vs develop, and a consistent workflow for features, releases, and hotfixes.

</template>
</u-page-card>

<u-page-card :spotlight="true" icon="lucide:palette" to="https://handbook.propay.co.za/design-system/introduction">
<template v-slot:title="">

Design System

</template>

<template v-slot:description="">

One look and feel for every Propay Vue/Nuxt system: shadcn-vue components, tokens and patterns, per-system colour themes, an installable registry, agent skills for Claude Code and Cursor, and a downloadable offline copy.

</template>
</u-page-card>
</template>
</u-page-section>

## Resources for Agents

- [API catalog: every service document this site publishes](https://handbook.propay.co.za/.well-known/api-catalog)
- [Sitemap (XML)](https://handbook.propay.co.za/sitemap.xml)
- [Sitemap (Markdown): every page on the site](https://handbook.propay.co.za/sitemap.md)
- [MCP server card: MCP endpoint at https://handbook.propay.co.za/mcp](https://handbook.propay.co.za/.well-known/mcp/server-card.json)
- [MCP endpoint (streamable HTTP)](https://handbook.propay.co.za/mcp)
- [llms.txt: index of the documentation for LLMs](https://handbook.propay.co.za/llms.txt)
- [llms-full.txt: the full documentation as a single file](https://handbook.propay.co.za/llms-full.txt)
- [OpenAPI document: every route this site serves to agents](https://handbook.propay.co.za/openapi.json)


## Sitemap

See the full [sitemap](https://handbook.propay.co.za/sitemap.md) for all pages.
