---
title: "UX/UI Design for Software Products"
canonical: https://wavect.io/services/ux-ui-design/
language: en
description: "Design flows, clickable prototypes and UI for software you are building. Wavect checks key tasks with real users and hands over dev-ready designs."
image: "https://wavect.io/img/general/bak/open_graph_preview.jpg"
---

UX/UI Design

# UX/UI design for the product you are actually going to build.

Decide how people complete the important tasks before engineering time goes into screens. We map the flows, check clickable prototypes with real users and hand over UI and components a development team can build without guessing.

THE ENGAGEMENT

## Agreed tasks. Tested flows. Designs your developers can build.

1. **Map the tasks** Users, jobs, flows and the states every screen must handle.
2. **Prototype and test** Clickable flows checked with real participants.
3. **Design and hand over** UI, components and specs in a shared design file.

DIRECT ANSWER

UX/UI design turns agreed product requirements into user flows, clickable prototypes and a buildable interface. This engagement covers the agreed tasks and screens, usability sessions with real participants and a handoff your developers can implement.

Best for

- A team about to build or rebuild an application whose key workflows are not designed yet
- A product where users drop out during onboarding, setup or a core task

Consider another approach

- Requirements, architecture and a build price are still open
- A marketing or content website rather than an application

## Start with the tasks that decide whether the product works

Pick the few tasks a user must complete for the product to be worth using: signing up, setting something up, finishing the core job, recovering from an error. Design those end to end before polishing anything else. If the product direction, requirements or build price are still open, settle them first in [Software Discovery](/services/software-discovery/); this service assumes that scope exists. A public marketing or content site belongs with [Website Development](/services/website-development/).

## What the design work produces

Every artifact exists to remove a guess from the build. We agree the depth per phase instead of delivering every possible document by default.

User flows and states

Each agreed task as a flow, including empty, loading, error, permission and partially completed states. These are where most interfaces break.

Wireframes and clickable prototypes

Low-fidelity layouts first, then a clickable prototype of the flows that carry the most risk. Code starts after you sign off the flow.

UI design and components

Visual design for the agreed screens, built from reusable components with variants, spacing and type tokens. It grows into a design system only when the product needs one.

A dev-ready handoff

Annotated screens, interaction notes, responsive behavior and component specs, walked through with your developers before they build.

## Check the flows with real users, not only stakeholders

A stakeholder review tells you whether the design matches the brief. Watching a handful of people from your target group attempt a task tells you where it fails. We run short moderated sessions on the prototype, record what blocks people and change the design before it is built. You help recruit participants from your customers or audience. We do not run a research panel or a research lab, and the proposal says who runs each session. Larger studies, quantitative research or agency recruitment are scoped separately. Accessible patterns are part of the design (contrast, focus order, labels, target sizes); a formal evaluation of the built product against WCAG 2.2 is a separate [Accessibility Audit](/services/accessibility-audit/).

## Illustrative session: a form that blocks sign-up

Illustrative, not a client result. A sign-up flow asks for company details before the user has seen anything useful. In the prototype session, participants hesitate at the company form and ask why it is needed. The revised flow starts with an email address, shows the product and asks for company details at the first action that requires them. The session record names the task, the prototype version, what participants did, the change made and what still needs checking in the built product. It documents the method, not a measured uplift.

## Design in phases, with a decision after each

Scope and quote each phase before it starts. You can hand the prototype to your own team or continue into the build through [custom software development](/services/software-development/).

1. **Flows and prototype** - Receive task flows, wireframes, a clickable prototype and session notes for the riskiest tasks.
2. **UI design and handoff** - Receive the agreed screens, components and annotated specs, reviewed with your developers.
3. **Design support during the build** - Agree the review cadence and change limits separately. Design questions raised during the build are answered against the agreed flows.

## You own the design files and the decisions behind them

Design files live in your workspace (typically Figma) or are transferred at handover, together with the component library and the notes explaining why each flow looks the way it does. We design with implementation in mind because we also scope and build software. If your scope needs specialist visual or brand design, the proposal names who provides it. Brand identity, logos and marketing campaigns are outside this service.

// proof

## Product UX in existing engineering work

We do not publish a design portfolio. These cases show UX decisions made inside engineering engagements, not standalone design projects. Afoma: social login with silent wallet creation so marketplace users never met crypto jargon, and existing users moved to the new sign-in without forced re-onboarding. Aniron: developer-portal onboarding, API keys and credit states made understandable on desktop and mobile. Twinsoft AI: several UI iterations on a stabilized product before enterprise pilot calls.

### [Afoma](/case-studies/afoma/)
- **Status:** Live
- **Outcome:** Web3 Social Login - Live in Production
- **Summary:** Live marketplace, on-chain primitives, no crypto jargon, social login + invisible wallet creation.
- **Stack:** Typescript, Solidity, Ethers.js

### [Aniron](/case-studies/aniron/)
- **Status:** Live
- **Outcome:** Developer portal - Customer onboarding, API-key controls, prepaid-credit top-ups and usage visibility delivered.
- **Summary:** Wavect was the main contributor to Aniron's developer application, covering API keys, prepaid credits, usage visibility and …
- **Stack:** TypeScript, Next.js, React

### [Twinsoft AI](/case-studies/twinsoft-ai/)
- **Status:** Live
- **Outcome:** 2 weeks - To Sellable MVP
- **Summary:** Took a vibe-coded prototype to enterprise pilot-ready, no shortcuts.
- **Stack:** Python, Flask, LLMs

These are selected projects, not our full portfolio. We have shipped 100+ products since 2018.

## Questions before you start

### Do you start with user research?

We start with the tasks and the evidence you already have: support tickets, analytics, sales calls and earlier tests. Moderated usability sessions on the prototype are part of the standard scope. If the open question is whether people need the product at all, that is validation work and is scoped before design.

### Can you redesign an existing product?

Yes. We start from the current screens and the tasks where users struggle, and redesign those flows first instead of reskinning everything.

### Which design tools do you use?

Figma for flows, prototypes and components by default. If your team already works in another tool, we agree it during scoping.

### Do you build design systems?

When the product needs one. We start with the components the agreed screens use and turn them into a documented system once several teams or products share them.

### Is accessibility included?

Accessible patterns are part of the design: contrast, focus order, labels, error messages and target sizes. A formal evaluation of a built product against WCAG 2.2 is commissioned separately as an accessibility audit.

## Choose your next step

- [Settle requirements and a build price first](/services/software-discovery/)
- [Audit a built product against WCAG 2.2](/services/accessibility-audit/)
- [Build the designed product](/services/software-development/)

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/services/ux-ui-design/#service",
      "@type": "Service",
      "areaServed": [
        {
          "@type": "Country",
          "name": "Austria"
        },
        {
          "@type": "Place",
          "name": "Worldwide"
        }
      ],
      "category": "Product Design & Quality",
      "dateModified": "2026-10-30",
      "description": "Design flows, clickable prototypes and UI for software you are building. Wavect checks key tasks with real users and hands over dev-ready designs.",
      "name": "UX/UI Design for Software Products",
      "provider": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "serviceType": "UX/UI Design",
      "url": "https://wavect.io/services/ux-ui-design/"
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "item": "https://wavect.io/",
          "name": "Home",
          "position": 1
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/services/overview/",
          "name": "Services",
          "position": 2
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/services/overview/#design",
          "name": "Product Design & Quality",
          "position": 3
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/services/ux-ui-design/",
          "name": "UX/UI Design",
          "position": 4
        }
      ]
    },
    {
      "@id": "https://wavect.io/services/ux-ui-design/#webpage",
      "@type": "WebPage",
      "dateModified": "2026-10-30",
      "description": "Design flows, clickable prototypes and UI for software you are building. Wavect checks key tasks with real users and hands over dev-ready designs.",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "mainEntity": {
        "@id": "https://wavect.io/services/ux-ui-design/#service"
      },
      "name": "UX/UI Design for Software Products",
      "url": "https://wavect.io/services/ux-ui-design/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "We start with the tasks and the evidence you already have: support tickets, analytics, sales calls and earlier tests. Moderated usability sessions on the prototype are part of the standard scope. If the open question is whether people need the product at all, that is validation work and is scoped before design."
      },
      "name": "Do you start with user research?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes. We start from the current screens and the tasks where users struggle, and redesign those flows first instead of reskinning everything."
      },
      "name": "Can you redesign an existing product?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Figma for flows, prototypes and components by default. If your team already works in another tool, we agree it during scoping."
      },
      "name": "Which design tools do you use?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "When the product needs one. We start with the components the agreed screens use and turn them into a documented system once several teams or products share them."
      },
      "name": "Do you build design systems?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Accessible patterns are part of the design: contrast, focus order, labels, error messages and target sizes. A formal evaluation of a built product against WCAG 2.2 is commissioned separately as an accessibility audit."
      },
      "name": "Is accessibility included?"
    }
  ],
  "speakable": {
    "@type": "SpeakableSpecification",
    "cssSelector": [
      ".faq-question",
      ".faq-answer"
    ]
  }
}
```
