# Creating a custom section This guide aims to help you create your first custom section. ## Rules for sections Here are recommendations to follow when creating a section to maintain Spaceship slick and clean. ### Section should not clutter the prompt Having too much in prompt looks ugly. It's better to keep it to a minimum of necessary information. * **Good:** `🚀 v1.2.3` * **Bad:** `🚀 spasheship#c3BhY2VzaGlw` ### Section should be worth to be aware of Is value changes quite often, so it needs to be shown in prompt? Would it be useful for other users? Maybe there's a reason to execute a command instead of cluttering prompt. * **Good:** git status/branch, runtime version via version manager, etc * **Bad:** version of language-specific framework, settled projects versions, etc ### Section should be fast If your section performs any heavy checking, find a way to make it faster. Use async rendering for performing heavy tasks. Section should be: * **Async:** if it executes external commands, perform complex calculations, reading large files * **Sync:** if it checks command availability, checks the value of environment variable ### Follow naming convention for options All options of prompt follow a specific pattern so that it is easy to remember: `SPACESHIP_SECTION_