{"id":37043760,"url":"https://github.com/fernando-jimenez-dev/clean-cut-architecture","last_synced_at":"2026-01-14T05:01:53.149Z","repository":{"id":269474189,"uuid":"907107845","full_name":"fernando-jimenez-dev/clean-cut-architecture","owner":"fernando-jimenez-dev","description":"Exploring the Clean Cut Architecture approach.","archived":false,"fork":false,"pushed_at":"2025-01-14T17:07:04.000Z","size":1412,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-22T13:58:07.198Z","etag":null,"topics":["architecture","clean-architecture","clean-code","clean-cut-architecture","software","vertical-slice-architecture"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fernando-jimenez-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-12-22T20:39:10.000Z","updated_at":"2025-01-14T17:05:36.000Z","dependencies_parsed_at":"2025-01-10T06:34:56.784Z","dependency_job_id":null,"html_url":"https://github.com/fernando-jimenez-dev/clean-cut-architecture","commit_stats":null,"previous_names":["fernando-jimenez-dev/clean-cut-architecture"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/fernando-jimenez-dev/clean-cut-architecture","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fernando-jimenez-dev%2Fclean-cut-architecture","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fernando-jimenez-dev%2Fclean-cut-architecture/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fernando-jimenez-dev%2Fclean-cut-architecture/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fernando-jimenez-dev%2Fclean-cut-architecture/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fernando-jimenez-dev","download_url":"https://codeload.github.com/fernando-jimenez-dev/clean-cut-architecture/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fernando-jimenez-dev%2Fclean-cut-architecture/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28410086,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["architecture","clean-architecture","clean-code","clean-cut-architecture","software","vertical-slice-architecture"],"created_at":"2026-01-14T05:01:52.533Z","updated_at":"2026-01-14T05:01:53.120Z","avatar_url":"https://github.com/fernando-jimenez-dev.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n   \u003cstrong\u003eClean Cut Architecture\u003c/strong\u003e\n\u003c/h1\u003e\n\u003ch3 align=\"center\"\u003e\n   \u003cstrong\u003eSlicing Use Cases with Intent\u003c/strong\u003e\n\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n   Let's build something clean, simple and effective—one slice at the time!\n\u003c/p\u003e\n\n---\n\nWelcome to **Clean Cut Architecture (CCA)!** Over my years as a .NET engineer, I've been inspired by the structured approach of Clean Architecture and the simplicity of Vertical Slice Architecture. I often found myself blending the two approaches into something that worked better for my projects-something I now call Clean Cut Architecture. This approach is designed to help developers build intuitive, maintainable, and purpose-driven systems.\n\n## **Why Clean Cut Architecture**\n\nSoftware design can be messy. Over time, tangled dependencies, unclear boundaries, and overly complex architectures turn even the best projects into headaches. CCA aims to fix that by:\n\n1. **Defining Clear Boundaries**:\n\n   - Separate your application into distinct zones (or \"boundaries\") with well-defined roles.\n   - Keep your business logic insulated from the messiness of presentation layers and infrastructure.\n\n2. **Embracing Purposeful Simplicity**:\n\n   - Build systems as a collection of purposeful \"cuts\"—Use Cases that represent specific business operations.\n   - Focus on the \"why\" of your system, not just the \"how.\"\n\n3. **Blending the Best Practices**:\n   - Use the structural discipline of Clean Architecture.\n   - Add the practicality of Vertical Slice Architecture.\n\n## **What Does CCA Look Like?**\n\nImagine your system as a series of cleanly cut slices, each with its own well-defined purpose:\n\n- **Application _(Core Boundary)_:** The beating heart of your system. This is where the magic happens—Use Cases that encapsulate your business logic.\n\n- **Presentation _(Interface Boundary)_:** The external-facing part—APIs, UIs, and everything that connects your system to the outside world.\n\n- **Shared _(Cross-Cutting Concerns)_:** Shared utilities like logging, validation, or configuration—organized and controlled.\n\n### **Visualizing the Architecture**\n\nTo give you a better picture, here is the visual representation of the architecture:\n\n\u003cp align=\"center\"\u003e\u003cimg src=\".README/images/clean-cut-architecture.png\" width=\"85%\"\u003e\u003c/p\u003e\n\nThe **High Level View** illustrates the design of CCA:\n\n- **Presentation** sits at the top, where user-facing interactions occur.\n- **Application** lies beneath, broken into purposeful Use Cases that handle business logic.\n- **Shared** forms the foundation, providing utilities like logging and configuration for the entire system.\n\nThe **Use Case Internals** zooms into the **Application Boundary**, showing how a Use Case is structured. It highlights:\n\n- **Domain**: Business rules and aggregates.\n- **Abstraction**: Interfaces and contracts that guide communication.\n- **Infrastructure**: Concrete implementations like databases and APIs.\n\n## **Quick Start**\n\nWant to get started? Here's what you'll find in this repository:\n\n- **[/documentation](/documentation/README.md):**\n  Dive into the nitty-gritty of Clean Cut Architecture. From its guiding principles to practical implementations, this is where you'll learn what makes CCA tick.\n\n- **[/templates](/templates/README.md):**\n  Ready to jump in? Start with our project templates and hit the ground running with CCA.\n\n- **[/examples](/examples/README.md):**\n  See CCA in action with real-world examples designed to inspire and guide you.\n\n## **How Does It All Work?**\n\nClean Cut Architecture aims to standarize the system's workflow. This workflow keeps the focus on the Use Case, with it being the entry point into the Application's business rules and orchestrating the necessary components to accomplish it's goal.\n\nTo help you understand how everything comes together, here's a visual workflow of how multiple kinds of incoming requests can be handled in the same fashion, but with different internal components accomplishing the purpose of the request.\n\n\u003cp align=\"center\"\u003e\n   \u003cimg src=\".README/images/architecture-workflow.png\" width=\"100%\"\u003e\n\u003c/p\u003e\n\nThe Architecture Workflow maps the journey of a request through Clean Cut Architecture. Every use case will use different specially tailored components for the use case itself. These components can be of many types - including but not limited to Domain, Abstraction and Infrastructure.\n\n- **From Presentation**: A consumer (UI or API client) initiates the request, handled by a Presentation component.\n- **Through Application**: The request flows into a Use Case, leveraging Domain, Abstraction, and Infrastructure to process the logic.\n- **Backed by Shared**: Shared components provide cross-cutting support to help the request accomplish its goal effectively.\n\n## **Ready to Cut to the Chase?**\n\nClean Cut Architecture is more than just a set of rules—it's a way of thinking about software design. If you've ever felt bogged down by overly complex systems, unclear responsibilities, or just the general messiness of software development, CCA might just be the change you're looking for.\n\nHead over to the **[/documentation](/documentation/README.md)** folder to learn the building blocks of Clean Cut Architecture and start designing systems you'll enjoy working with.\n\n## Roadmap\n\n- ☑️ Set up repository and first ReadMe.\n- ☑️ Initial documentation on principles and concepts.\n- ☑️ Add a starter project template.\n- ☐ Provide more real-world examples.\n- ☐ Create guides for integrating CCA into existing systems.\n- ☐ Open the project for community feedback and contributions.\n\n## Contributing\n\nFor now, this repository is a **work in progress**, but feel free to open issues for suggestions or ideas. Contributions will be welcomed in the future.\n\n---\n\n\u003cbr/\u003e\n\n\u003ch3 align=\"center\"\u003e\n   Happy Coding!\n\u003c/h3\u003e\n\u003ch6 align=\"center\"\u003e\n   \u003ci\u003e0.3.0-beta\u003c/i\u003e\n\u003c/h6\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffernando-jimenez-dev%2Fclean-cut-architecture","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffernando-jimenez-dev%2Fclean-cut-architecture","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffernando-jimenez-dev%2Fclean-cut-architecture/lists"}