Redefined System Design
Archally is a toolset for design-first digital products.
Create your interactive UML. Keep business knowledge as formal notation. Generate specification, boilerplate codebase and documentation automatically.
How to tame complexity
We intuitively recognize that a picture is worth a thousand words. Diagrams, distilled requirements and structured specifications are critical for aligning teams around a shared understanding. Yet, these documents often become outdated or disconnected from the actual codebase, eroding their value and undermining trust. Poor or outdated documentation can limit how fast and how far we can go.
Archally changes this dynamic by transforming specifications into a living blueprint for your software system. Concept here is to build a map of your system. And automate the generation of code, architecture tests, integration diagrams, and user-facing documentation directly from a single, unified map. And then use maps to generate diagrams, integrations and automated tests. Built on proven methodologies like Domain-Driven Design (DDD), Model-Driven Architecture (MDA), and Unified Modeling Language (UML), it bridges the gap between high-level design and actual implementation.
The aim for Archally is to decrease cognitive load, rebuild trust in specification and documentation, improve communication and collaboration among teams. Finally, to enable small teams build software solutions for complex real-world problems.

Architecture as Code
In recent years popularity gained defining runtime infrastructure for digital systems as formal syntax. Such approach was developed for Kubernetes, cloud PaaS and many configuration tools. The approach get name Infrastructure as Code (IaC for short). If we can do it successfully for infrastructure, then is it possible for business domains, integration or team topologies? In this case we want to store system architecture concepts as code. Archally utilize formal notations to expres Specification as Code (like requirements against system) or technical Architecture as Code.
Then specification is translated to visualization. An interactive diagram representing one or multiple aspects of our system under construction.

Archally Community
Archally Generator is under development and we actively looking for experts from various technical areas to evaluate the generator and its features. If you want to try Archally or just want to contact, please submit request to our community group!
Communication on development digital products is challenging. When time is short documentation what have been done easily become outdated.
The more complex product, the bigger is the gap between business stakeholders, multiple tech teams, testers or administrators.
Archally focuses on top-down visual specification for a system or digital product.
Therefor to bridge such gaps in knowledge and foster communication and knowledge sharing.
Explain product visually
communicate easily with technical teams, partners or customers
System Cartography
A maps are visual representations of some territory, or ocean, or the skies.
Archally Map is a textual representation of your business processes with their steps, or your digital product with its parts.
Archally generates visual documentation with interactive extensions like diagrams or website widgets.
✎ With map you can visualize dependencies between business areas like Orders, Products, Customers.
✎ You can define operations within domains like PayForOrder, ProductReserved, CustomerSubscriptionRenewed.
✎ And you can include custom properties and metadata as you wish like database: OrdersDB, serviceName: ProductsAPI, crmVendor: john.doe@bestvendor.com.

Generative Visualizations
With a map you can streamline the path from design to deployment. Generate an interactive diagram you can share and select only elements important to specific discussion or group.

Enhanced with Technical Details
The second layer of a diagram are details shown for selected diagram element. You may add to the map like technical information like documentation reference to external solutions used by your product. Or grab infrastructure information to each element of map like cloud resources.

Enhanced with Organization Structure
The third layer is organizational dependencies for parts of your system. You may want to a contact to a team responsible for fixing bugs for part of the system so other teams know where as for help. Or add contact to business owner of external API integration so development team will know how to report an issue. Or include references to tasks from your issue tracking system.

Build software from design
keep yor design in sync with code, tests and infrastructure
Specification for teams
Having defined business domain operations you can generate visual specification for teams. You can use well-known standards for software documentation (Swagger, Redoc, AsyncAPI Studio, PlantUML, Mermaid, Sequence Diagram) to communicate how product parts work together.

Keep code up to date with map
When regenerate Archally map each part of the system have up to date technical specification of your choice.
Add to your the map all crucial data models you exchange among services
(with notation of your choice like JSON Schema, Avro or Protobuf).
Having generated specification you can generate data models to exchange between products parts.
This way changes in diagrams are automatically reflected in implementation of your product.

Update automatically
keep people informed about changes in design and provide versioning to diagrams
Manage changes from one specification
Maintain current and accurate documentation effortlessly, reducing the risk of outdated information and enhancing user satisfaction. Utilize specification coverage analysis to identify unimplemented requirements early, allowing for timely interventions and resource allocation.
Generate test cases
Leverage automated testing and adherence to design principles to ensure your software is reliable, maintainable, and scalable. Click 'generate tests' on generated HTML documentation to you for your APIs and correlated integration tests in your programming language of choice.

Keep decisions history
Making decision to tune and significantly change design of a system we want to document our decisions context. Storing specification as code you and your team have progressive insight into design changes over time. This way you can return to previous versions of design. And also easier compare several designs of the next step of your development. After changes just regenerate diagrams with corresponding data models and integration tests.
