IcePanel Docs


IcePanel uses a modern, lightweight, and agile way to model system architecture using the C4 Model - created by Simon Brown. This helps create simple, easily digestible, and maintainable diagrams targeted at each of your audiences.
Using modelling instead of diagramming tells the full story, not just a single diagram view.
Using the C4 model, you can create different hierarchical diagrams that explain how your solution works, from the high-level business of your systems to the low-level technical details.
IcePanel makes it easy for anyone (technical or non-technical) to use this powerful way to visualize software.

What is modelling?

Modelling (in software architecture) is a way to see the full picture of how your system(s) work. Modelling provides more detail than a single diagram, as it is view-agnostic.

Why is modelling better?

There are a few core benefits of a model-based approach, as opposed to just diagramming (i.e. with just shapes and lines):

1. Reusability

You can reuse the same objects, including all existing connections and previously assigned metadata.

2. Syncing diagrams

When you change the reusable object, it updates in all other places it was referenced. Maintenance is massively reduced (phew).

3. Deeper insights

Because your objects live in a source of truth, you can analyze how they're being used, what objects have specific traits or technologies, and more!

4. Consistency

You can visualize your solutions consistently when paired with a standard modelling language, such as the C4 model. This means you don't have to relearn how others think a diagram should look, making conversations flow better.

What is the C4 model?

Simon Brown created the C4 model to resolve the pains of explaining and communicating software architecture in the agile world. It acts as a map of your system, starting at the high-level detail (imagine looking at the whole world on Google Earth) down to the low-level technical details needed to develop your product (zooming into your street).
It is a way to communicate design decisions to multiple audiences at the level of detail they need. From business logic to technical decisions, the C4 model makes it easy to maintain in the long run - when changes inevitably get made to your design.
Check out for a detailed run-through of the how's and why's of C4!

🔢 The 4 C's in C4

The 4 C's relate to the different levels of detail in the diagrams created from the model.

1️⃣ Level 1 - Context diagrams

Level 1 of the C4 Model - Context diagram
The big picture - high-level overviews of how your system(s) work in the overall ecosystem with other external systems and the people that use them (users, customers, etc.).
Scope - Systems (internal and external) and actors.
Intended audience - Anyone! Business, Product, Architects, Developers and Operations.

2️⃣ Level 2 - Container diagrams

We call these App diagrams in IcePanel, as "Container" is more commonly used for Docker (sorry, Simon).
Level 2 of the C4 Model - App / Container diagrams
High-level responsibilities of a system - These diagrams show how the separately deployable things interact to make a system work.
Scope - Apps and stores (inside the system you're zoomed into), other systems (internal and external) and actors.
Intended audience - Architects, Developers, Product, and Operations.

3️⃣ Level 3 - Component diagrams

Level 3 of the C4 Model - Component diagrams
The building blocks and interactions of an app - Zoom in to each app to show the components that make each app work and the interactions within. These are more technical diagrams for a technical audience.
Scope - Components (inside the app you're zoomed into), other apps & stores in the same system, other systems (internal and external) and actors.
Intended audience - Architects, Developers and Operations.

4️⃣ Level 4 - Code diagrams

These are used to show inside a component and how they actually work and function - currently, you can't diagram the 4th level in IcePanel. We believe you should refrain from diagramming this manually and link your model objects to the code itself (reality).
This level is rarely diagrammed in practice as Simon says, "...most IDEs can generate this level of detail on demand."

Using the C4 model in IcePanel

IcePanel is a visual C4 modelling, diagramming, and documentation tool that maintains the C4 hierarchical structure.

IcePanel's model object structure:

  • Organization
    • Landscape
      • Domain
        • Actor
        • Area
        • System
          • App/Store
            • Component

Model object details

When you select a model object (Actor, Area, System, App, Store or Component), you can view and edit the details in the right-hand panel. These details include:
  • Icon (linked to technology choices)
  • Name of object
  • Connections
  • History
  • Editable by (Growth plan only)
  • Internal or external
  • Type (Actor, System, Area, App, Store, Component)
  • Status (Live, future, deprecated or removed)
  • Domain (Growth plan only)
  • Ownership team (Growth plan only)
  • Diagrams that the object is in, with links to each diagram
  • Flows count
  • Tags
  • Display description
  • Technology choices
  • Reality or generic links added to object (Linking to reality)
  • Detailed description
  • Connections (in the object connections tab when selected)

Adding objects in the model objects view

IcePanel's model objects list
Here, you can quickly add and view your model objects that live in the C4 model hierarchy. You can also search for and sort by tags, diagram count, description added, etc.
Visible by default:
  • Actors, Systems & Areas
Expand systems to view:
  • Apps & Stores
Expand apps and stores to view:
  • Components
You can add, edit and delete the objects from here. You can also see the details of each object, which helps you see the dependencies.

Filtering in the model view

Filtering objects in IcePanel's model view
You can filter your model objects in the model objects tab.
You can filter (Y/N) on:
  • Technology choices
  • Status
    • Live
    • Future
    • Deprecated
    • Removed
  • Team ownership (Growth plan only)
  • Tags (custom)
  • Type
    • Internal
    • External
    • System
    • Actor
    • Area
    • App
    • Store
    • Component
  • Diagram
    • In a diagram
    • In a flow
  • Details
    • Display description
    • Detailed description

Adding objects in the diagram view

Adding objects in IcePanel via the diagram view
You can also add, edit or remove objects from your model within a diagram.
To add new objects in a diagram:
  1. 1.
    Click on the Add button on the toolbar on the left
  2. 2.
    Drag from the Add button on the toolbar on the left and release in the canvas
  3. 3.
    Double-click on the canvas
  4. 4.
    Drag a new connection from an existing object to a blank space in the canvas
Adding objects this way adds them to your model to be reused.
This is the best and quickest way to build up your model whilst keeping it in the context of the diagram you're creating.
Make sure to name your objects in a way anyone can understand.

Editing model objects:

In IcePanel, changing an object will update it everywhere it exists. This includes all diagrams, flows, and the model. Make a change anywhere, and it will auto-sync that change everywhere.

Removing model objects from a diagram:

You can remove model objects from just a diagram but keep it in the model for later or another diagram. To do this:
  • Select the object in the diagram
  • Press the Backspace or Del key
  • OR click the 3 dot ... menu and select Remove from the diagram

Deleting objects from the model:

This action cannot be undone.
Deleting model objects in IcePanel
  1. 1.
    Select the object or objects you wish to delete
  2. 2.
    Click the 3 dot menu at the top right
  3. 3.
    Click Delete object
  4. 4.
    You will see a list of all things that will be permanently deleted
This will delete the object from the model, all diagrams it was in, all connections in and out, diagrams that the object owns and any details about it.

Diagramming is covered in more detail in the Diagramming section!