Back to releases

The Foundation

Pomavo now has the core organization, template, screen, workflow, and ticket foundations that make a multi-tenant issue tracker configurable without custom code.

Pomavo's first foundation release gives you the building blocks for a configurable, multi-tenant ticketing system. You can shape ticket types, control data entry, enforce workflow rules, and manage organization-wide settings from one place.

The foundation for configurable ticketing in Pomavo.

Multi-tenant organizations and session-based access

Pomavo is organized around the organization, which acts as the tenant boundary for tickets, templates, workflows, members, settings, API keys, and background work. Every record is scoped to an organization, and the tenant context is established at the edge of each request before data reaches the API, search index, or job pipeline.

That matters when you are running multiple teams, clients, products, or business units in the same SaaS platform. A ticket in one organization is not just hidden from another organization in the UI, it is separated by the data-access model and by the token context used by services.

Authentication is handled by a dedicated Auth service. It manages sessions, supports email and password login, supports GitHub OAuth, and issues signed tokens that other services can verify independently. The application API receives those tokens and checks permissions, but it does not own passwords or the login flow.

The security model is intentionally layered: identity confirms who you are, tenant context confirms where you are acting, and permissions confirm what you can do. See Security Model and Organization Settings for the full model.

Foundation pieceWhat you configureWhy it matters
OrganizationWorkspace name, slug, default theme, members, join requests, permissionsKeeps teams and tenant data separated
Session authEmail and password, GitHub OAuth, signed tokensGives users a secure interactive login flow
API keysOrganization-bound machine accessLets integrations operate inside one tenant
PermissionsMember capabilities and defaultsControls sensitive operations consistently
ExportsTickets and templates as JSONSupports backup, migration, and audit needs

Templates define the shape of work

Templates are now the foundation of every ticket. A template represents a ticket type such as Bug Report, Task, Epic, or User Story, and it owns the fields, screens, sequence numbering, workflow assignment, icon, and color for that type of work.

This lets you model the difference between a bug and a feature request instead of forcing every team into one flat issue shape. A bug can ask for reproduction steps and severity. A feature request can capture business value, target release, and stakeholder context. A task can stay lightweight.

Each template can start from a built-in preset or from a blank configuration. As your process changes, you can add fields, adjust screens, update visual identity, and keep using the same template as the canonical definition of that work type.

Templates also make tickets easier to scan. Ticket lists, boards, search results, and ticket headers can show the template icon, color, and sequence number together, so you can quickly tell what kind of work you are looking at.

Custom fields capture the data your process needs

Custom fields give each template its own data model. The Fields system supports simple values, dates and times, people, booleans, rich text, and choice-based fields with configured options.

Field typeUse it forImportant behavior
TextShort labels, IDs, external referencesSingle-line input
TextareaDescriptions, notes, reproduction stepsRich text, mentions, and inline attachments
NumberEstimates, costs, counts, scoresNumeric filtering and reporting
DropdownPriority, severity, component, resolutionSingle choice with optional icons and colors
Multi-SelectLabels, affected areas, environmentsMultiple configured choices
DateDue dates, milestones, target datesDate picker values
TimeTime-only scheduling dataTime picker values
Date & TimeExact incident or release momentsCombined date and time picker
UserAssignee, reviewer, ownerSingle or multi-user assignment
CheckboxTriage flags, compliance checksBoolean toggle

Field configuration includes whether a field is required, a default value, and a description that appears as helper text. Dropdown and multi-select fields can define options, and those options can carry their own icon and color so values stay recognizable on dense ticket views.

User fields include a multi-user toggle. That lets you decide whether a field should point to one person, such as an assignee, or multiple people, such as reviewers or stakeholders.

Screens control create and detail experiences

Screens let you decide which fields appear when a user creates a ticket and how fields are arranged on the ticket detail page. This keeps ticket creation focused while still preserving full detail for later editing.

The Create Screen is optimized for intake. You can show only the fields that must be filled at creation time, such as title, severity, customer, and first owner. Fields that are useful later, such as root cause or resolution notes, can stay off the create form.

The Detail Screen is the full layout for ongoing work. Fields are organized into named sections, and sections can group related information such as Technical Details, Business Context, Triage, Ownership, or Release Planning.

Screen areaControlled byExample outcome
Create ScreenField visibility and orderA fast create dialog with only required intake fields
Detail ScreenSections and field placementA ticket view grouped by context, ownership, and delivery
Section orderDrag and drop layout editingMost important information appears first
Field visibilityPer-screen configurationLater-stage fields do not slow down initial creation

The visual layout editor supports drag and drop field arrangement. You can move fields between sections, reorder sections, and hide fields from the create flow without removing them from the template.

Sequence numbering makes every ticket referenceable

Every ticket receives an automatic sequence number based on its template's Sequence Config. Sequence numbers make tickets easy to cite in meetings, commits, comments, release planning, and support conversations.

TemplatePrefixPaddingExample
Bug ReportBUG5BUG-00001
TaskTASK5TASK-00001
EpicEPIC4EPIC-0001
User StoryUS5US-00001

A sequence configuration includes the prefix, separator, padding, and start value. The default separator is typically a hyphen, and padding gives you stable ticket keys such as BUG-00001 instead of BUG-1.

Sequence numbers are unique within a template. That means BUG-00001 and TASK-00001 can both exist, which keeps each work type's numbering easy to read while avoiding cross-template contention.

In the ticket detail header, the sequence number appears with the template icon and color. This combination gives you a compact, human-readable identifier that still carries visual context.

Icons and colors create visual identity

Template Icon & Color settings give each ticket type a recognizable identity across the application. Icons come from the Lucide icon library, and colors are used on ticket type badges, board indicators, navigation highlights, and status badges.

A good visual system reduces cognitive load. If bugs are red with a bug icon, epics are purple with a layers icon, and tasks are blue with a check icon, your team can scan boards and search results faster.

Visual elementWhere it appearsRecommended use
Template iconTicket headers, lists, boards, navigationPick a simple symbol that reads at small size
Template colorBadges, indicators, highlightsUse distinct colors for types that appear together
Live previewTemplate editorCheck the visual language before saving

The key is consistency. Once your team learns the visual vocabulary, a board card or search result can communicate type before anyone reads the full title.

Workflows define the lifecycle of a ticket as a visual state machine. States are nodes, transitions are edges, and a ticket can only move through transitions that the workflow allows.

Common states include To Do, In Progress, In Review, Done, and Abandoned. You can add custom states for your process, then connect them with transitions that represent valid movement.

Workflow conceptWhat it doesExample
StateRepresents a stage in the processIn Review
TransitionAllows movement from one state to anotherIn Progress to In Review
CategoryGroups states by meaningInitial, active, terminal
DesignerEdits the state machine visuallyDrag nodes and draw edges
AssignmentLinks a template to a workflowBug Report uses Engineering Workflow

Only legal transitions appear as action buttons on the ticket detail header. If your workflow does not allow a ticket to jump from To Do directly to Done, the UI does not offer that move.

Multiple templates can share the same workflow when they follow the same process. A Bug Report and Task might both use an engineering workflow, while an Incident template might use a separate escalation workflow.

Organization settings bring administration together

Organization Settings centralize workspace-wide configuration. From there, you can manage the organization name and slug, set a default theme, invite members, review join requests, configure permissions, and define default permissions for new members.

Default member permissions are especially important for onboarding. Instead of manually assigning the same capabilities to every new teammate, you can decide which permissions new members receive when they join the organization.

Exports are also available from organization settings. You can export tickets as JSON, including field values, links, status, and template information. You can also export templates as JSON, including fields, workflow states, transitions, and sequence configuration.

This foundation is what the next releases build on: richer search, comments, projects, theming, boards, reports, and operational tooling all depend on these configurable tenant, template, ticket, and workflow primitives.