01 Portfolio · San Jose, California

Austin Nguyen I build websites for local service businesses.

Restaurants, HVAC and plumbing companies, dental practices, salons. Every site is written by hand in HTML and CSS — no theme, no page builder, no monthly platform fee. It loads fast on a phone in a parking lot, it says what you sell, and the files belong to you on launch day.

Based in San Jose, CA

Prices from $1,200, fixed, in writing

Turnaround One to five weeks

02 Why hand-coded

Four things a template can’t give you

A Hand-coded, not assembled

No WordPress theme, no Wix, no Squarespace, no drag-and-drop builder. Your site is HTML, one stylesheet, and a few hundred lines of JavaScript I wrote for it. Nothing in it is there because a template shipped with it.

B Loads in under a second

No framework, no plugin stack, no image files in the design. There is almost nothing to download, which is the whole trick. A customer standing outside your door on one bar of signal still sees your hours.

C You own the files outright

The source files are handed over on launch day. Domain in your name, hosting in your account. If you stop working with me, you keep everything and any developer can pick it up — it is plain HTML and CSS.

D No monthly platform fee

You pay for a domain and hosting — usually $15 to $25 a month, directly, to the companies providing them. You do not pay me a subscription, and there is no plan that suddenly costs more when you add a page.

03 Selected work

Four concept builds, four different design languages

Each one is a complete, working site for a different kind of local business. Open them. Resize them. Tab through them with a keyboard. They are the argument.

These are concept builds.

All four businesses are invented. Nobody commissioned these and nobody paid for them — I built them to show exactly what I would ship for a real client. Every phone number is a (555) number, every email is an @example.com address, and every street name is made up. The neighborhoods are real San Jose neighborhoods. I would rather show you four honest demos I control than borrow someone else’s logo.

Layout sketch for Terra Kitchen: a tall terracotta image column on the left, a hairline column rule, and an asymmetric right-hand text column with an oversized pull quote.
Restaurant · Willow Glen Concept build

Terra Kitchen

A farm-to-table neighborhood restaurant whose menu changes every week. The site has to make the food look worth the drive and let someone read the entire menu, with prices, on a phone in the parking lot before they commit to the walk.

What the build includes

  • Full menu across four courses with real prices
  • Story and chef sections written in the restaurant’s own voice
  • Hours, parking notes and a location block
  • Reservation request form wired to the owner’s inbox
  • Gallery composed entirely of CSS and SVG — no photo files
Type
Playfair Display SC over Karla
Color
Terracotta, olive and warm cream
Feel
Editorial. Asymmetric grid, hairline rules, square corners, no shadows anywhere.
Open the Terra Kitchen site
Layout sketch for Ironclad Home Services: a navy header bar with an amber call button, a dense three-by-two grid of service tiles, and a full-width amber call bar pinned along the bottom.
HVAC & plumbing · San Jose Concept build

Ironclad Home Services

Someone’s furnace died at ten at night. They are on a phone, they are annoyed, and they are going to call whichever company looks like it will actually pick up. Every other decision on the page is subordinate to that one.

What the build includes

  • Instant-quote form sitting in the hero, above the fold
  • 24/7 emergency banner that stays visible while you scroll
  • Services grid plus a named service-area list for local search
  • Financing, licensing and warranty trust row
  • Sticky call bar on mobile — the phone number never leaves the screen
Type
Lexend 800 over Source Sans 3
Color
Deep navy with safety amber
Feel
Utilitarian. Hard 2px corners, one flat shadow, dense information, nothing decorative.
Open the Ironclad site
Layout sketch for Lumen Dental: a large softly rounded mint hero panel with a teal booking pill, and three rounded service cards below it.
Dentistry · Almaden Valley Concept build

Lumen Dental

A large share of new-patient traffic is someone who has been putting off a visit for two years and is slightly ashamed about it. The site’s job is to lower the temperature: plain pricing, plain insurance answers, and a booking button that never leaves the screen.

What the build includes

  • Services written in plain English, not clinical codes
  • Team profiles with names, credentials and a sentence of personality
  • Technology and comfort section for the nervous patient
  • Insurance and financing table, including the “no insurance” path
  • New-patient offer plus an appointment request form
Type
Figtree over Noto Sans
Color
Teal and mint on a warm sand neutral
Feel
Calm clinical warmth. Generous radii, soft layered shadows, gentle motion.
Open the Lumen Dental site
Layout sketch for Maison Noir: a full-bleed near-black field inside a thin champagne frame, with a widely letterspaced display line, a hairline rule and a single vertical tick.
Salon & med spa · Santana Row Concept build

Maison Noir

A Santana Row price point has to be legible before a single word is read. The design carries the positioning; the service menu only confirms it. Get this one wrong and every price on the page looks expensive instead of worth it.

What the build includes

  • Full service menu with prices, by category
  • Treatment detail sections for the med-spa side
  • Stylist and provider profiles with booking links
  • Three membership tiers with monthly pricing
  • Booking request form, hours and a location block
Type
Bodoni Moda over Jost, wide tracking
Color
Champagne on near-black
Feel
Luxe editorial. Zero radius, full-bleed compositions, slow 480ms fades.
Open the Maison Noir site

What is actually true about all four

No testimonials on this page, because nobody has hired me to build these. Here is what you can verify yourself in about three minutes, with the view-source menu and your browser’s developer tools.

No framework, anywhere

No jQuery, no Bootstrap, no Tailwind CDN, no React, no build step. View source on any of the four and read the whole thing top to bottom.

Zero image files in the design

Every graphic on every page — including the four sketches above — is inline SVG or a layered CSS gradient. Nothing to hotlink, nothing to go missing, nothing that turns into a broken-image icon in two years.

Built for a keyboard too

One h1 per page, headings in order, a real visible label on every form field, and a focus ring you can actually see. Turn on “reduce motion” in your OS and the animation genuinely stops.

Structured data in every head

Each demo ships a JSON-LD LocalBusiness block carrying the name, address, hours, phone and price range, so Google reads your details instead of guessing at them.

Three code files per site

One HTML file, one stylesheet, one script. That is all the code there is. Beyond those, a demo loads only its Google Fonts and its tab icons, which the four share with this portfolio. It runs on any host, including the free ones, and it will still open correctly when you double-click it from a folder in 2035.

Color contrast verified, not eyeballed

All five sites are generated from one token file, and every foreground and background pair it declares is checked against the WCAG 2.1 formula by a script before a line of CSS is written. The script is part of my build tools, not the published site, but the result is yours to check with the contrast readout in your browser’s developer tools. Small text never sits below 4.5:1, and borders, focus rings and graphics never below 3:1.

04 What you get

The deliverables list, in full

Every item here is a thing you can point at and check on launch day. Nothing on this list is a feeling.

A mobile-first build

Laid out for a phone first, then widened. Checked at 360, 768, 1024 and 1440 pixels wide. No sideways scrolling at any size, and every button and link is at least 44 pixels tall so a thumb can hit it.

Accessible markup

Semantic landmarks, one h1, headings in order with no skipped levels, real labels tied to real inputs, a visible keyboard focus ring, and text contrast checked against WCAG AA. This also happens to be what screen readers and search crawlers both want.

A complete SEO head on every page

Unique title and description per page, Open Graph tags so links unfurl properly in a text message or a Facebook post, and a JSON-LD LocalBusiness block with your name, address, hours, phone and price range.

A contact form that reaches your inbox

Wired to Formspree or Netlify Forms, both of which are free at the volume a local business actually gets. Submissions land in your email. Spam protection included. No database, nothing to log into, nothing to maintain.

Google Business Profile guidance

The categories, service areas, hours, service list and photo checklist that actually affect whether you show up in the map pack. Written as a list you work through in an afternoon. I will not run it for you monthly, and I will not charge you to — but if you do want it run every month, plus the wider search and AI work, that is a separate thing I offer: SEO & AEO services.

The source files

Zipped and handed over on launch day: HTML, CSS, JavaScript, and the design token file the colors come from. Yours outright. No license terms, no escrow, no “we host it for you” arrangement that makes leaving expensive.

A one-page handover document

How to change your hours, your prices and your text without calling me. Written for someone who has never opened a code editor, with the exact lines to look for. Most owners do their own small edits after a week.

Thirty days of fixes after launch

Anything broken, wrong or misspelled gets fixed at no charge for thirty days (ninety on Premium). This covers the typos you only notice once the site is actually live, which is all of them.

05 Pricing

Three prices. All of them on this page.

You should not have to fill in a form to find out whether you can afford something. These are fixed project prices, confirmed in writing before I start, and they do not move unless you ask for something that was not in the scope.

Starter

$1,200 one page

For a business that just needs to exist online properly. You have a Facebook page and a phone number and that is it.

Includes

  • One long page: services, about, hours, contact
  • Contact form to your inbox
  • SEO head and structured data
  • Two rounds of revisions
  • Source files and the handover doc
  • Thirty days of fixes after launch

Typically one to two weeks from the day you send your content.

Ask about Starter

Premium

$4,500 booking & copy included

For booking-driven businesses — salons, clinics, med spas, restaurants taking reservations — and for owners who do not want to write the words themselves.

Everything in Standard, plus

  • Booking integration — Calendly, Square, Resy, Tock or your existing system
  • Copywriting for every page, from one 60-minute interview
  • Up to nine pages
  • Priced service menu, laid out to be scanned and updated
  • Unlimited revisions during the build window
  • Ninety days of fixes after launch

Typically three to five weeks, mostly waiting on the copy interview.

Ask about Premium

What is not included, in any tier

Saying this plainly is worth more than another benefit bullet. None of these are in the price:

  • Domain registration and hosting. You buy those directly, in your own name, and they usually total $15 to $25 a month.
  • Logo design and brand identity.
  • Professional photography or video.
  • Paid advertising, Google Ads management, or social media management.
  • Online ordering, e-commerce checkout, or payment processing.
  • Ongoing content updates once the included fix window ends. After that, changes are quoted per job, in writing, before I start. There is no hourly meter running.

If you need one of these, I will tell you who in San Jose does it well. I do not take a referral cut and I do not mark it up.

The guarantee

Half the project price up front, half on launch. If the finished site does not do all five of these, you do not pay the second half:

  • No framework and no build step — readable source, top to bottom.
  • No image files required to render the design.
  • One h1, headings in order, a real label on every field, a visible focus ring.
  • A JSON-LD business block in the head of every page.
  • A contact form that delivers to your inbox, tested with a real send.

Every one of those is checkable by anyone, including a developer you hire specifically to check my work. That is the point of writing it this way.

06 Process

Four steps, and most of the work is mine

The quiet fear with a website project is that it will eat your week. It will not. Here is exactly what I do and exactly what you have to do, step by step.

  1. Step 1 of 4

    Day zero · about 20 minutes

    The call

    I do

    Ask what you sell, who walks through the door, and what the last website failed to do. Then send you a fixed price and a launch date in writing within 24 hours. No proposal deck, no follow-up sequence.

    You do

    Talk for twenty minutes, by phone or email, whichever you prefer. Nothing to prepare and nothing to sign. If the number is wrong for you, say so and we are done — no hard feelings and no follow-up emails.

  2. Step 2 of 4

    Days one to five · about 30 minutes of your time

    The draft

    I do

    Write the page structure, choose the type and color, and build the real thing with your real content in it — not a grey mockup with fake text. You see a working site at a private link, on your own phone.

    You do

    Send hours, services, prices, and any photos you already have. A phone photo is fine. If you have nothing, I build it without photos and we add them later — every site on this page was built that way.

  3. Step 3 of 4

    Days six to twelve · about 45 minutes of your time

    The revisions

    I do

    Make your changes in batches, then send the updated link with a short note on what moved. Two rounds on Starter, three on Standard, as many as it takes on Premium.

    You do

    One careful pass through the draft with your notes, in one reply. Not ten texts over two weeks. Show it to whoever else needs to see it before you send that reply — that part matters more than it sounds.

  4. Step 4 of 4

    Days twelve to fifteen · about 15 minutes of your time

    Launch

    I do

    Point your domain, wire and test the form with a real submission, submit the site to Google, hand over the zipped source files and the one-page handover doc. Then thirty days of free fixes.

    You do

    Forward me the domain login, or add me to your registrar for an afternoon and remove me after. Pay the second half. Then go back to running your business.

Total time out of your week, across the whole project: about two hours. That is the real answer to the question most owners are too polite to ask.

07 Questions

The six things people actually ask

$1,200 for one page, $2,400 for up to five, $4,500 with booking and copywriting included. Half up front, half on launch. That is the entire price list and it is on this page on purpose.

The price is fixed in writing before I start and it does not move unless you ask for work that was not in the original scope — and if you do, I will tell you the new number before I touch it, not after.

One to two weeks for Starter, two to three for Standard, three to five for Premium. Those clocks start the day your content arrives, not the day you say yes.

The slow part of every website project is waiting on content — hours, service lists, prices, staff names. If you send those in the first week, the project lands on the early end of that range. If you take a month to send your menu, it takes a month longer. That is the whole variable.

Honest answer: sometimes you should not. Here is the test. Open your site on your phone, on cell data, not office wifi. Then check four things.

Does it show something useful in under two seconds? Is your phone number tappable without pinching? Are your hours correct today? Does the contact form actually deliver to an inbox you read? If all four are yes, keep it and spend the money on something else — I will tell you that on the call.

If any of them are no, that is the whole pitch, and it is the reason most of the local sites I look at are losing calls they already paid to earn.

Not a problem, and not a delay. Every site on this page was built without a single photo file. The artwork is hand-drawn SVG and layered CSS gradients, which is why nothing on them can break, go missing, or load slowly.

When you do get real photos, they drop into marked swap points in the stylesheet — I leave a comment block in the CSS naming exactly which selectors take a photo and at what size. I will also send you a shot list of eight to ten photos you can take on a phone in an afternoon, which is genuinely better than stock.

You do, completely. The domain is registered in your name on your card. The hosting account is yours. The source files are handed to you on launch day. There is no license, no lock-in clause, and nothing that stops working if you stop paying me — because there is nothing to stop paying me for.

If you fire me the week after launch, you keep everything and any competent developer can pick it up in an hour, because it is plain HTML and CSS with no framework to learn first. I think that is how it should work, and it is also the main way this is different from a platform that rents you your own website.

Thirty days of fixes at no charge — ninety on Premium. Typos, wrong hours, a service you forgot to list, anything that is broken or wrong. Just email me.

After that window, most owners handle their own small edits using the one-page handover doc, which shows exactly which lines hold your hours and prices. When you want something bigger, I quote it per job in writing before I start. There is no retainer, no monthly maintenance plan, and no subscription.

Something not answered here? Email it to me and I will give you a straight answer, including “you do not need this” if that is the straight answer.

08 Contact

Tell me about your business

No phone number on this page, on purpose. Email gets you a written price faster than a call does, and it lets you think about the number without me on the line.

Email me directly

This is the fast path. The button below opens your mail app with a short template already filled in — answer the five lines and send it. That is enough for me to reply with a real price.

austinguyens@gmail.com Or just write to austinguyens@gmail.com yourself
  • A reply within one business day, including the ones that are a no.
  • A fixed price in writing, not a range and not a “starting at”.
  • No sales sequence, no automated follow-ups, no calendar link.
  • If a website is not what you need, I will say so and tell you why.

Or send the details here

This form is a working demo — it does not send anywhere yet, and it will tell you so when you submit it. Use the email button if you want a reply today.

Demo form — nothing is sent and nothing is stored. On a real build this is wired to Formspree or Netlify Forms and lands in your inbox in seconds.