Below is the template that I use to document software architecture. This is based on the experience I gained doing architecture and design work over the years.
If you prefer Google Docs then you can create a copy of the template. If you prefer Markdown version then you get it from the Github repository.
<X> System Software Architecture Document
Give a high level overview of the requirements
User Roles and their Responsibilities
Document main user personas that will use the application
Add text here
Constraints
Any constraint that you need to keep in mind for your design
Add text here
Assumptions
Any assumptions that you have made while coming up with the design
Add text here
Business Process
Important business processes that you have considered while creating the design
Add text here
Non-functional Requirements
Most important quality attributes based on the business goals
Add text here
Back of the envelope calculations
Add text here
Functional Layer Diagram
List of functional components that will make the system. Which actor will work on which functional part.
Add text here
Architecture Style
Which architecture style you are proposing to build the application
Add text here
Solution Context Diagram
This is a high level context diagram that shows system as a black box, its main user personas, and external integrations
Add text here
Solution Diagram
In this section you create the solution diagram showing different components that make the system. This is a zoom-in view of the system you are building.
Add text here
Technology Stack
The list of technologies that you will use to build the system and the reason you choose them
Add text here
Important Architecture Decisions
Important architecture decision that you want development team to follow
Add text here