<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Basic-Good-Great]]></title><description><![CDATA[Weekly 5-minute stories from a senior designer who builds with AI and audits against WCAG 2.2 for a living. From your first alt text to expert-level accessibility - one story at a time.]]></description><link>https://alexaci.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!zT9G!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4a47025-a546-40f6-8976-15f5b29222a3_751x751.png</url><title>Basic-Good-Great</title><link>https://alexaci.substack.com</link></image><generator>Substack</generator><lastBuildDate>Tue, 03 Nov 2026 21:56:26 GMT</lastBuildDate><atom:link href="iframe.php?url=https%3A%2F%2Falexaci.substack.com%2Ffeed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Alexandra Ciobanu]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[alexaci@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[alexaci@substack.com]]></itunes:email><itunes:name><![CDATA[Alexandra Ciobanu]]></itunes:name></itunes:owner><itunes:author><![CDATA[Alexandra Ciobanu]]></itunes:author><googleplay:owner><![CDATA[alexaci@substack.com]]></googleplay:owner><googleplay:email><![CDATA[alexaci@substack.com]]></googleplay:email><googleplay:author><![CDATA[Alexandra Ciobanu]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[I rebuilt my landing page seven times]]></title><description><![CDATA[Six of them were about how it looked. The seventh was the first time anyone went underneath.]]></description><link>https://alexaci.substack.com/p/i-rebuilt-my-landing-page-seven-times</link><guid isPermaLink="false">https://alexaci.substack.com/p/i-rebuilt-my-landing-page-seven-times</guid><dc:creator><![CDATA[Alexandra Ciobanu]]></dc:creator><pubDate>Wed, 30 Sep 2026 08:28:48 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21zT9G%21%2Cw_256%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa4a47025-a546-40f6-8976-15f5b29222a3_751x751.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last issue I published my own accessibility report, nine failures and a link anyone could open, and said the next thing I would do was take the site into the code. The report is still there, and you can run the same scan on your own site at <a href="iframe.php?url=https%3A%2F%2Fscan.alexandra-ciobanu.co.uk%2F">scan.alexandra-ciobanu.co.uk</a>.</p><p>That is done. Before I tell you what was under there, here is how <a href="iframe.php?url=http%3A%2F%2Falexandra-ciobanu.co.uk">alexandra-ciobanu.co.uk</a> got built in the first place, because the two are the same story.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://alexaci.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Basic-Good-Great is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>I rebuilt it seven times.</p><h2>v1 and v2: structure and words</h2><p>The first two were not design. They were what the site says and in what order, paragraph by paragraph.</p><p>I did not know at the time that this was the most valuable part. I thought it was the throat-clearing you do before the real work. It is the real work. Every version after this one was cheaper or more expensive depending on how well these two went.</p><h2>v3: the panel of eight</h2><p>I wrote a prompt that reviews the whole thing from eight directions at once. UX, interface, copy, search, conversion, accessibility, brand, mobile. Three most critical changes each, and what to remove.</p><p>It found things I could not see, which is the entire point of asking. I have stopped using it as a one-off prompt since. What it taught me became standing practice: copy and strategy get reviewed before I make a single visual decision.</p><h2>v4: the marketer</h2><p>A friend who does this for a living looked at the site and told me what was wrong with it.</p><p>Her critique was a different species from the model&#8217;s. A model tells you what is missing against a checklist. She told me what a person would think and where they would lose interest. She also pointed her own AI at my site, which is its own small lesson: the same tools give you different answers depending on who is asking and what they already know.</p><h2>v5: concrete over clever</h2><p>A real hero instead of a clever one. Named portfolio pieces instead of gestures at capability. Pricing decided and written down rather than left to a conversation.</p><p>Every vague thing on that page was vague because I had not decided something yet. That is usually what vague copy is.</p><h2>v6: the visual accessibility pass</h2><p>This is where I rebuilt the gradients from stops of matching luminosity, with separate versions for light and dark, because one set cannot serve both themes.</p><p>It is also where I found a pattern I have been finding ever since. Eyebrow text, the small line of text that sits above a heading, gets set in the palette&#8217;s faintest tone at the thinnest weight available. That combination is what these AI tools reach for by default, and it fails on contrast almost every time. I have now fixed it on my site and on a client&#8217;s.</p><p>And it is where I added the accessibility panel, deliberately, against advice, so that I would know exactly how one behaves rather than having an opinion about it.</p><p>What that pass could not catch is the part I wrote about last issue. The colours passed and the structure did not. Every phrase given its own treatment, a gradient, a colour, a bold word, had been built as a separate piece of code sitting loose inside the sentence, so a screen reader reads the sentence in fragments instead of as one thought. That is not a gradient problem. It happens with an underline, a different colour, an italicised word, anything that makes part of a phrase look different from the rest. Nearly every AI-built site does it.</p><p>The second default is the same kind of thing in a different place. My site has a folded menu for phones and a full one for laptops. On a laptop the phone menu is hidden from view, but it was still sitting in the page, so a screen reader announced it and pressing Tab walked straight into it. Hidden to look at, fully present to everything else. Both of these are what the builders produce unless you go and check, and neither is visible in a screenshot.</p><h2>v7: into the code</h2><p>The seventh is the one that matters, and it is not a redesign.</p><p>A Lovable build writes its code to a GitHub repository. Most people never open it. I pointed Claude Code at mine and had it read the whole thing properly instead of prompting at the surface.</p><p>The first thing I did was simplify. I removed the newsletter signup and the table behind it, because I did not want to be holding anyone&#8217;s email address on my own site. You are reading this on Substack for that reason. Fewer things that hold personal data, fewer obligations I have to meet properly, and I would rather meet a few properly than several badly.</p><p>Then it got interesting.</p><p><strong>My hero headline was invisible to anyone with Reduce Motion switched on.</strong> Not faint, not slow. Blank, permanently.</p><p>Four things on my site arrive by fading in. Sections as you scroll to them, lists that appear one item after another, headlines that come in letter by letter, and the big headline at the top of the page.</p><p>Each one starts out invisible on purpose, and the animation is what makes it visible. If you have Reduce Motion switched on, that animation never runs. So every one of those four has to be given a separate instruction: if the animation is off, just be visible from the start.</p><p>Someone had written that instruction for three of them. Not for the fourth. The fourth was my headline, so my headline never got told to appear, and it never did.</p><p>Reduce Motion is not a niche setting. It is switched on by people who get migraines and people with vestibular conditions, who feel sick when a page moves under them. They arrived at a site that sells accessibility and found a blank space where the sentence should be.</p><p>No test failed. Nobody reported it. It was found by going back over all four fade-in effects and asking whether that fix had really covered every one of them.</p><p><strong>A test was supposed to walk through my whole site using only the keyboard</strong>, landing on every link in turn, the way someone who cannot use a mouse would. It never got past the first handful. It had run eighteen times and passed eighteen times.</p><p>It worked like this. As it went, it kept a list of where it had been, and it recognised each link by the words written on it. Three links on my site say exactly the same thing: Posted on LinkedIn. When the test reached the second one, it looked up its list, saw those words already there, decided it had been to this link before, and stopped walking.</p><p>The only rule checking the test asked it to reach more than five links. It was stopping right around five, just above the line, so it passed every time and nobody looked again.</p><p>Nothing was wrong with having three links worded the same way. What was wrong was the test using the wording to keep count. I changed it to keep count by position on the page instead. The walk carried on past the point it had never crossed and immediately found a real problem that had been sitting there all along: one set of portfolio links showed no outline at all when you tabbed onto them, on every screen size.</p><p>The test had never lied to me. It said the links it visited were fine, and they were. It simply never mentioned that it was visiting five of them and then going home.</p><p><strong>Another check measures whether my text is dark enough against its background.</strong> It kept failing, but on a different part of the page each time I ran it. That should not be possible. The colours are written down in the code and they do not change.</p><p>My page fades things in as you scroll. The check was reading the colours while they were still fading, catching them halfway between invisible and finished, and reporting that halfway colour as though it were the real one.</p><p><strong>Then a set of results arrived for something I had never sent.</strong> I asked Claude to compare my colours against a reference set, and forgot to attach the reference set. It produced the full comparison anyway. Every colour, every difference, worked out to two decimal places.</p><p>It looked completely convincing. I only caught it because I stopped and asked whether it had ever actually received the colours I thought I had given it. It had not. The whole thing went.</p><p>Three more had the same shape. A note written to say a security check had passed, before that check had finished running. A review telling me my sitemap was missing, because it looked for the file in one place and mine is made on the spot somewhere else. It had been working all along.</p><p>And one that was mine, from a different direction entirely.</p><p>This one is not in the code. It is in the report I published last week, and I put it there myself when I signed that report off.</p><p>My audit tool gives every requirement one of four verdicts. It meets the standard, it fails, it needs a person to look again, or it does not apply because there is nothing on the page to check. I set the ones a machine cannot decide, by hand.</p><p>One requirement covers the descriptions attached to images, the words a blind person hears in place of the photograph. My site has images. Their descriptions are adequate, and I wrote a note saying exactly that, along with a suggestion for making them better. Less &#8220;Alexa C., in studio&#8221; and more of what is actually in the picture.</p><p>Then I set the verdict on that same requirement to &#8220;does not apply&#8221;. No images to check.</p><p>The note says the descriptions are there and could be improved. The verdict says there is nothing there at all.</p><p>I signed that off on the 3rd of September and it stood for four weeks, including in the report I linked in last week&#8217;s issue. I corrected it yesterday. The verdict now says what my own note always said.</p><p>Fixing it taught me more than finding it. A signed report is locked on purpose, so that nobody can quietly change a verdict after it has gone out. Correcting one line meant switching that lock off, changing the row, and switching it back on, and the report now shows the right answer with no record anywhere of what it used to say or who changed it. On my own site I can live with that. On work someone has paid for, a correction that leaves no trace is worse than the mistake it fixes. That is the next thing I am building.</p><p>The copy of the report that went out as a PDF still carries the old verdict. I cannot reach into a file somebody has already saved.</p><p>Seven of them. None was found by something breaking. Every one was found by asking how the result was produced.</p><h2>What seven rebuilds taught me</h2><p>Not to rebuild less. To stop skipping.</p><p>Six of those versions were me finding out, expensively, what the version before had left undecided. Vague copy because the positioning was not settled. A visual pass that had to happen twice because the first one judged colour by eye. A site that looked finished for months while nobody had opened the code.</p><p>If I started today: words and structure first, all of it, before any visual work. Brand foundations before that. A sorted set of references before a single prompt. Build visually. Then into the code before it goes live, not five months after.</p><p>That is not a longer process. It is the same work, in an order that means you only do it once.</p><h2>This week&#8217;s move</h2><p>Do not rebuild anything.</p><p>Take whichever page you keep tinkering with and get its words into a plain document. Every heading, every paragraph, in order. No design, no colour, no layout. Type it out, or paste the link into whichever AI you use and ask it to pull the text out for you.</p><p>If a section is hard to write, you have found the thing you have not decided yet. That is what your next rebuild was going to be about anyway.</p><p>How many times have you redone the look of something, without once opening what is underneath it?</p><p>Alexandra</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://alexaci.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Basic-Good-Great is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The machine caught me]]></title><description><![CDATA[I built a tool that finds accessibility failures. Then I pointed it at my own site.]]></description><link>https://alexaci.substack.com/p/the-machine-caught-me</link><guid isPermaLink="false">https://alexaci.substack.com/p/the-machine-caught-me</guid><dc:creator><![CDATA[Alexandra Ciobanu]]></dc:creator><pubDate>Tue, 22 Sep 2026 15:00:13 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21zT9G%21%2Cw_256%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa4a47025-a546-40f6-8976-15f5b29222a3_751x751.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last time I wrote, I put three versions of the same website side by side and argued that the difference between them was not the prompt. It was everything I did before opening the builder.</p><p>That was the 20th of August. Since then, a holiday, a client project, and most evenings spent making my audit tool better. Four weeks with nothing from me.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://alexaci.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Basic-Good-Great is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>I said weekly when I started this, and this gap was far too long. I am sorry for it. I have also changed my mind about the promise. I would rather write to you when I have something worth your time than fill a Tuesday for the sake of filling it. So from here, I write when there is something real to share.</p><p>Here is what I was doing instead.</p><h2>I audited my own site</h2><p>I built alexandra-ciobanu.co.uk in Lovable around April. It was not my first build. Maybe the fifth, maybe the seventh. I had none of the skills I have now. No brief skill, no brand framework, no colour system. I looked up references by hand, fed them in as inspiration, and prompted until it looked the way I wanted it to look.</p><p>I knew enough to catch some accessibility problems by eye, and I fixed those. What I never did was a real pass. Keyboard, screen reader, zoom. The things you cannot judge by looking at a screenshot.</p><p>So on the 31st of August I put it through my own tool. Fifty-five requirements. Ten a machine can decide, forty-five that need a person, which is the entire argument the tool exists to make. Twenty-six meet. Nineteen do not apply to a page like mine. Nine fail. One needs review.</p><p>Those nine are what is left after the things I had already fixed by eye. Every visual correction I made before the scan held.</p><p>This is <a href="iframe.php?url=https%3A%2F%2Fscan.alexandra-ciobanu.co.uk%2F02fdcf65-59b1-4f90-9329-767db6b6814b">the accessibility report for my webiste</a>, unedited.</p><h2>The gradient I asked for</h2><p>I wanted a few words in each headline filled with a gradient. I knew colour was the obvious risk, so I had it built from stops of matching luminosity, with separate gradients for light and dark, because one set cannot serve both.</p><p>The colour was fine. I checked it by eye and ran every pair through a contrast checker until it cleared the minimum.</p><p>The structure was not, and I had no way of seeing that. You only find it by listening to the page with a screen reader or moving through it with a keyboard, and I had never done either on my own site.</p><p>Each styled phrase was built as its own separate piece of code, sitting loose inside the sentence rather than joined to it. A screen reader, the software a blind person uses to have a page read aloud, treats each of those pieces as its own thing. So the sentence arrives in fragments instead of as one thought. It is not one heading. It runs across the whole site. And it runs across every site that has a different typeface treatment in the same phrase: an underline, a different color, an italicised word.</p><p>This is the finding that goes furthest beyond me. Any coloured word, any highlighted phrase, any gradient inside a paragraph can do the same thing, and nearly every AI-generated site uses that treatment. On a client&#8217;s site I hit the other half of it, where the model simply picked a second colour that failed contrast. Same feature, two different ways to break.</p><p>The fix is structural. The look survives it.</p><h2>You cannot see where you are</h2><p>Plenty of people never touch a mouse. They move through a page with the Tab key, and the only thing telling them where they have landed is a visible outline around the link or button.</p><p>On my site, pressing Tab on a laptop made the outline disappear. I could not see where I was. The only clue was the web address that flickers up in the corner of the browser.</p><p>The cause is simple once you know it. My site has two menus, a full one for laptops and a folded one for phones. On a laptop the phone menu is hidden from view, but it was still there in the page, so pressing Tab walked straight into it. The outline was moving through links nobody could see.</p><p>To a keyboard user, the page just goes blank for several presses and then comes back somewhere else.</p><h2>Labels that disappear as you type</h2><p>A form field should carry a label that stays put, a few words above or beside the box telling you what goes in it.</p><p>Several of mine use the faint example text inside the box instead. <a href="iframe.php?url=mailto%3AYou%40company.com">You@company.com</a>, that sort of thing. The moment you start typing, it vanishes, and the box stops telling you what it was ever for.</p><p>If you have a sharp memory and one field to fill, you will not notice. If you get interrupted halfway, or you have a memory or cognitive difficulty, you are now looking at a box with your own half-typed answer in it and nothing else.</p><h2>The panel I installed on purpose</h2><p>Claude advised me not to put an accessibility panel on my site. I installed one anyway, because I wanted to test every part of one myself rather than hold an opinion about them.</p><p>It took a great deal of manual work and back and forth. The inverted mode ignored my own light and dark themes entirely.</p><p>Then I found the same flaw somewhere else. You may remember the stranger who messaged me on LinkedIn months ago, asking if I would look at the accessibility evaluator he had built. His report was the one I could not understand, and the one that eventually pushed me to build my own. His panel had the same bug as mine, inverting some sections of the page and leaving the rest alone. I told him. He said he had fixed it. He had not tested it.</p><p>Mine still failed. When I first tried zooming the site to 200%, nothing grew at all. It took several fixes before the page would scale. Once it did, one thing still refused: the accessibility panel itself, which stays its original size and ends up smaller and harder to read than everything around it. The one control built for people who need to zoom is the one that will not.</p><p>That matters well beyond my site. In 2025, 983 US accessibility lawsuits, close to a quarter of all filings that year, were brought against websites that already had one of these widgets installed. Five providers account for 88% of those cases. In April 2025 the FTC fined accessiBe $1 million for marketing its widget as a route to WCAG compliance.</p><p>A panel is not a fix. Mine is not either. It is a convenience, and it has to meet the standard like everything else on the page.</p><h2>The rest of them</h2><p>Two carousels a screen reader never announces, so there is no way to know they exist or to move between slides. Content colliding and getting clipped at 400% zoom, with the site name landing on top of the navigation. Two buttons that do the same job with two different names, which a screen reader user will reasonably hear as two different things. And a subscription confirmation that appears on screen and stays completely silent for VoiceOver.</p><p>There would have been more. I had already corrected the gradient colours and caught a pattern I keep finding since: eyebrow text set in the palette&#8217;s lowest-contrast tone at the thinnest available weight, which is what these tools reach for by default. That one is its own story, and it belongs in the post about rebuilding my site seven times.</p><h2>What I am doing about it</h2><p>I have fixed none of it yet.</p><p>The plan is the one that worked on a client project last month. A Lovable build writes to a GitHub repository, so instead of prompting at the surface I pointed Claude Code straight at that repository and had it read the code properly.</p><p>On the client&#8217;s site it found exactly what a year of visual prompting leaves behind. Spacing values that never repeat. Fonts that accumulated and were never cleared out. Dead code nobody removed. I expect the same on mine. The visual corrections are small. What sits underneath is the real work.</p><p>The report has its own rough edges too, and you will see them if you open the link. It is far too much text for a business owner to take in. Turning it into something you can read at a glance is next on my list after the site.</p><h2>This week&#8217;s move</h2><p>Before you run anything, think about who you are keeping out. Not in the abstract. The person whose hand shakes and cannot land on your button. The one reading on a phone in bright sun. Your customer&#8217;s mother. Someone holding a baby and typing with one hand.</p><p>Then put your own site through the <a href="iframe.php?url=https%3A%2F%2Fscan.alexandra-ciobanu.co.uk%2F">free website accessibility scan</a> and read the part that tells you what a machine cannot decide.</p><p>Your site works for you. Who have you never found out it was failing?</p><p>Alexandra</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://alexaci.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Basic-Good-Great is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Basic, good, great]]></title><description><![CDATA[Three websites, one brief, and the accessibility build that did not happen]]></description><link>https://alexaci.substack.com/p/basic-good-great-7ce</link><guid isPermaLink="false">https://alexaci.substack.com/p/basic-good-great-7ce</guid><dc:creator><![CDATA[Alexandra Ciobanu]]></dc:creator><pubDate>Thu, 20 Aug 2026 14:57:03 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21tuHW%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F719de497-c659-4e76-ba87-4dd4d3e39c65_3840x2160.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last week I told you the next thing you would see from me was the accessibility build. It is not here. I am not going to dress that up.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://alexaci.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Basic-Good-Great! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>A while ago I was invited to talk to MOB, a community of mothers who run their own businesses. I said yes the way you say yes to something far away, then dwelled on it for weeks until it stopped being a talk and became the thing I do all day, written down for the first time.</p><p>Thirty minutes. Twenty-four slides. No code.</p><h2>What I built first</h2><p>Two skills, and part of a third.</p><p>One writes the brief: who it is for, what it has to do, the constraint I will not move on. One runs the brand foundations, vision, values, tone of voice, the creative opponent, the visual metaphor. It interviews me. It does not decide for me. The third is a colour system, not finished, and I am not going to pretend otherwise.</p><p>All of it in one Project, so every new chat starts already knowing the business.</p><h2>Three pages, same brief</h2><p>One: brief only. Output: Cream background, dark text, one accent, a typeface you have already seen twice this week. Nothing wrong with it. Nothing in it mine.</p><p>Two: brief plus brand foundations, plus a moodboard I had actually sorted. Layout in one pile, typography in another, colour, photo style, screens. It finally says something you could disagree with.</p><p>Three: all of that, plus a design system, a sitemap, an app flow, my own portrait with live text over it, and me at every stage saying which reference to take what from.</p><p>Basic, good, great. The third one is not a better prompt. It is a hundred small decisions, said out loud. Great can still be better, and I am parking it here as one workshop&#8217;s result.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21tuHW%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F719de497-c659-4e76-ba87-4dd4d3e39c65_3840x2160.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tuHW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F719de497-c659-4e76-ba87-4dd4d3e39c65_3840x2160.png 424w, https://substackcdn.com/image/fetch/$s_!tuHW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F719de497-c659-4e76-ba87-4dd4d3e39c65_3840x2160.png 848w, https://substackcdn.com/image/fetch/$s_!tuHW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F719de497-c659-4e76-ba87-4dd4d3e39c65_3840x2160.png 1272w, https://substackcdn.com/image/fetch/$s_!tuHW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F719de497-c659-4e76-ba87-4dd4d3e39c65_3840x2160.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21tuHW%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F719de497-c659-4e76-ba87-4dd4d3e39c65_3840x2160.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/719de497-c659-4e76-ba87-4dd4d3e39c65_3840x2160.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1762192,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://alexaci.substack.com/i/212014693?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F719de497-c659-4e76-ba87-4dd4d3e39c65_3840x2160.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tuHW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F719de497-c659-4e76-ba87-4dd4d3e39c65_3840x2160.png 424w, https://substackcdn.com/image/fetch/$s_!tuHW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F719de497-c659-4e76-ba87-4dd4d3e39c65_3840x2160.png 848w, https://substackcdn.com/image/fetch/$s_!tuHW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F719de497-c659-4e76-ba87-4dd4d3e39c65_3840x2160.png 1272w, https://substackcdn.com/image/fetch/$s_!tuHW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F719de497-c659-4e76-ba87-4dd4d3e39c65_3840x2160.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Caption: Same brief, three levels. Brief only. Brief + brand. Brief + brand + craft.</em></p><h2>The tools moved</h2><p>I built my own site with these roughly two months ago. Preparing this I ran the same brief through ChatGPT, Nano Banana, UX Pilot and Lovable, and the ground had shifted. Lovable gives me the best design output of the four for UX now. UX Pilot is close enough to call it even.</p><p>Whatever you decided about these tools in the spring, go and check it again.</p><h2>What actually happened</h2><p>I worked until nearly six in the morning and was as prepared as I have ever been for thirty minutes of anything.</p><p>Then I ran it from the playground, late, with my daughter on my lap, because Thursdays are her mums group and I was not taking that away from her. I have stopped treating that as a compromise. I can hold a room and hold a toddler in the same half hour, and I am not going to apologise for either one being visible.</p><p>The demo did not help. Slow responses, a research task still eating usage in the background, a drop to a smaller model halfway through. Run the heavy research the night before, and check your usage before you share your screen.</p><p>Then I had a normal afternoon and did not replay it once. A year ago that would have cost me a week.</p><h2>This week's move</h2><p>Take a page you already have, or one you keep meaning to make. Write the brief before you open the builder: who it is for, what it has to do, and the one constraint you will not move on.</p><p>Then give the same builder that brief twice. Once bare. Once with your foundations attached, and a moodboard you have actually sorted.</p><p>Read the second one properly. It should hold at least one thing that could only have come from you. A sentence, a proportion, a colour you had to argue for.</p><p>If you cannot find that thing, whose taste is the page wearing?<br><br>Alexandra</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://alexaci.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Basic-Good-Great! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The machine I built in a week]]></title><description><![CDATA[Nine design leaders, one Saturday, and the ten checks out of fifty-five that a computer can actually clear.]]></description><link>https://alexaci.substack.com/p/the-machine-i-built-in-a-week</link><guid isPermaLink="false">https://alexaci.substack.com/p/the-machine-i-built-in-a-week</guid><dc:creator><![CDATA[Alexandra Ciobanu]]></dc:creator><pubDate>Tue, 11 Aug 2026 11:02:47 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21zT9G%21%2Cw_256%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa4a47025-a546-40f6-8976-15f5b29222a3_751x751.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last week I ended by telling you I had registered as a sole trader and built a studio with accessibility at its spine, not as a chapter. This is what that sentence looked like on one Saturday, when the spine grew a tool.</p><h2>Saturday, 1 August</h2><p>Juliet, the designer I met at the Lovable hackathon on 8 March, had already pulled me into one room this year. She wrote to me on LinkedIn in May, inviting me to a private electric go-karting event for design leaders, and afterwards a pub table with eleven other leaders from London companies. I had not felt that particular adrenaline since Turin, when I used to go karting with my colleagues at Changan.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://alexaci.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Basic-Good-Great! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>The same WhatsApp group carried a second invitation, to a whole Saturday of building, hosted at Juliet&#8217;s Metaview office and taught by Mike, UNKWN&#8217;s founding design director. Nine design leaders, by application, a good mix of terminal and not terminal friendly. I was in the group that had not touched a terminal much.</p><p>I arrived with a decision to make. I could spend the day on Quire, the app I have been building and rebuilding for months and which is still far from finished, or I could try to build an accessibility evaluator. Months earlier a stranger had messaged me on LinkedIn to ask if I would take a look at the evaluator he had built, given my experience at Amazon. I tried it last month on one of my own projects and did not understand the report it gave me. The thought had stayed with me since. I had no technical background and a real fear of losing a whole day and making nothing. But I knew accessibility. So I chose the auditor.</p><h2>Fifty-five criteria</h2><p>I did not start from code. I started from the accessibility work I did at Amazon and the judgement it left me with. WCAG 2.2, the standard everything is measured against, is thorough and hard to hold in your head, so I worked with Claude to sort its requirements into groups a founder could follow. The four groups are not mine. Perceivable, operable, understandable and robust are WCAG&#8217;s own principles, and I used the structure that already exists rather than inventing one.</p><p>My first list held fifty-two criteria, pulled from memory. A round of research told me I was three short of covering all of WCAG 2.2, so I added them. Fifty-five, every one of them public, every one traceable back to the official guideline.</p><p>One list mapped to one standard did not feel like enough, so I built a second layer of checking. I had Claude compare my automated guidance against the tools already wired to WCAG: WAVE, axe DevTools, Lighthouse, AbilityNet, SilkTide, and the WebAIM Million report. Then I wired the whole thing just to axe-core, the open engine that reads a rendered page and reports what it finds, because that was the one touching most of the WCAG checks a machine can do at all.</p><p>Which brings me to the number I most want you to keep. Of my fifty-five criteria, a machine can fully clear ten. Thirteen more it can fail but never pass, because finding nothing on a check it only half understands is silence, and silence is not evidence. The remaining thirty-two need a person. No machine picks up a screen reader and moves through your site the way someone who depends on one does every morning. That work is the audit.</p><p>You can see this yourself in five minutes. Run any free scanner over a page you own, then count two numbers: how many checks came back clean, and how many it never judged at all. A perfect automated score is ten checks out of fifty-five, and the gap between those two numbers is where the real work has been waiting for you.</p><h2>The terminal</h2><p>Then I had to build it, and this is where I stopped being the person in the room who knew things. It is nothing like Lovable. Before you write a line you connect Supabase to GitHub to Vercel, wire in the other services, and grant Claude bypass permission, which means handing it a great deal of control over your own machine. You make a fresh folder it can read and drop your files in, the JSON holding the fifty-five criteria and the screens you designed beforehand if you want accuracy and a design system it will respect, and then you begin.</p><p>I made the plan in the Claude app, pasted it into the terminal, and for a while I followed the recommendations almost blindly, because I was no expert and there was no honest way around that. It took me a while just to find the local link where I could see the thing at all, because in a terminal you only see lines of code and fixes, never the page.</p><p>Mike carried me through the part I understood least, the plumbing between GitHub, Vercel and Supabase that turns a folder on your laptop into a sandbox you can open. The IONOS domain and Resend I handled alone, and those are what turned the sandbox into something living on a URL and sending real email.</p><p>Plenty went wrong. My design system had to be rebuilt inside the project, because the mocks were made before I fixed the inaccessible parts of the system I had already audited myself. Text I had set left-aligned came back centred. I fixed those one at a time, and somewhere in that week the fear went quiet. By the end I was discussing the next steps directly in the terminal instead of the app, which for me was the whole shift.</p><h2>What I can and cannot claim</h2><p>A week and a day later, the tool is live and free at <a href="iframe.php?url=https%3A%2F%2Fscan.alexandra-ciobanu.co.uk%2F">scan.alexandra-ciobanu.co.uk</a>. You give it a URL, it returns a score, the full list of criteria, what failed and why, and the checks only a person can sign off. Behind a password I have built myself an auditor&#8217;s view, where I work through all fifty-five by hand, mark each one meets, fails or not applicable, write my notes, and sign the report before it leaves as a PDF.</p><p>Its own tests prove that it is stable, that it returns the same answer twice and has not drifted. Stable is not the same as correct, because I seeded those tests from my own output, which means they would defend a wrong answer just as faithfully as a right one. The only real check on whether I am right is disagreement from outside. When I ran a different tool over my own site, it caught something mine had missed, and that one disagreement was worth more than a hundred of my own runs agreeing with me.</p><p>I have now walked my own site through all fifty-five criteria by hand and signed the report. What it scored deserves its own issue, and it will get one.</p><h2>This week&#8217;s move</h2><p>Open a terminal. Not to build a product, not this week. Ask it to make one small thing, one page, one script, something you would not miss if it broke, and stay with it until a link appears that you can click. The move is not the thing you make. It is the ten minutes where you do not understand what you are looking at and keep going anyway.</p><p>Mike had brought his six-year-old to the build day. The boy sat coding with Claude in the terminal beside his father, and at the end of the day he stood up and presented what he had made to a room full of people who lead design teams. I have fifteen years in this industry, and I was the one afraid of the black window. Fear tells you nothing about the work. It only tells you how new the work is, and new wears off.</p><p>I did not learn the tools and then build. I jumped in with a decision I could defend, no idea where I would end up, and hoped not to drown. A week and a day later there is a machine on a URL that does something useful for strangers.</p><p>So what would you make this week, if nobody had ever told you that this part was for other people? And what is the smallest version of it that could be on a screen by tonight?</p><p>Alexandra</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://alexaci.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Basic-Good-Great! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The mid-funnel ]]></title><description><![CDATA[The job search, run as a design project.]]></description><link>https://alexaci.substack.com/p/the-funnel-nobody-posts-about</link><guid isPermaLink="false">https://alexaci.substack.com/p/the-funnel-nobody-posts-about</guid><dc:creator><![CDATA[Alexandra Ciobanu]]></dc:creator><pubDate>Thu, 06 Aug 2026 08:16:37 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21zT9G%21%2Cw_256%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa4a47025-a546-40f6-8976-15f5b29222a3_751x751.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The hackathon I wrote about last week did not come out of nowhere. I had a reason to be teaching myself to build, and the reason was that a few months earlier my job had ended.</p><p>It was October. My daughter was one year and seven months old, and I notice, writing this, that I date everything by her age now. The email said they had tried to reach me by phone. There had been an email before it, saying the job was ending, and only afterwards came the terms: a team-level redundancy I could take part in, if I agreed, with twenty-four hours to reply.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://alexaci.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Basic-Good-Great! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>I set up a call for the next morning while my husband was still home, because I did not yet know how to run a meeting with a small child in the house. After the call I went looking for a lawyer trained in Romanian working law, to cross-check every fact, and I remember exactly where I was while I looked: on my phone, walking out of Bank station. I weighed the options and settled on a mutual agreement to end the contract, with six months of maternity leave still left to run.</p><p>I am telling you the facts and only the facts, because the facts are the only part that belongs in public. What a company decides is a company&#8217;s story. What I did next is mine.</p><h2>The letter</h2><p>Before I touched my CV, I did something that mattered more than the CV. I wrote to a handful of colleagues I trusted and asked them for recommendation letters, posted publicly, addressed not to a hiring manager but to the future me, the one who would return to work when her daughter was around two. I did not yet know what I would do. I knew I would want evidence of who I had been. That letter deserves its own issue, and it will get one.</p><h2>The CV, three times</h2><p>The redundancy came with a placement company and six months of help, and their materials had been prepared with great care for a market that no longer existed: pre-AI advice, formats from the wrong country. So I built my own panel of readers instead.</p><p><strong>Basic</strong>, and it needed to be, because a basic CV that exists collects feedback and a great one in your head collects nothing. I moved my old LinkedIn profile into a document by hand, asked ChatGPT what it thought, researched UK formats, and had a close friend from my team read it.</p><p><strong>Good</strong> came through Ivee&#8217;s trainings and its automated feedback, another layer on top.</p><p><strong>Great</strong> came from a person. A researcher friend from the Amazon design community, now back in Singapore and job-hunting herself, gave me the piece of advice I have never forgotten. She did not correct lines. She told me to choose the three things I am strongest at and make the whole CV tell that story, so every line carried it forward, down to the order of the bullet points. Nobody had spoken to me about my CV as a narrative before, and I could not unhear it.</p><p>Then the advice I resisted longest. Everybody said tailor the CV to every role. Everybody except my husband, who kept saying: send the same one, the rewrite is not the work. Jason, a mentor from ADP List, later said it with the weight of someone who has watched a great many searches: keep one sharp version, send it everywhere it genuinely fits, and do not apply where you do not fit, because a rejection from a role that was never yours still costs a week of hope.</p><h2>The funnel, honestly</h2><p>More than a dozen companies invited me to interview. A fintech, a bank, a delivery company, a handful of other product companies, and the UK government&#8217;s digital service twice, once for a lead role and once for a senior designer role. The top of the funnel worked.</p><p>The middle is where the honest part lives. At the fintech I was screened and never passed the recruiter loop. At the bank I reached a late stage: recruiter, panel, hiring manager. At the delivery company the hiring manager reached out to me herself, because their recruiter had left and no one was carrying my application; by the time a new recruiter arrived, the company had been through layoffs, the role had been rewritten, and I no longer matched what was left of it. Somewhere else, a recruiter went on an unplanned holiday and said a colleague would take over. Nobody did.</p><p>None of that was personal. All of it was time.</p><p>And once, a recruiter was so warm that I let myself believe the offer was coming, and we started looking at nurseries on the strength of it. The offer never came, and I am glad of it now. It meant we chose a nursery properly, on our own schedule, with real criteria and visits and a vote my daughter cast herself. It also meant she did not begin five days a week at two years old, which would have been wrong for her and wrong for me.</p><p>My working diagnosis, which I hold like any research finding: I was applying, in part, to deep-craft senior roles, and I am a breadth designer, a lead of all trades. Recruiters liked the story; portfolio reviews sometimes wanted a depth I had chosen not to specialise into. Mismatched applications inflate mid-funnel rejections. That is not a verdict on me or on them. It is a dataset, and I am still reading it.</p><h2>Isabel</h2><p>One next stage asked for a Loom video walking through my portfolio, and I had never made one. I asked in the Ivee Slack channel, and a coach called Isabel Pollen answered, a woman with an enormous heart who looked at a stranger&#8217;s problem and simply decided to help. She talked me through that first video, and later coached me on interviewing itself, and gave me back something I had quietly lost: the ability to say out loud, without apology, what I am good at. We are friends to this day.</p><p>My first Loom took seventeen takes and the better part of two nights. The second, months later, took thirty minutes and four. Basic, good, great, measured in takes. But the real gift was not the video. Each interview afterwards became an exercise of memory, remembering the old me, the projects, the value I brought, and confidence, it turns out, is mostly retrieval.</p><h2>The lesson</h2><p>My preparation stack grew as I went: ChatGPT, then Gemini, then Claude. Then came the lead designer challenge for the government&#8217;s digital service. Twenty-four hours, their documentation, their design system. I gave it a night, reading everything, watching talks, brainstorming the delivery with Claude, and folding in a talk by one of the people who built the government&#8217;s website.</p><p>I came close, and I did not get it, and the two halves of that are worth keeping apart. The part they praised was the part I had brought: they liked how I had spread the project across departments, designing for teams that needed to talk to each other, and that idea did not come from a model, it came from a night of reading and a decision about how those teams actually work. The part I lost was a behavioural question I answered too briefly, and no tool prepares that for you.</p><p>Which is the whole lesson, narrower and more useful than &#8220;AI helps.&#8221; AI can do a great deal, and what makes any of it original is the idea you bring. The machine supplies velocity. You supply the piece of you. And nothing at all supplies the part where you have to speak for yourself.</p><h2>The pivot</h2><p>Accessibility kept resurfacing through all of it. It had earned me a promotion once. It had come home with me, too: my daughter started talking fluently and holding real conversations before she was two, because I had narrated the world to her since she was a few days old, exactly as those review rooms had taught me to narrate what I see. And one late night, researching a training, I found a talk by Jonathan Hassell, a legend of UK accessibility. I went to the Product Group, had a great time, introduced myself, and came away with his book, <em>Inclusive Design for Products</em>. I start his extended trainings in September.</p><p>Interviewing might work out. It might not, and nursery bills do not wait for pipelines. So I registered as a sole trader and built a studio with accessibility at its spine, not as a chapter, because accessibility keeps paying me back and I have stopped calling that a coincidence.</p><h2>This week&#8217;s move</h2><p>Write down your three strongest skills. Now look at the first three bullet points of your CV and ask whether they tell that story, in that order. Reorder until they do. Bullet order matters, and that one idea was worth more to me than every template I downloaded.</p><p>So the question is not how many doors you have knocked on. It is whether the person opening one recognises, in ten seconds, the story you decided to tell.</p><p>&#8212; Alexandra</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://alexaci.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Basic-Good-Great! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The chain of rooms, or how I got into vibe coding]]></title><description><![CDATA[It all started at a baby group.]]></description><link>https://alexaci.substack.com/p/copy-the-chain-of-rooms-or-how-i</link><guid isPermaLink="false">https://alexaci.substack.com/p/copy-the-chain-of-rooms-or-how-i</guid><dc:creator><![CDATA[Alexandra Ciobanu]]></dc:creator><pubDate>Tue, 28 Jul 2026 08:36:10 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21zT9G%21%2Cw_256%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa4a47025-a546-40f6-8976-15f5b29222a3_751x751.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last week I ended on a line about rooms you have no reason to enter. Here is what that actually looks like, because the chain of rooms that led to everything I now build started nowhere near design. It all started at baby groups.</p><p>I had moved to the UK with a daughter a few months old, and what I wanted for her was other people. So we did the circuit of singing groups and sensory classes and paid subscriptions, and I kept looking around corners for something better. A WhatsApp group I had been added to mentioned a mothers&#8217; gathering a few stations away; and it turned out to be a support circle, and it was not for me, but at the bottom of its Eventbrite page sat a recommendation for MOB, Mums Who Built. I found an event with a theme I cared about and went. It was held in a conference room in a company basement, and I remember the feeling precisely: it smelled like my old life.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://alexaci.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Basic-Good-Great! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Then the founder mentioned they were throwing a party to launch their app. End of January. I wore my leather jacket for the first time in a long time, drank one glass of wine, and it was the first evening ever I left my daughter home with her father. I walked into a room full of women who built things.</p><h2>Priya</h2><p>At a previous MOB event I met a designer called Priya, who mentioned in passing that she was upskilling in AI on some platform. I did not catch the name. I chased her across three events, to the app launch party, and I got it, which tells you how much I wanted it.</p><p>The platform name was Ivee. I took the membership, did the trainings, and learned two words that reorganised my spring: Lovable, and vibe coding. In February I built my own portfolio site across a few late nights, and through an Ivee Slack thread, I found out Lovable was running a sprint on International Women&#8217;s Day.</p><h2>The 8th of March</h2><p>Sunday, 8 March 2026. My daughter spent the day with her father. I went to the hackathon not to win anything, but because I wanted to see what one was like from the inside. Two things happened.</p><p>The first: I talked properly with Claude for the first time, planning an app. I left with an idea I had no time to build that day, and am still building today. It will get its own issue when the time comes.</p><p>The second was not on the agenda, and mattered more. I sat between two women who had never vibe-coded: one from HR, one who had recently moved to the UK from the US. I spent the day creating accounts with them and walking them through the interface, explaining what I knew from a portfolio built at 3am and a stack of free trainings. I was maybe three weeks ahead of them. Three weeks, it turned out, was enough to be useful. That is the strange arithmetic of a brand-new field: everyone is so near the beginning that a small head start makes you somebody&#8217;s guide, and nothing shows you what you actually know like explaining it to someone who started that morning.</p><h2>What vibe coding actually is</h2><p>People ask what vibe coding means and expect something technical. Mine is not technical: it is a window opening wide onto a world that was shut.</p><p>For fifteen years my plan for self-promotion was a PDF. When Priya said she was building her own site, I was intrigued and a little scared, because some part of me had filed that under not achievable. And then it was February and I owned a domain.</p><p>It keeps going. Databases. Connectors. Exporting code to GitHub, a place I had heard developers mention for years the way you hear about a city you think will never visit. A job application asked for my GitHub account, so I opened Lovable one nursery day and exported my projects. I was rejected anyway, but the account exists today, which means the rejection paid for something.</p><h2>The honest ending</h2><p>Here is the part I owe you, because this newsletter does not do fairy tales.</p><p>That day, Claude made me feel I could do anything, and I walked home on clouds. A few months later I learned that walking on clouds is a feeling, not a skill. The muscle gets built the slow way, in the gap between what the AI produces and what actually ships, and what that cost me is the story of the first proper issue of this newsletter: one page, rebuilt seven times.</p><h2>This week&#8217;s move</h2><p>Find someone three weeks behind you and give them an hour. Create the account with them, explain the interface, answer the question you were asking someone else last month. You do not need to be an expert. You need a small head start and some patience.</p><p>And when someone asks what you are learning, tell them properly. Say the thing, name the tool, finish the sentence. The person half-listening beside you might be only one word away from opening a new door.</p><p>Alexandra</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://alexaci.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Basic-Good-Great! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The volunteer years]]></title><description><![CDATA[Curiosity is unpaid right up until it isn't.]]></description><link>https://alexaci.substack.com/p/the-volunteer-years</link><guid isPermaLink="false">https://alexaci.substack.com/p/the-volunteer-years</guid><dc:creator><![CDATA[Alexandra Ciobanu]]></dc:creator><pubDate>Tue, 21 Jul 2026 08:48:09 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21zT9G%21%2Cw_256%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa4a47025-a546-40f6-8976-15f5b29222a3_751x751.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I honestly do not remember how I got into accessibility. I have tried. There is no origin scene, no lightning strike. What I remember is the kind of person I was: curious past the point of obvious usefulness, signed up for every internal conference I could reach, virtually or in person, on the goodwill of a manager&#8217;s travel allowance and a team culture that let me wander. On the calendar, that wandering looked like a hobby. In reality turned out to be the most productive thing I did.</p><p>The conferences bought me corners of the business I had no reason to see. They bought me friends, then mentors, then, quietly, projects that came back to my team because somebody remembered the curious one. And somewhere in all that wandering, at a talk whose name I have lost, accessibility found me.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://alexaci.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Basic-Good-Great! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>The hook</h3><p>What kept me was not duty. It was discovering that things designed for disabled customers keep turning out to be better for everyone. The famous curb cut: the dip in the pavement made for wheelchairs, now claimed by every stroller, every suitcase, every delivery trolley. I am from Romania, where pavements rarely forgive a wheelchair or a pram, so missing curb cuts were never an abstraction to me. I felt them in my wrists.</p><p>Then there was Alexa, which I came to see as the pinnacle of what accessible service design can be: a blind customer making a purchase by voice, instead of fighting a screen reader through pages that may or may not cooperate, instead of having to ask another person for help. And the story that stayed with me longest: Show and Tell, the Echo Show feature where a blind customer holds a tin up to the camera and asks, &#8220;Alexa, what am I holding?&#8221;, so they know which item just came out of the box, and can put it away in a kitchen they know by heart, and cook from drawers they arranged themselves. Independence, restored by a camera and a question.</p><p>And one statistic reorganised my head: roughly one in four people live with a disability, and every single one of us will borrow one temporarily. Drops in your eyes at the optician, and you cannot focus your sight. An arm in plaster. A phone operated one-handed because the other arm is holding your child. Accessibility is not a niche. It is a preview.</p><h3>The goal finds the curious</h3><p>Then a VP set a goal to look at accessibility, and my manager offered it to me.</p><p>I have thought about that sentence a lot since, because at the time I knew generalities and not much more. What I had was not expertise. It was a visible track record of being interested. Goals are not handed to the most qualified person in the building; they are handed to the person already standing nearest the work.</p><p>I was given two allies, one from each of the other organisations sharing the goal, and we started co-writing in a shared document. They would write ideas, I would watch and learn, and I would bring my sight to it. I took to the rules fast, and the moment I knew them well enough to be dangerous, I knew something else: no working designer was ever going to read them in that form. So I translated. One page, every design area a visual designer touches, text, logos, product images, illustration, UI screens, each shown at Basic, Good, and Great, plus one honestly unusable example per category, because people recognise failure faster than they recognise rules. Then I mocked up the internal wiki in Figma so the whole thing could live somewhere findable. Last week I told you what that framework did. This is where it physically began: one page, drawn because the rules were too heavy to hand to anyone as they were.</p><h3>The machine</h3><p>Alongside the guide, we had to build the auditing mechanism, and I want to describe it plainly because from the outside this work sounds glamorous and from the inside it is spreadsheets.</p><p>Each month we would sample hundreds of banners out of a much larger pool, selected by formula so nobody could accuse the sample of being kind. The formulas were not mine; I had an ally who could make a spreadsheet sing while I was still selecting cells one at a time. The reviewing split across a handful of volunteers, sized so that no one&#8217;s goodwill was overdrawn, with a few days to label what they found. Then the checking, then the reporting: visual examples, the categories failing most and the reasons why, and the digging, into styleguides, into regional differences, until a number became a cause. When the root cause was a styleguide, we would go and educate the team that made it, sometimes in time for the next one, sometimes too late for the work already flowing out of it. An inaccessible component in a styleguide is never one mistake; it is one mistake on subscription.</p><p>Most of it was spreadsheets. All of it compounded.</p><h3>Volunteering, the literal kind</h3><p>Once the goal work steadied, curiosity did what curiosity does. Through yet another networking thread I found an internal, recommendation-only programme of accessibility bar raisers, designers who review other teams&#8217; UX for accessibility. I asked my manager to recommend me. I travelled to Seattle for the in-person trainings, where I switched on a screen reader properly for the first time, and then paid the real fee, which was time: volunteering in regular review sessions, shadowing experienced bar raisers while teams brought their projects for feedback. Retail, Audible, Kindle, audiobooks. I got eyes on more of the business in those sessions than in years of doing my job.</p><p>Graduation meant leading sessions myself, screen reader on, Figma decks open, and a project of my own: bottom sheets. What the design system currently allowed, what I would recommend instead, and a hunt through live pages for the inaccessible and the edge cases.</p><h3>What an audit actually looks at</h3><p>For those of you wondering what actually happens in a review like that:</p><p>By the time you sit down, the rules are not on a page; they are in your head, all of them. A team presents in about five minutes, and you run the whole list silently against what you see. When there is an actual prototype, you go silent, turn your screen reader on for a quick pass, hold what it tells you in your head, and come back to the room to say it. Structure first, before anything visual: heading levels and reading order, because a screen reader experiences the page as a sequence, not a layout. Then the words: contrast, and how they are written. Then the controls: buttons that function, forms with integrity, ARIA labels, and the traps a screen reader cannot move past. Then the content: honest alt text, tables that hold their meaning, carousels with real navigation. And last, the check that is never on the checklist: judgment, whether the pattern is even right. Whether this should be a bottom sheet, a screen divider, or simply the same page. That is only the surface; there is far more underneath.</p><h3>Full circle</h3><p>Through that same year I trained the whole team of designers, prepared the decks, taught local leads what to look for, onboarded new volunteers, and wrote talks for design conferences. The same conferences where accessibility had first found me. I ended the year fluent enough to speak developer, arguing accessibility into products while they were still Figma files, which is the only time arguing is cheap.</p><p>The goal ran through 2022 and 2023, landing at 95% in 2023. The bar-raiser work began around the third quarter of 2023. Then I stopped, for maternity leave, and took the strangest inheritance of all this home with me: in rooms with blind reviewers, I had learned to narrate what I see. That habit followed me home, and it mattered there more than anywhere. Another story, for another time.</p><h3>This week&#8217;s move</h3><p>I thought about asking you to switch on your screen reader tonight. I decided against it. Done cold, with no guide, it is disorienting, and disorientation without a guide teaches the wrong lesson. We will do it properly, later in this series, step by step.</p><p>This week&#8217;s rep is the one this whole story runs on. Spend one hour on something you cannot quite justify: a talk outside your lane, an internal demo, a training that is not your job. Take one dated note on what you found there. That note is how volunteered attention starts becoming a specialism.</p><p>I still cannot tell you how I got into accessibility. I can tell you the entrance fee, which was curiosity, paid in hours nobody asked me for. Every door since has opened because of it.</p><p>Somewhere this month there is a room you have no reason to enter. Nobody can tell you whether it will matter. That is not a flaw in the plan. That is the plan.</p><p>&#8212; Alexandra</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://alexaci.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Basic-Good-Great! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Basic, Good, Great]]></title><description><![CDATA[Everything I make, I make three times...]]></description><link>https://alexaci.substack.com/p/basic-good-great</link><guid isPermaLink="false">https://alexaci.substack.com/p/basic-good-great</guid><dc:creator><![CDATA[Alexandra Ciobanu]]></dc:creator><pubDate>Thu, 09 Jul 2026 15:30:02 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21zT9G%21%2Cw_256%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa4a47025-a546-40f6-8976-15f5b29222a3_751x751.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Everything I make, I make three times.</p><p>Not three drafts of the same thing. Three deliberate states. The basic version exists so the thing is real. The good version exists so the thing is right. The great version is the one I aim at knowing I will not always land it, and knowing that the aiming improves the other two.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://alexaci.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Basic-Good-Great! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>I have applied this to design systems, to my CV, to my portfolio, to learning to draw, and to the newsletter you are reading now. The order is the whole method. Basic first, always, even when I can already see the great version in my head. Especially then. The great version in my head has never met a user, a deadline, or a rendering bug. The basic version has met all three by Friday.</p><h2>Where it became a framework</h2><p>Amazon, 2023. I was a design lead who had just started learning about accessibility. I honestly cannot tell you how I stumbled onto it, but it has served me well ever since, including in ways I did not expect, into motherhood, which is a thread for another issue.</p><p>What I found was an army of designers producing inaccessible work, and a VP-level goal handed to me: move accessibility from 80% to 95% across three organisations producing roughly 500,000 visuals a month. I had one exceptional woman beside me who could run the numbers and the spreadsheets, because this was 2023 and there was, as yet, no AI to do it for us.</p><p>The designers were not careless. They simply could not see it. A visual designer could pick the correct typeface and the correct background colour straight from the styleguide and still ship something that failed, and if the styleguide itself was wrong, then everything produced from it was wrong, at scale, every single month. Accessibility was invisible to the very people most responsible for it.</p><p>So, with allies around me, plus two other exceptional women in two other organisations, I built a visual guide. And here I genuinely do not know whether to write I or we, which tells you something true about how this kind of work actually gets done. The guide ran every kind of work a designer touches, text, logos, product images, illustration, UX screens, against three levels: Basic, Good, Great.</p><p>Basic was the floor: the non-negotiable standard, WCAG for text, and a decided-upon internal minimum for everything the standard did not cover.</p><p>Good was craft: for the designers who already knew the standard and wanted to do a little more.</p><p>Great was for champions: the work almost nobody shipped, and for real reasons, the marketing copy that ran too long, the colour that did not exist in the styleguide, the minimum text size someone had set too small years ago and no one had touched since.</p><p>The guide was only half of it. The other half was persuasion. Monthly audits and audit banners run by people who volunteered their time, internal talks to socialise the guide, monthly reports for VPs, numbers crunched by hand, and slowly a team built around the processes so they would outlast any one of us. I am still grateful to those people. The framework was mine; the movement was ours.</p><p>We measured 80% at the start. Across a year, we reached 95%.</p><p>You may be wondering why not 100%. Because the last 5% is the hardest to chase, and a goal you can actually reach beats a goal that only sounds noble. Pure perfection does not exist; it is the thing beyond great, and beyond great is a place you visit, not a place you ship from.</p><p>And because I had a little time left and a little creativity, I went to visit it anyway. I started a side study to build accessibility checkers into automated marketing production. I had the idea, I made the proof, I built the Figma mock, and then I did not manage to implement it the way I wanted. It stalled somewhere between its second and third version. That is the honest ending, and I am keeping it in: sometimes the great version is a thing you prove is possible and then set down, because insisting on something that has already stopped moving is its own kind of failure. You learn to leave it and go build elsewhere.</p><p>But here is the part I only understood later, and it is the reason the guide worked at all. It never handed anyone a verdict. At any moment, every designer who used it knew exactly two things: where their work stood, and what one step better looked like.</p><h2>A direction, not a verdict</h2><p>That is the entire difference. A pass/fail standard gives you two possible states: you passed, or you are demoralised. It arrives at the end, usually as a list of everything wrong, and it offers no next move. Basic, Good, Great gives you a place to stand and a direction to walk, and the only question it ever asks is: what would one step better look like?</p><p>People do not skip accessibility, or craft, or care, because they lack it. They skip it because &#8220;not good enough&#8221; is a door with no handle. Name the next step, and the guilt turns into work.</p><p>I have found the same shape everywhere since.</p><p>When I rebuilt my CV after nine years inside one company, the first version was basic, and it needed to be, because a basic CV that exists collects feedback and a great CV that lives in your head collects nothing. It got good when I asked friends for feedback. It got great when Jason Greene, a mentor from ADP List, talked me out of rewriting it for every single role, advice I should have taken sooner, and let one sharp version do the work instead. It gets invitations now.</p><p>My portfolio ran the same three states, in order. Version one was basic: I was only just learning to vibe-code, and it showed. It got good when I took it to former Amazon colleagues in my network and learned, from their feedback, to push my own taste and personality back into what the AI generated instead of shipping its defaults. It got great when I filled it with the real thing: project pieces, images, the evidence rather than the promise.</p><p>Basic first. Then good. Then, sometimes, great.</p><h2>What this newsletter does with it</h2><p>Every issue here is one true story from practice, one lesson, and one rep you can run the same day. The stories will not be about perfect work. They will be about which level the work was really on, how I knew, and what moving up one level actually cost, in hours and in pride.</p><p>Accessibility runs through all of it, from your first line of alt text to expert-level auditing, because that is the discipline that taught me the method in the first place, and because it is where the distance between basic and great decides whether a real person can use the thing at all.</p><p>And I will say this plainly now, so you never have to catch me at it: most weeks, the great version does not ship. I would rather tell you that in the first post than let you find it out by counting.</p><h2>This week&#8217;s move</h2><p>Not homework. A rep, the kind you do at the gym: small, repeated, compounding. There will be one at the end of every issue.</p><p>Take one thing you shipped this week. Anything. Write three lines: what its basic version required, what would have made it good, what great would have looked like. Do not fix anything yet. If you cannot name the basic version, that is the finding, and it is worth more than the fix.</p><p>Basic is not a smaller word than great. It is only the earlier one. So the question is not whether your work is basic. It is whether you can stand in front of it and say so.</p><p>Alexandra</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://alexaci.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Basic-Good-Great! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>