UX Writing

This portfolio showcases my UX writing work, with pieces created in Figma. A significant portion of this portfolio was created during my participation in the Daily UX Writing Challenge in 2024.

The challenge gave me the opportunity to explore different types of UX writing, such as microcopy, error messages, and onboarding flows. I could also experiment with different styles and tones of writing, as well as different types of products and services.

Some of these will have a link to a functioning prototype that you'll be able to tinker with.

Day 15: Banking App Onboarding Flow

Challenge:

  • Write a multi-screen onboarding experience for a banking app that automatically pays a user's bills every month, as long as they set it up correctly.

Constraints:
Headline: 45 characters
Body: 100 characters
Button(s): 25 characters

Rationale

My core strategy was to build user confidence at every step. I used a professional, clear, and reassuring tone to make the app feel secure and easy to use, even for a non-technical user. The flow introduces key benefits one at a time to avoid overwhelming the user.

  • Screen 1: The Core Value Proposition. The first screen immediately addresses the user's desire for convenience with the headline Never fear, Paymate's here! and explains the primary benefit: automating bills and sending reminders. This starts the journey on a positive and helpful note.
  • Screen 2: Building Security Trust. Before asking for any data, the second screen directly tackles the user's biggest fear: security. The headline Fort Knox security. In your pocket. uses a familiar metaphor to convey safety. The body copy reinforces this by mentioning "state-of-the-art cybersecurity," building a foundation of trust.
  • Screen 3: Highlighting Smart Features. This screen introduces another key benefit: automatic categorization of bills. The copy, Smartphone, smart banking, smart user, is empowering and highlights the app's intelligence, showing the user that the app will make their life easier.
  • Screens 4-7: The Setup Process. Once trust is established, the flow moves to the practical steps of creating an account and adding a payment method. The copy remains simple and direct (Enough about us, let's focus on you.). The process is broken down into small, manageable forms to feel as smooth and frictionless as possible, culminating in a welcoming success screen (Welcome Aboard!) once their card is added.
Intended Outcome

This onboarding flow is designed to systematically overcome user anxiety. By introducing benefits first, emphasizing security second, and then guiding the user through a simple, step-by-step setup, the experience builds confidence and trust. The intended outcome is a higher completion rate for the onboarding process and a new user who feels secure and empowered by their new financial tool.

Prototype
Day 14: App Error with Unknown Cause

Challenge:

  • Write a message that informs a user they cannot access a price comparison app right now. You cannot specify "why" the app doesn't work, but you want them to continue using it.

Constraints:
Headline: 30 characters max
Body: 120 characters max
Button(s): 15 characters max

Rationale

This case study is a great example of my iterative process. My first draft attempted to use humor to lighten the mood, but I quickly realized this created a tonal dissonance. A user who can't access the app's core function is frustrated, and a joke can feel invalidating.

Accepting that feedback, I pivoted to a more direct, transparent, and genuinely helpful approach.

  • Honest & Direct Headline: Prices are unavailable. is a clear, factual statement. It immediately tells the user what is wrong without using vague technical jargon.
  • Empathetic Body: "We can't load prices right now" is an honest acknowledgment of the failure. It then immediately provides the user with two constructive options: Please try again soon or visit our website. This respects the user's time and gives them agency.
  • Action-Oriented Buttons: The RETRY and WEBSITE buttons are clear calls to action that directly correspond to the solutions offered in the body, providing a simple, frictionless way for the user to proceed.
Intended Outcome

This solution aims to build trust during a moment of failure. By being transparent about the problem and offering helpful alternatives, the message respects the user's goal and encourages them to remain within the brand's ecosystem, rather than abandoning the app completely.

Prototype
Day 13: Truck Driver Delay Notification

Challenge:

  • A short-haul truck driver has a phone app that monitors his route, schedule, and deliveries. He's behind schedule due to traffic. Write a push notification alerting him of this dilemma and options.

Constraints:
Headline: 30 characters max
Body: 45 characters max
Button(s): 25 characters max

Rationale

My primary focus was on safety and speed of comprehension for a user whose main task is driving.

  • Non-Accusatory Tone: I used a question for the headline, Running Late?, to give the driver the benefit of the doubt. This feels less accusatory than a direct statement, accounting for potential app bugs or data delays.
  • Extreme Brevity: The copy was intentionally kept very short to be effective if read aloud by a screen-assistant. This ensures the driver gets all necessary information quickly and can make a decision without a prolonged distraction.
  • Clear, Actionable Choices: The body presents a simple, critical choice the driver needs to make: Fuel up now or keep going?. The buttons, REROUTE TO PITSTOP and KEEP GOING, are direct, all-caps calls to action that correspond clearly to the options presented, allowing for a quick, informed decision.
Intended Outcome

This solution is designed for a high-distraction environment. It delivers a crucial, time-sensitive choice in a way that prioritizes the driver's safety and minimizes cognitive load, allowing them to make a quick, informed decision and return their focus to the road.

Day 12: "Fake Name" Error Message

Challenge:

  • A user is creating an account. When they enter their name, they get an error message. A fraud detection software thinks their name is fake—but it’s wrong 5% of the time. Write an error message that prompts them to fix the error without shaming them for having a fake-sounding name.

Constraints:
45 characters max

Rationale

My goal was to treat the user with respect and avoid the demoralizing experience of a blunt "invalid name" error. I was inspired by people with unique names, like Nicolas Cage's son Kal-El, who might face this exact issue.

  • Positive and Non-Accusatory Tone: Instead of flagging an error, I used the phrase, That's an interesting name! This reframes a moment of friction into a positive, conversational interaction. It assumes good intent from the user.
  • Collaborative Language: The second part, Please help us verify it, turns the next step into a collaborative request rather than a demand. It empowers the user to help resolve the issue.
  • Actionable Link: The message includes an embedded link to a hypothetical verification page. This provides an immediate, clear path forward, guiding the user toward a solution instead of leaving them stuck.
Intended Outcome

This solution is designed to handle a sensitive, algorithm-driven error with a human touch. By avoiding shame and using friendly, respectful language, it reduces user frustration, builds trust, and helps users with unique names successfully create their accounts without feeling alienated.

Day 11: Contact Lens Subscription - Title & Meta Description

Challenge:

  • Write a title and meta description for a website that sells subscription contact lenses delivered every 30 days. You must convince an elderly user to try it.

Constraints:
Title: 60 characters max
Meta Description: 160 characters max

Rationale

I approached this challenge by creating a persona based on my grandmother: a visually impaired elderly person who values simplicity and clarity. This meant the copy had to be concise to remain readable at a larger font size and focus entirely on the core benefits.

  • Title: Vision Quest: Hassle-Free Contact Lens Delivery Every 30 Days! is direct and benefit-oriented. "Hassle-Free" directly addresses the potential anxiety of managing a new service, while "Contact Lens Delivery Every 30 Days!" clearly explains exactly what the service does.
  • Meta Description: The description, "Create your Vision Quest account in 15 minutes or less, and have your contact lenses delivered to your doorstep every 30 days, hassle-free," is designed to build trust and reduce friction. It quantifies the setup time ("15 minutes or less") to show it's a small commitment and uses reassuring, simple language like "delivered to your doorstep" and repeats the term "hassle-free."
Intended Outcome

This solution is designed to attract and reassure an elderly user. By focusing on simplicity, convenience, and a hassle-free experience, the copy aims to overcome potential tech anxiety and build enough trust for the user to click through and learn more about the service.

Day 10: Car Buying Website Location Request

Challenge:

  • A user is trying to view a website to help them buy a car, but the content can’t load without the user’s location. They need to enter their ZIP code and first name. Ask them where they live and who they are without sounding like you're unnecessarily mining their data.

Constraints:
Headline: 25 characters
Body: 45 characters
Button: 15 characters

Rationale

My strategy was to build trust and excitement by focusing on the reward, using a playful tone, and minimizing the perceived intrusiveness of the request.

  • Benefit-Oriented Headline: The copy leads with an exciting promise: Your dream car is here. This focuses on the user's goal, not the site's data requirement.
  • Humor and Personality: I added the parenthetical (Yes, even THAT one) and used a "Batman"-style font to inject a moment of fun, hinting that even a fantasy car like the Batmobile is within reach. This lightens the mood and makes the brand feel more relatable.
  • Subtle Persuasion: Instead of explaining *why* we need their info, I made the primary call to action VIEW OUR DEALS. This subconsciously frames the data entry as a small, necessary step to unlock a valuable reward, making the user feel in control.
  • Privacy-Conscious Design: The form asks for a "ZIP Code" rather than a full address. This feels less invasive and respects the user's privacy by requesting only the general location needed to provide service.
Intended Outcome

This solution is designed to build trust and encourage user participation by making the data request feel like a low-effort, high-reward exchange. The playful tone and focus on benefits aim to reduce user hesitation and increase the number of users who complete the form and engage with the site's core offerings.

Day 9: Expired Credit Card Error

Challenge:

  • Write an error message for a user trying to rent a car when their credit card on file has expired, so they can correct the problem.

Constraints:
Headline: 30 characters
Body: 45 characters

Rationale

My approach was to be extremely direct to minimize user frustration. At this point in the flow, the user wants a solution, not a conversation.

  • Headline: I chose YOUR CARD IS EXPIRED! in all caps. While unconventional, this choice was deliberate to instantly draw the user's eye to the exact source of the error, removing any ambiguity about what went wrong.
  • Body: The subheading, Update card details or add a new one, functions as a clear, concise instruction. It immediately presents the user with their two possible paths to success.
  • UI/Design Consideration: The design supports the copy by visually highlighting the expired date field in red, reinforcing where the user needs to focus their attention.
Intended Outcome

This solution is designed to reduce the cognitive load on a frustrated user. By immediately identifying the problem and providing clear, actionable choices, it helps the user quickly resolve the payment issue and complete their car rental, turning a hard stop into a minor, easily correctable hiccup.

Prototype
Day 8: Concert Promotion

Challenge:

  • Tell a casual music fan that one of their favorite bands is playing live in their town and compel them to want to go.

Constraints:
Headline: 30 characters max
Body: 45 characters max
Button: 25 characters

Rationale

I aimed to create an experience that felt both exciting and exclusive. The tone is energetic and direct, designed to make the user feel like they are getting an insider opportunity.

  • Headline & Tone: I used the iconic Beatles phrase YEAH! YEAH! YEAH! as the title of the playlist to immediately create an emotional and nostalgic connection. The headline The Beatles are back in your city! is direct and exciting.
  • Body & Aspirational Labeling: Although the target is a "casual fan," I deliberately chose the phrase "loyal listener." This marketing technique, known as aspirational labeling, makes the user feel valued and creates a positive emotional connection. Even a casual fan will feel a sense of pride at being called "loyal," making them more receptive to the exclusive offer. The key information, the presale code FAB4, is bolded for easy access.
  • Button: The PRESALE button is a clear, direct call to action. It takes the user straight to the ticket-buying process, removing any intermediate steps and capitalizing on the excitement generated by the notification.
Intended Outcome

This notification is designed to convert a casual fan's passive interest into an active ticket purchase. By creating a sense of excitement and providing an exclusive, easy-to-use presale code, the solution aims to drive immediate engagement and ticket sales.

Prototype
Day 7: Rivalry Score Update

Challenge:

  • Quickly let a sports fan at a wedding know that their favorite team has just scored against their arch-rivals. Include the latest play, the current score, and the key players.

Constraints:
Headline: 30 characters max
Body: 45 characters max

Rationale

As a fan myself, I approached this from a personal and authentic perspective. The notification needed to be a quick shot of adrenaline that delivered all the vital stats.

  • Headline & Tone: I used ALL RISE FOR GRAND SLAM to create an immediate and exciting connection for a Yankees fan. "All Rise" is brand-specific language synonymous with Aaron Judge, so the headline itself tells half the story before the user even reads the body. It’s insider language that makes the fan feel seen.
  • Body: The body is straightforward and data-focused. It confirms the player (Aaron Judge), the monumental play (blasts a Grand Slam), and the direct impact on the game (NYY lead BOS 5-0). There's no fluff, just the facts every fan is desperate to know.
  • Design Authenticity: To add a layer of genuine passion, the wallpaper used in the mock-up is the official design released by the Yankees for Derek Jeter's Hall of Fame induction—a wallpaper I had on my own phone for a long time. Using authentic fan materials makes the experience feel more real. (And for the record, to the one writer who voted against his unanimous induction: we just want to talk.)
Intended Outcome

This notification is designed to deliver a burst of excitement and critical information in seconds. It allows the fan to stay present at their social event while still feeling connected to the game's biggest moments, creating a positive and thrilling touchpoint for the user.

Day 6: Fire Alert Notification

Challenge:

  • Let a user know there’s a fire in a nearby town causing road closures, as they are driving to work. The effect on their commute is unknown, but there is a definite danger if the fire gets closer.

Constraints:
Headline: 30 characters max
Body: 45 characters max

Rationale

For a safety-critical alert for a user who is driving, my approach was to be as direct and attention-grabbing as possible. Clarity and immediate comprehension were my top priorities.

  • Design and Tone: I used a red background and all-caps text to signal extreme urgency. The design is intentionally jarring to ensure the user understands this is not a standard notification and requires their immediate attention.
  • Headline: FIRE ON ATLANTIC AVE is direct and provides the most critical information first: the hazard and the location.
  • Body: FIRE MAY AFFECT YOUR ROUTE. REROUTE. is short, scannable, and provides a clear, actionable instruction. I avoided unnecessary details about the fire itself, as the user's primary need is to know how it impacts their immediate safety and route.
  • Button: The REROUTE TO SAFETY button is a clear and compelling call to action. The addition of "TO SAFETY" reinforces the seriousness of the situation and frames the action as a direct move toward security.
Intended Outcome

This solution is designed to quickly and safely inform a distracted user of a potential danger. It prioritizes immediate comprehension and provides a single, clear action the user can take to avoid the hazard, ensuring their safety is the primary focus.

Day 5: App Crash Recovery Message

Challenge:

  • A user works in graphic design. While critiquing a design in a mobile app, their phone abruptly turns off. When they restart the phone, they reopen the app. Write a message that the user will read immediately upon opening the app. What do they need to know? What steps (if any) do they need to take to recover their content? What if they can't recover the content?

Constraints:
Headline: 40 characters max
Body: 140 characters max
Button(s): 20 characters max

Rationale

Drawing from the universal frustration of losing work to unexpected errors, I prioritized immediate reassurance and clarity. The user is stressed, so the message needed to be a calming and helpful guide.

  • Headline: ACME DESIGNS Crashed Unexpectedly is a transparent and honest statement. It acknowledges the app failed, which builds trust.
  • Body: The first sentence, "But don't fret! Your design files were recovered," directly addresses the user's primary fear. The phrase "don't fret" is empathetic and conversational. The rest of the body clearly explains the two available paths: restoring the previous session or starting fresh.
  • Buttons: The button labels Restore and New are simple, action-oriented, and directly correspond to the choices outlined in the body text, making the user's next step effortless.
Intended Outcome

This solution turns a moment of high anxiety into a positive recovery experience. By immediately confirming that the user's work is safe and offering clear choices, the message reduces frustration, builds trust in the app's reliability, and allows the user to get back to their work with minimal disruption.

Prototype
Day 4: Grocery Subscription Promotion

Challenge:

  • Write a promotional home screen for a subscription service that delivers groceries to the user once a month for a flat fee.

Constraints:
Headline: 45 characters max
Body: 175 characters max
Button(s): 25 characters max

Rationale

I focused on emphasizing the convenience and the "comfort of home." The copy aims to frame the service as a lifestyle upgrade.

  • Headline: ENJOY THE COMFORT OF HOME, WE'LL SHOP FOR YOU. is direct and benefit-oriented. It immediately presents the core value: you relax while we do the work.
  • Body: The body copy quantifies the service ("month's worth of groceries") and the cost ("flat fee of $20/mo"), making the offer tangible and transparent. It reinforces the core benefit of having groceries "delivered to your doorstep."
  • Buttons: LEARN MORE is a low-pressure call to action for users who are interested but not yet ready to commit. NO THANKS is a clear and respectful way for users to decline, which is important for building trust.
Intended Outcome

This promotional screen aims to appeal to users who value their time and convenience. By clearly stating the service's benefit and cost, it allows the user to quickly assess the value proposition and make an informed decision, positioning the app as a practical solution to a common life-chore.

Prototype
Day 3: Incorrect Email Error Message

Challenge:

  • Tell a user to enter the correct email address after they have entered the wrong one to sign in to their account.

Constraints:
40 characters max.

Rationale

My personal experience with vague errors like "invalid credentials" inspired me to take a more direct and helpful approach. The user's goal is to log in, and the copy should facilitate that, not block it.

  • Specificity over Vagueness: Instead of a generic "Something went wrong," I chose Retype email address, '[email]'. This message is highly specific. It tells the user exactly which field is incorrect and echoes back the mistaken entry, helping them spot a potential typo immediately.
  • Action-Oriented Language: The phrase "Retype email address" is a clear, direct command. It removes the guesswork and tells the user precisely what action to take next.
Intended Outcome

This solution reduces user frustration by eliminating ambiguity. By immediately identifying the exact problem and providing a clear instruction, the user can correct the error in seconds and successfully log in, turning a moment of potential annoyance into a seamless recovery.

Day 2: Sports Fan App Promotion

Challenge:

  • A user is a working parent and a big sports fan who can no longer attend games. Write a promotional screen for an app that lets a user choose teams, sends game reminders, real-time score updates, and highlight videos.

Constraints:
Headline: 40 characters max
Body: 175 characters max
Button(s): 25 characters max

Rationale

My goal was to create a tone that was the opposite of the user's frustration: whimsical, fun, and energetic. The user is short on time, so the copy needed to be quick, catchy, and immediately communicate the app's core value.

  • Headline & Body: I used a simple rhyming scheme ("Don't miss hoops, stay in the loop!") to be playful and memorable. The body copy ("If you're in a jam, we'll make sure you don't miss the next slam!") continues this lighthearted tone while directly addressing the user's problem: being too busy. I then clearly listed the app's key features (reminders, real-time updates, highlights) to show *how* we solve their problem.
  • Button: The call to action, Score a win against FOMO!, directly uses the emotional term we identified. It frames the app not just as a utility, but as a victory over the feeling of being left out.
Intended Outcome

This promotional screen is designed to quickly capture the user's attention and reframe the negative feeling of FOMO into a positive, achievable solution. It highlights the convenience of staying connected to the sports world, allowing the user to be a present parent without missing the big moments.

Prototype
Day 1: Flight Cancellation Notification

Challenge:

  • Write a message from an airline app to a traveler whose flight has been abruptly cancelled due to bad weather. The message should notify them of the cancellation and tell them what they need to do next.

Constraints:
Headline: 45 characters
Body: 175 characters max
Button(s): 25 characters max

Rationale

Given the user's high-stress situation, my approach was to be direct, clear, and empathetic. I used a "no frills" voice, prioritizing critical information over conversational fluff.

  • Headline: FLIGHT CANCELLED. GO TO HELP DESK is direct and scannable. It immediately tells the user the two most important things: what happened and where to go next.
  • Body: I used simple, professional language like "inclement weather" and provided the specific flight number (DOC063) for confirmation. The body reinforces the next step—"Please head to the help desk"—to ensure the user knows exactly what to do.
  • Buttons: The Got it button is a simple acknowledgment, allowing the user to dismiss the notification and focus on their next action. The Airport Map button provides an immediate tool to help them navigate, directly addressing their potential frustration of being lost or disoriented.
Intended Outcome

This solution aims to reduce the user's cognitive load during a stressful moment. By providing clear, concise information and a direct call to action, the user can quickly move from a state of confusion to proactive problem-solving, improving their overall experience with the airline, even when things go wrong.

Prototype

And for funsies...

The Spidey Bathroom Pass

This is a bathroom pass I designed for my partner's classroom. It features images from Spider-Man's prolific comic run, including that time he taught an interdimensional cosmic god how to use the bathroom.