Dorin Gaber
Selected work

Designing a New Models Wizard for Bring Your Own AI

Helping enterprise admins configure, test, and manage AI models using their own provider accounts.

  • Bring Your Own AI
  • Wizard UX
  • Enterprise Admin
  • AI Configuration
Designing a New Models Wizard for Bring Your Own AI — cover
01Overview

Tabnine originally provided and maintained the AI models available to enterprise customers. Admins could approve, enable, or disable Tabnine-managed models, but the model stack itself was mostly curated by Tabnine.

As enterprise customers needed more control over providers, licenses, token costs, and governance, Tabnine introduced Bring Your Own AI: a self-managed path where organizations could connect their own provider accounts and configure their own models alongside Tabnine-managed models.

I designed the New Models Wizard to turn that technical capability into a guided, self-service admin workflow — helping admins configure, validate, and control model availability without leaving the enterprise governance model behind.

02Challenge

Supporting a new mental model — customers bringing their own AI.

This was not just a matter of adding more settings to an existing page. The product needed to support a new mental model — customers bringing their own AI provider setup into Tabnine.

The setup involved several technical decisions:

  • Choosing a provider
  • Entering the right credentials
  • Defining the provider-facing model name
  • Choosing the display name developers would see
  • Setting availability
  • Testing that the configuration actually worked

Each decision carried risk: an incorrect provider identifier, missing credential, or untested configuration could create a model that looked available in the admin console but failed later for developers.

A single long form would have exposed too much complexity at once. The setup had to feel reliable and controlled — not like the admin was leaving Tabnine’s managed environment behind.

03Goals

What we set out to do.

The wizard needed to make a technical setup feel guided, safe, and predictable for enterprise admins.

  1. 01

    Make Bring Your Own AI understandable as a self-service admin flow

  2. 02

    Reduce cognitive load by splitting provider-specific setup into clear steps

  3. 03

    Support multiple providers without redesigning the flow for each one

  4. 04

    Help admins validate configuration before making a model available

  5. 05

    Preserve enterprise control around availability, governance, and cost ownership

04Process

How the work moved.

I used an AI-assisted design-to-code workflow to move from Figma exploration to an interactive front-end mock quickly. The goal was not to replace engineering, but to give the team a concrete wizard flow to review before backend wiring.

The mock was handed off through a branch and PR with a written summary. Engineering connected the backend, completed testing, and released the feature. After the core structure was in place, I continued refining smaller friction points such as required vs. optional fields, unnecessary clicks, and protecting in-progress configuration.

0104

Figma

Defined the flow, wireframes, and UI direction. Mapped the wizard’s structure and step-by-step logic before validating it interactively.

0204

Figma Make

Explored the interaction model through an exploratory prototype — step transitions and decision points. Used as process evidence, not as the shipped product UI.

0304

Claude Code

Translated the direction into a working front-end mock of the full wizard flow — an interactive artifact engineering could review and react to, without backend wiring.

0404

Branch + PR

Opened a branch and PR — the working front-end mock plus a written summary of the flow. The engineer connected the backend, completed testing, and the feature was released as part of the product.

05Key UX decisions

The calls that shaped the work.

A few calls shaped how the wizard reads and behaves.

01Decision

A wizard instead of one long form.

We noticed

The setup is branching and provider-dependent. Showing everything at once would create too much cognitive load.

We decided

Split the flow into focused steps — Provider, Credentials, Model Details, and Availability. Each step asks one main question and adapts to the admin’s previous choices.

Why it worked

The admin’s first choice — provider or model type — determines what comes next; each provider needs different credentials and configuration. A wizard lets the flow reveal only what’s relevant at each moment, while the structure itself stays consistent across providers.

02Decision

Provider cards, with auto-advance as a refinement.

We noticed

Provider choice is the foundation of the setup, but requiring a separate Next click after selecting a single provider added unnecessary friction.

We decided

Use visual provider cards as the main pattern. Auto-advance was designed as a refinement to make the single-choice interaction feel more natural.

Why it worked

Cards make the choice visible and scannable, while auto-advance removes a redundant click when the interaction is clearly a single decisive choice.

03Decision

Designing Model Details around a critical path.

We noticed

The Model Details step contains both critical setup fields and optional advanced configuration. Showing everything at once increases cognitive load.

We decided

Design the step around a clear critical path, with optional pricing and additional configuration grouped into Advanced Settings.

Why it worked

This keeps the main path focused while preserving flexibility for advanced users.

04Decision

Designed to reduce model-name errors.

We noticed

Exact provider model identifiers are technical and easy to mistype.

We decided

I designed a combobox pattern that could show provider model suggestions when available, while still allowing free text as a fallback.

Why it worked

This reduces avoidable errors without blocking custom model configuration. It also supports both experienced admins, who may know the exact identifier, and newer admins, who benefit from provider suggestions.

05Decision

Required testing before save.

We noticed

If credentials, endpoints, regions, or model details are incorrect, the model will fail later. Because credentials and provider settings live outside Tabnine, a configuration can also break if keys are rotated, replaced, or revoked.

We decided

Make testing a required validation moment before saving.

Why it worked

The test verifies that the integration works against the provider right now — proving credentials are valid before the model becomes usable. Validating at setup prevents quiet downstream failures in usage and cost tracking, and gives admins confidence before they make the model available.

06Decision

Handling credentials as sensitive UI.

We noticed

Because the flow handles provider credentials, sensitive fields could be exposed in plaintext — a real risk during demos, screen sharing, or collaborative admin work.

We decided

Credential fields needed to be treated as sensitive UI across the flow.

Why it worked

Consistent handling reduces the risk of exposing secrets and prevents surprises where a value is hidden in one place but visible in another.

07Decision

Protecting in-progress configuration.

We noticed

Closing the modal could reset all state without warning. An admin who entered credentials, picked a model, or ran a test could lose progress with one accidental click.

We decided

Design a discard-confirmation pattern for in-progress configuration.

Why it worked

The confirmation should appear only when there is something to lose, protecting admin work without adding friction at the start of the flow.

06Final solution

What we shipped.

The final experience guides admins through a structured setup flow. Each step focuses on one part of the setup; provider-specific complexity is revealed only when relevant. Validation happens where it matters most — through the required test against the provider — and the structure supports moving between steps as the admin works through the setup.

Step 1 — Provider selection
Admins choose which provider or model type they want to configure.
Step 2 — Credentials
Fields adapt to the selected provider while the wizard structure stays consistent.
Step 2 — Credentials (alternate provider)
Provider-specific requirements are supported without changing the overall flow.
Step 3 — Model details
Admins define the provider-facing model identifier, display name, and optional advanced settings.
Required testing — before test
Admins must run a validation test before the model can be saved.
Required testing — success
A successful test confirms that the provider configuration works before availability is configured.
Step 4 — Model availability
Admins decide whether the model is available to all teams or only selected teams.

The wizard turned Bring Your Own AI from a complex technical capability into a guided admin workflow.

07Flow

How it fits together.

The flow starts with provider selection. The credentials step is designed so its fields adapt to that choice. Admins then define model details, validate the setup, and decide where the model should be available.

The flow is intentionally linear until validation: provider choice determines credentials, credentials and model details determine whether testing can succeed, and only a validated setup should become available.

08Before / After

The same surface, then and now.

Before, admins mainly managed Tabnine-provided models — enabling, disabling, approving, and setting availability.

After Bring Your Own AI, admins could configure customer-owned models, connect their own provider accounts, validate the setup, and control availability alongside the Tabnine-managed set.

Models section — before vs. after Bring Your Own AI — afterModels section — before vs. after Bring Your Own AI — beforeBeforeAfter

Before: admins mainly managed Tabnine-provided models — enabling, disabling, approving, and setting availability.

After: admins can configure their own models using their own provider accounts, control where each model is available, and validate the integration before saving.

09Impact

What changed.

The project was developed and released as part of the product.

Outcomes

  • Turned model configuration into a self-service admin flow — admins could configure customer-owned models through a guided setup instead of relying on a one-off internal process.
  • Supported the Bring Your Own AI direction — customers could connect their own providers and models alongside the Tabnine-managed set.
  • Reduced setup risk — required validation helped catch configuration issues before a model became available.
  • Preserved enterprise control — availability, governance, and cost ownership remained part of the admin workflow.
  • Improved confidence around sensitive setup — credential handling and validation made the flow feel safer and more controlled.
  • Supported a more scalable model-management approach — customer-configured models could be added without Tabnine needing to maintain every provider setup internally.

Related governance work

The wizard also connected to adjacent governance work around cost control, including follow-up exploration for per-model quotas and separate Agent and Chat cost caps. This sits outside the wizard flow itself, but belongs to the broader governance system around customer-owned AI models.