Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Who This Book Is For

This book is for anyone who wants to understand or contribute to Chahua. You may already have extensive programming experience and want a quick, practical map of this project. You may also have no programming experience and want to use Chahua as an opportunity to learn how a real application is built. In either case, the book shows how the clients, backend, database, development tools, and contribution process fit together.

You may be:

  • Learning how web applications are built.
  • Making your first contribution to an existing project.
  • Familiar with frontend development but new to Rust and backend development.
  • Familiar with backend development but new to React and Progressive Web Apps.
  • An experienced developer who needs a map of this particular codebase.
  • Testing, documenting, designing, or supporting the application and wanting to understand how it works.

How This Book Helps You Start

The early chapters provide a brief introduction to the technologies used by Chahua and the role each one plays. They explain the concepts and vocabulary you will encounter, show you how to run the application, and help you find your way through the codebase.

You will also find suggestions for what to learn next and which knowledge is most useful for a particular kind of change. The aim is to help you make a small contribution early, then build a deeper understanding as you continue. This book will not replace a complete programming course, but it should help you understand what to learn, why it matters, and where it appears in Chahua.

Choose the Path That Fits You

Read the foundational and local-setup chapters first if you are new to programming. After the repository tour, you can focus on the PWA frontend, the Rust backend, or continue through both paths. You can always return to the glossary and command cheat sheet when you encounter an unfamiliar term or command.

There is no requirement to understand every technology before contributing. A small documentation improvement, test, styling correction, or carefully scoped code change can all be valuable starting points.