Structuring your app
Anvil apps are made up of:
Client Side
Forms
Packages
Modules
Server Side
Server Packages
Server Modules
Packages
Your app can be organised using Packages . Packages can contain Forms, Modules, and other Packages.
![You can nest things inside Packages.](img/_index/packages.png)
You can nest things inside Packages.
Forms can contain things
Forms can contain other Forms, as well as Modules and Packages. Technically, Forms are just Python Packages.
![You can nest things inside Forms.](img/_index/forms-as-packages.png)
You can nest things inside Forms.
Server Modules and Server Packages
There are also Server Modules and Server Packages
. These are just like ordinary Modules and Packages, but
they can only be run or imported on the server.
They are found in the ‘Server Code’ section of the App Browser.
![Server Modules and Server Packages.](img/_index/server-modules-and-packages.png)
Server Modules and Server Packages.
Adding things
To add a new Form, Module or Package, click the three dots menu next to ‘Client Code’ or ‘Server Code’:
![](img/_index/add-form-module-package.png)
![](img/_index/add-server-module-package.png)
Or use the dropdown menu next to a Form or Package to add things inside it:
![Adding things
inside a Package](img/_index/add-to-package.png)
Adding things
inside a Package
You can create new Server Modules and Server Packages in the same way:
![Adding things
inside a Server Package](img/_index/add-server-module-server-package.png)
Adding things
inside a Server Package
Moving things
Drag-and-drop existing Forms, Packages and Modules to put them in a new place within your app structure:
![Drag-and-drop to move things around.](img/_index/drag-and-drop-module.gif)
Drag-and-drop to move things around.
If you move a Form, Module or Package, be sure to rewrite its imports and the imports of things that refer to it - the all-app search function can help you here.
Do you still have questions?
Our Community Forum is full of helpful information and Anvil experts.