Power Apps Naming Conventions I Wish I Used From Day One

Published: (March 3, 2026 at 07:17 PM EST)
3 min read
Source: Dev.to

Source: Dev.to

Introduction

When I first started building Power Apps, I didn’t think naming conventions mattered. Everything worked… until my app grew and formulas became impossible to read. A few simple naming habits completely changed how easy my apps were to maintain.

Why Naming Conventions Matter

  • Readability – Clear names make formulas understandable at a glance.
  • Debugging – It’s easier to locate the source of an issue.
  • Maintenance – Future changes are quicker when you know what each element does.
  • Collaboration – Team members can jump in without a steep learning curve.

Microsoft’s Power Apps coding guidance recommends using consistent naming for screens, controls, variables, and collections because it improves readability and maintainability.

General Naming Pattern

prefix_Purpose
  • prefix – Indicates the control type (button, label, text input, etc.).
  • Purpose – Describes what the control does.

Example

  • btn_SubmitForm
  • txt_UserEmail
  • lbl_StatusMessage

Control Prefixes

Control TypePrefixExample
Buttonbtn_btn_Submit
Labellbl_lbl_Status
Text Inputtxt_txt_Email
Gallerygal_gal_Employees
Formfrm_frm_Request
Dropdowndrp_drp_Department
Checkboxchk_chk_Approved
Iconico_ico_Delete

Goal: prefix = control type + name = what it does.
When you see btn_SubmitRequest, you instantly know it’s a button that submits a request.

Screen Naming

Descriptive screen names improve both developer experience and accessibility.

Good examples

  • HomeScreen
  • EmployeeRequestScreen
  • ApprovalScreen

Bad examples

  • Screen1
  • Dashboard
  • Page2

Variable Naming

Variables should indicate what they store and their scope.

ScopePrefixExample
GlobalgblgblUserEmail
Context (local to a screen)loclocIsLoading
GeneralvarvarSelectedItem

Collection Naming

Collections typically start with col_ and describe their contents.

  • colEmployees
  • colNavigationMenu
  • colActiveRequests

Putting It All Together

Instead of generic names like Gallery1, Label4, Button2, use descriptive prefixes:

gal_Employees
lbl_EmployeeName
btn_SaveEmployee

Now formulas read like actual logic:

If(
    btn_SaveEmployee.Visible,
    /* your logic here */
)

Much easier to understand.

The Most Important Rule

There isn’t a single “perfect” naming system. Different teams may adopt slightly different patterns, but consistency is key. A consistent naming structure makes apps easier to navigate, debug, and maintain over time.

Quick Checklist

  • Use clear prefixes for every control type.
  • Describe the purpose of each control, screen, variable, and collection.
  • Keep naming conventions consistent across the entire app.

Your future self (and your teammates) will thank you!

0 views
Back to Blog

Related posts

Read more »

The Importance of TDD

The Problem I built an “awesome” API with 12 parameters. It was garbage. Nobody could use it without a PhD in my brain. After years of backend development, I l...