Does my source code repository need to be structured a specific way in order to work with Knapsack?

No, Knapsack is extremely flexible and can support nearly any repo structure, from a single messy directory (please...don't actually do that) to a complex monorepo housing multiple systems with shared dependencies (though we have our recommendations...).

During implementation, some Knapsack data files (.yml and .json) are added to specific directories in order to power your bespoke Knapsack workspace, but the remainder of the repo can be organized as you desire.

Note that some Knapsack features, like the Design Tokens content block, rely on a preconfigured source destination for data the block is used to display (in this case, design token data). These default configurations will need to be updated to reflect any changes to source destination from what Knapsack expects out-of-the-box.

For help modifying default configurations, or if you just want to chat through what you're trying to accomplish, please contact us at