Building NewsBeauty: the full story

Trial, error, a wrong phone number on a flyer, a site that wouldn't deploy, and how a 31-page beauty brand website actually got built.

People sometimes assume a site like this gets built by typing a description into an AI tool and downloading whatever comes back. I use AI as part of my actual process — I've said that plainly before — but a prompt alone doesn't know a beauty studio's brand from its legal entity, doesn't know which of a client's assets is out of date, and doesn't know that a page's real job isn't to look finished, it's to answer the question someone actually has before they book. That part is still entirely on me. This is the honest account of what that actually looked like for NewsBeauty.

The hard part wasn't the code — it was knowing what to call things

The client was NewsBeauty, LLC — a beauty business in Everett, Massachusetts offering knotless braids, sew-ins, faux locs, a full beauty supply store, and a Sunday makeup education class. The domain was hairbynb.com. The request, on paper, was simple: build a website.

The first real question had nothing to do with HTML. What is this brand actually called? The business was incorporated as NewsBeauty, LLC. The brand was NewsBeauty. The domain was hairbynb.com, because the more obvious domains were already taken. And the name everyone kept saying out loud was HairByNB — the domain shorthand, not the company, not the brand. That confusion had already spread into old social bios, print flyers, and the original site itself. Untangling it was the actual first job, and no generic template or AI-generated starter site would have caught it, because it isn't a coding problem. It's a "did you actually understand this business before you started building" problem.

NewsBeauty, LLC is the company. NewsBeauty is the brand. hairbynb.com is just the domain. HairByNB is what you say when you're explaining the domain.

Once that was settled, it became a real framework, not just a decision: the site says NewsBeauty everywhere that matters, the domain stays hairbynb.com, and NewsBeauty, LLC is the legal entity wherever the law actually cares — schema markup, legal pages. That distinction had to reach twelve pages, two legal documents, and a dozen blog bylines, correctly, every time.

Design decisions that came from the business, not a template

The site's structure follows how someone actually decides to book a beauty studio — not a generic "services, about, contact" template. Two hub guides anchor the content (the complete knotless braids guide, and natural hair care for 4A–4C hair), six supporting posts answer the specific follow-up questions those hubs raise, and two commercial posts exist for exactly one reason: someone who's about to book searches "how long do knotless braids take" and "how much do knotless braids cost in Massachusetts" before they call. Those pages exist to answer that exact question and hand them a booking link, because that's what the business actually needed, not because a content calendar said "publish more."

The "In the News" section is the clearest example of this. It looked complete — seven story cards, category tags, source citations — but every "Read more" button linked to the same general blog post, regardless of which story you clicked. An outside review of the architecture named the actual problem:

The hub is essentially functioning like a visual index without individual article destinations. Every story needs its own substantive page — not a link back to the general blog.

That's not a bug you'd catch by asking an AI to "add a news section." It's a problem you only see if you actually think about what a visitor does after they click. The fix was a full rebuild: renamed to "Beauty Industry News" for clarity, with seven real individual story pages, each explaining what happened, why it matters to the industry, and what NewsBeauty is actually seeing in their own work — connected back to the studio, not just aggregated from elsewhere.

The bugs that still mattered

Not every problem was conceptual. A few were the kind of thing that only shows up once real assets and a real deployment are involved.

Caught before launch Two different phone numbers, one wrong

A marketing flyer and an updated version showed different numbers. The client confirmed which was correct — caught only because the two assets were compared side by side instead of trusted individually. A generic build working from one uploaded flyer would have shipped the wrong number to every page.

Caught after launch The deploy that didn't

The domain showed a default 404 after the first upload — the zip had extracted one folder too deep instead of landing in the actual web root. Worth knowing: a search engine's bot had already crawled the domain while it was broken. The site needed to be correct before it got indexed as broken, not after.

A business decision, not a bug A title change that had to reach every corner of the site

The lead stylist needed a specific public title for privacy and professional reasons — Manager & Lead Hair Stylist, not "Founder." That single decision had to propagate through page titles, schema markup, credential cards, and photo alt text, correctly, everywhere, because getting it right in one place and wrong in another would have defeated the entire point.

What actually shipped

31
Total pages
10
Full blog posts, written from scratch
7
Real industry news story pages
3
Schema types: Organization, LocalBusiness, BlogPosting

None of that is what makes the site good, on its own. Plenty of sites have 31 pages and say nothing useful across any of them. What makes it good is that the pages exist because a real question needed answering, the brand says what it actually is instead of what's easiest to template, and the news section connects to a real story instead of a placeholder. That's the part a prompt alone doesn't do. It's the part that takes actually paying attention.

Part of the NewsBeauty project

Read the evergreen project page for the architecture, evolution, and current state behind this article.

View complete project →
← Build Journal ← Previous: What it actually took to rebuild a client's website Next: From pet blog to pet-care platform → Project overview →