Login & Signup Flow Redesign

El Confidencial's login and signup lived in two separate modals — confusing for the user, who had to decide which one they wanted before even typing their email. I redesigned them as one email‑first component reusable across the entire product — a single screen with four ways in, where the system reads the email and branches between login and signup for the user. Two years on, the component is wired into 24+ surfaces, serves 25.2M appearances every 90 days, and 47.89% of users who interact with the CTA end up inside.

User Access Component System Growth & Conversion
Client:
El Confidencial
Area:
User Access / Growth
Date:
2024
Unified login and signup modal with four entry methods: Google, Apple, Facebook, and email

The Challenge

Two separate modals — one for signup, one for login — forced the user to decide which one they wanted before they had even entered their email. On top of that, the component was wrapped in an iframe that limited where the flow could live: every new entry point in the product needed its own implementation. The redesign had to do three things: unify the flow, take the login-vs-signup decision off the user, and ship one component that could plug into any surface of the product.

Benchmark of login patterns across international news platforms

Research & Benchmark

I audited the old flow's analytics baseline and benchmarked authentication patterns from international news platforms. Three findings drove the redesign: native email signup had a 31.7% error rate at the GDPR step (the alias was the blocker), login already worked better than signup (22.1% vs 5.9% conversion), and Google was already the dominant entry method even in the old flow. If the redesign was going to bet on something, it had to be social-first — not email.

One Modal, Four Entry Methods

The redesigned modal has one headline ("Log in or create a free account") and four ways in: Google, Apple, Facebook, and email. The user no longer has to declare intent — the system figures it out once it sees the email. Same component, same visual language, used across web (desktop + mobile) and the native apps. No more parallel screens drifting apart with every release.

The unified modal with four entry methods, used across web and app

Email‑First Bifurcation

Once the user enters their email, the system checks if it exists. If it does, the modal becomes a login screen — with the email pre‑filled, an edit pencil, and a password field. If it doesn't, it becomes a registration screen — same pre‑filled email, with a "create password" field instead. From the user's side, it's one continuous flow.

Flow showing the system branching to login or registration based on whether the email already exists

Create Account, Same Component

When the email is new, the modal flips into registration without leaving the surface. Email pre‑filled, password field, consent inline, optional opt‑in for partners — all in the same visual language as login. The two flows that used to require two separate modals now share everything except the password behaviour, and the user can't tell where one ends and the other starts.

Flow showing the registration sequence reusing the same modal layout

Edge Cases & Errors

Every error in the unified flow is typed and instrumented. The full error set was defined during the design sprint, before development — so the data team could read which type of error was hitting users from day one, and copy could be tuned per error without rewriting the flow.

Error states and edge cases — typed errors with humanised messaging

Across Platforms

Same component, four platforms. The web version was built without iframes — as a custom element that can plug into any surface. The iOS and Android apps follow the same component structure, adapted to each platform's native specifications. One source of truth for design, analytics, and copy across desktop, mobile web, iOS, and Android.

The unified component implemented across web (desktop and mobile) and native apps

Real Numbers in Production

Numbers pulled from production across every surface where the component appears. Two years after launch, the component is still the most active piece of the product and the design decisions still hold up.

In production today

25.2M Times the unified modal was shown in the last 90 days. The component is the most active surface in the entire product.
24+ Surfaces of the product where the component is plugged in — homepage, archive, menu, newsletters, four comment surfaces, paywall, app onboarding, app profile, app reactions, app save, and more.
47.89% Of users who interact with the CTA (click_login) end up logged in (login_success) within the same session. The modal itself isn't a bottleneck.
92% Of identified entries come from Google. Apple 4%, email 2.5%, Facebook 1.5%. Social beats email 40 to 1 — the visual hierarchy (social on top, email below) is what the user already wanted.
1k–2k Successful logins per day, sustained throughout the year with no dips. The component scales without complaints.
6 new
surfaces
Built on top of the component in the two years since launch (sticky bar, inline registration wall, "follow author" gate, interest banner, gamification modal, paid newsletter gate) — all reusing the original analytics spec without modification. The component became the platform.

Key Decisions

Five decisions that defined the redesign. The first is the architectural one — everything else follows from it.

Decisions and rationale

One email‑first modal that the system bifurcates (login vs signup) The user doesn't need to know in advance whether they're logging in or signing up — the system knows the moment it sees the email. Removing that initial cognitive decision lowers friction and unifies the instrumentation.
Visual hierarchy: Google + Apple + Facebook on top, email below The data was already saying that Google dominated. Putting social first reflects what users want, not what designers assume. Validated by 92% of identified entries going through social.
One component, no iframe — reusable anywhere in the product The iframe was the structural bottleneck — any visual improvement was stuck in the few points where it was mounted. Lifting it and componentising (React + MUI inside a custom element) opened the design to 24+ surfaces. The redesign becomes a platform.
Analytics spec co‑signed by Design and Data in the same design sprint Co‑writing the spec before dev avoids event names being made up at commit time. The 2026 inline registration wall is still reusing the same table of canonical events without negotiation — good instrumentation ages well.
Password recovery inline, in the same modal Keeping the user in the same context cuts the bounce rate of password recovery. The component was already designed to support multiple states; integrating "forgot password" inline was the natural call rather than sending the user to a separate page.

Two Years In

The component is still the front door of the product. Two years of iterations on top and the numbers keep holding: 1,000–2,000 successful logins per day with no dips, 25M appearances every 90 days, the social hierarchy validated by the data is still the visual hierarchy. Every new acquisition lever the team launches — sticky bar, inline registration wall, interest banner — plugs into the component without asking design for another iteration. That's the strongest proof that the architectural decision worked.

Learnings & Notes

  1. 01

    Designing as a component compounds over time.

    Two separate modals would have been faster in sprint 1. But by sprint 24, every new acquisition lever would have demanded its own redesign. One component + system‑driven bifurcation is the reason six different surfaces have been built on top in two years without touching the original spec.

  2. 02

    The user doesn't need to know what they want before they start.

    Asking "login or signup?" before the user had even entered their email was friction the system had invented. Once the system took that decision over, the flow got simpler visually and in code. The rule generalises: whenever design asks the user something the system can deduce, it's asking for extra work.

All Projects