{"id":15037093,"url":"https://github.com/mahmoudz/porto","last_synced_at":"2026-01-26T12:35:11.210Z","repository":{"id":38455245,"uuid":"52764093","full_name":"Mahmoudz/Porto","owner":"Mahmoudz","description":"Porto is a Modern Software Architectural Pattern that scales with your business!","archived":false,"fork":false,"pushed_at":"2024-05-22T16:37:32.000Z","size":74050,"stargazers_count":1584,"open_issues_count":4,"forks_count":186,"subscribers_count":87,"default_branch":"master","last_synced_at":"2024-05-22T17:39:29.923Z","etag":null,"topics":["architectural-patterns","architecture","backend","backend-architecture","backend-architecture-patterns","porto","porto-sap","portosap","software-architecture","webdevelopment"],"latest_commit_sha":null,"homepage":"http://mahmoudz.github.io/Porto/","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Mahmoudz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-02-29T04:31:00.000Z","updated_at":"2024-05-22T17:39:32.263Z","dependencies_parsed_at":"2024-05-22T17:53:33.016Z","dependency_job_id":null,"html_url":"https://github.com/Mahmoudz/Porto","commit_stats":{"total_commits":18,"total_committers":6,"mean_commits":3.0,"dds":"0.38888888888888884","last_synced_commit":"a0a1c3b1ab4befe3b41fba049c6335525006b4e7"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mahmoudz%2FPorto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mahmoudz%2FPorto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mahmoudz%2FPorto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mahmoudz%2FPorto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mahmoudz","download_url":"https://codeload.github.com/Mahmoudz/Porto/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245727635,"owners_count":20662552,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["architectural-patterns","architecture","backend","backend-architecture","backend-architecture-patterns","porto","porto-sap","portosap","software-architecture","webdevelopment"],"created_at":"2024-09-24T20:33:21.066Z","updated_at":"2026-01-26T12:35:11.172Z","avatar_url":"https://github.com/Mahmoudz.png","language":null,"funding_links":["https://github.com/sponsors/Mahmoudz"],"categories":[],"sub_categories":[],"readme":"# Porto (Software Architectural Pattern)\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"/docs/static/img/porto-logo.png\" width=\"80%\"/\u003e\n\u003c/div\u003e\n\n## Welcome to Porto\n\n**Porto** is a modern software architectural pattern that provides a comprehensive set of guidelines, principles, and patterns to organize code for high maintainability and reusability. Its primary aim is to facilitate the development of scalable software, enabling developers to start with a clean monolith and easily transition to microservices. Furthermore, Porto's strict adherence to the single responsibility principle enhances its compatibility with AI tools like GitHub Copilot, which thrive on clear, well-defined classes.\n\n\u003e \"Simplicity is the ultimate sophistication.\" - Leonardo da Vinci\n\n\u003cbr\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\n\u003cp align=\"center\"\u003e\n\t\u003ca href=\"https://mahmoudz.github.io/Porto/\"\u003e\n\t   \u003cimg src=\"/assets/documentation-button.png\" width=\"300px\" alt=\"Porto SAP Documentation\"/\u003e\n\t\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n---\n\n### Clear Layers\n\nApp code is divided into **Containers** and **Ship** layers. Containers encapsulate the business logic, while Ship handles all infrastructure-related code, enabling easy scaling on demand by transitioning from monolithic to microservices.\n\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"/docs/static/img/diagrams/porto_layers.svg\" /\u003e\n\u003c/div\u003e\n\n---\n\n### Clean Components\n\nBusiness logic in **Containers** is organized into **Actions** and **Tasks**. Actions initiate sequences of Tasks, each with one public function `run()` for a single responsibility, thereby enhancing maintainability and enabling code reusability.\n\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"/docs/static/img/diagrams/porto_container_interactions.svg\" /\u003e\n\u003c/div\u003e\n\n---\n\n## Author\n\n\u003ctable\u003e\n    \u003ctbody\u003e\n            \u003ctr\u003e\n                \u003ctd style=\"text-align: center; vertical-align: top\"\u003e\n                \u003cimg alt=\"author image\" width=\"125\" height=\"125\" src=\"https://github.com/mahmoudz.png?s=150\"\u003e\n                \u003cbr/\u003e\n                \u003cstrong\u003eMahmoud Zalt\u003c/strong\u003e\n                \u003cbr/\u003e\n                GitHub: \u003ca href=\"https://github.com/Mahmoudz\"\u003eMahmoudz\u003c/a\u003e\n                \u003cbr/\u003e\n                Twitter: \u003ca href=\"https://github.com/Mahmoudz\"\u003e@mahmoudz\u003c/a\u003e\n                \u003cbr/\u003e\n                LinkedIn: \u003ca href=\"https://www.linkedin.com/in/mahmoudzalt/\"\u003emahmoudzalt\u003c/a\u003e\n                \u003cbr/\u003e\n                Portfolio: \u003ca href=\"https://zalt.me\"\u003ezalt.me\u003c/a\u003e\n                \u003cbr/\u003e\n                \u003c/td\u003e\n            \u003c/tr\u003e\n        \u003c/tbody\u003e\n\u003c/table\u003e\n\n## Donations\n\nI appreciate your support. [Github Sponsor](https://github.com/sponsors/Mahmoudz).\n\n\u003cp\u003e\n    \u003cimg src=\"/docs/static/img/porto_ship_1.png\" width=\"100%\"\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmahmoudz%2Fporto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmahmoudz%2Fporto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmahmoudz%2Fporto/lists"}