Skip to content
Black HartConsulting

← All projects

Case study · Nonprofit / Grant consulting · website

Grants Within Reach

Six pages, a filterable resource library and an admin the owner runs herself. A Starter Site for a Houston grant strategist, built on our Next.js and Payload client template and live seven days after the deposit.

Grants Within Reach – homepage hero on the live site
7 days
deposit to launch
3 MB
home page on a phone, down from 30 MB
100
mobile accessibility, best practices and SEO
18
resources across 9 categories

The challenge

Deja Hasness is a grant strategist in Houston, with a second base in Palm Beach County, Florida. Nine years in grants and nonprofit consulting, Grant Professional Certified, Certified Nonprofit Professional, and a regular speaker at nonprofit conferences. She had no website at all.

She was not short of clients, so this was not a lead generation build. The job was credibility: somewhere for the nonprofits, foundations and event organisers who look her up after a referral or a conference talk to see what she actually does. Two audiences on one site, nonprofits and the foundations that fund them, plus a speaking and training practice, plus a resource library she wanted to keep adding to on her own.

The harder constraint was the review process. This was her first website and she had no background in technology, design or web development, so a normal design review, where we describe an option and she pictures it, was going to stall. All of it inside a fixed $699 Starter Site fee and about seven days from deposit to launch.

What we shipped

Static mockups before a line of application code

We built the homepage as plain HTML first and published it password gated on our own site, so the first thing she reacted to was a real page in a browser rather than a description of one. Her notes on that draft, cut the hero copy, restyle the credential pills so they stop looking like buttons, add Resources to the nav, landed before the CMS existed and saved a rebuild later.

Option for review strips, so she picked by clicking

Every visual decision went up as roughly six alternatives rendered in place, on a private development copy of her own site, under an "Option for review" strip. Hero clips, photography, section layouts. She clicked the one she wanted and we froze it into the real page. That removed the step where the client has to hold a layout in their head and guess, which is the step that was going to cost us days.

Showing her which words were hers

Draft pages highlighted our connective copy in pink, so at a glance she could see what she had written and what we had written around it. Reviewing a page turned into reading the pink and either approving it or replacing it in her own voice.

Build it now, show it later

Several things were true but not yet announceable. Her GPA Approved Trainer credential is one: the badge, the copy and the placement are fully built and sit behind a per item "Show on site" toggle until the approval lands. Rather than keeping a list of things to add after launch, we built them and handed her the switch.

A resource library she can grow

The Resources page holds 18 resources across 9 categories, with a category menu, a free and paid cost filter, and pop up detail for each entry. Adding one is a single entry in the admin. That matters more than it sounds: the library is the part of the site she expects to keep working on, so it had to be the easiest part to edit.

An admin built for the owner

Plain English labels everywhere, with no slug, meta, hero or CTA left in anything she can see. The dashboard opens on new inquiries, recently edited content, site health and a visitors tile fed by the GA4 Data API, so the numbers live where she already works instead of behind a separate Google login. Live Preview, a link back to the public site in the sidebar, and a tick box that switches the whole site to higher contrast colours. It ships with a 47 page branded admin guide and two branded checklists, one for the Approved Trainer go live and one for DKIM.

Self hosting the media

The early build hotlinked stock video, which meant third party cookies on every page load and a payload nobody should send to a phone. We compressed the clips with ffmpeg and served them from her own site: 72 MB of video down to 7 MB, and the home page first load on a phone from 30 MB to 3 MB. It also took the third party video requests to zero, which is what let the privacy page describe cookies honestly.

Email that arrives

Inquiries, password resets and notifications go out through Resend as branded multipart messages rather than plain text, and we set up SPF, DKIM and DMARC on her Google Workspace domain. Test sends to cold inboxes landed in the inbox rather than spam before we launched.

Next.js 16 (App Router)TypeScriptPayload CMS 3PostgreSQLDocker + CaddyDigitalOcean (shared client droplet)Resend (transactional email)GA4 via Google Tag ManagerMicrosoft Clarityffmpeg (video compression)

The result

Grants Within Reach went live on 21 September 2026, seven days after the deposit, on the fixed $699 Starter Site fee.

  • Six pages, Home, Services, Speaking & Training, About, Work With Us and Resources, plus a Privacy page, all block composed and editable by the owner.
  • A resource library of 18 resources across 9 categories, with a cost filter, pop up detail and a category menu that still works at phone widths.
  • An inquiry form that routes to her business mailbox with reply-to set to the sender, behind rate limiting, an origin check and a honeypot that flags rather than rejects.
  • Branded multipart transactional email through Resend, with SPF, DKIM and DMARC configured on her Google Workspace domain.
  • GA4 through Google Tag Manager, Microsoft Clarity and Search Console, plus a visitors tile inside her own admin fed by the GA4 Data API.
  • A 47 page branded admin guide, two branded checklists, and a walkthrough call where she drove and we watched.

Lighthouse on mobile after launch: the home page scores 89 for performance and 100 for accessibility, best practices and SEO. The Resources page, the heaviest on the site, scores 80 / 100 / 100 / 100. Cumulative layout shift is 0 on both.

The site runs in its own container on our shared client droplet behind Caddy, with her Payload admin at grantswithinreach.com/admin and the code and content hers if she ever wants to take them elsewhere.

Grants Within Reach – the three nonprofit service cards on the Services page
Services splits into two pathways, nonprofits and foundations. Each card opens to show what the engagement covers.
Grants Within Reach – the resource library category menu with its cost filter
The resource library: 18 resources across 9 categories, with a free and paid filter and a category menu that survives phone widths.
Grants Within Reach – experience and credentials cards on the About page
Credentials as plain cards rather than pill buttons, a change she asked for on the very first mockup.
Grants Within Reach – recent speaking engagements on the Speaking & Training page
Speaking & Training lists her recent engagements, each one an entry she can add herself.
Grants Within Reach – the inquiry form on the Work With Us page
The inquiry form on Work With Us: named validation errors, an optional budget range, and delivery to her business mailbox with reply-to set to the sender.
Grants Within Reach – the owner dashboard in the Payload admin
The owner dashboard, captured on a local development instance: new inquiries, recently edited content, quick actions, site health and a visitors tile fed by the GA4 Data API.
He presented multiple options and showed me how each layout would actually look on my website, which made decisions so much easier. He took the time to learn about me, my business, and my goals. He was incredibly patient, explained everything thoroughly at every stage, and worked quickly without sacrificing quality. The final website exceeded my wildest expectation.Deja Hasness · Founder, Grants Within Reach
Client
Grants Within Reach
Year
2026
Duration
7 days
Team size
1
Visit live site

Your site could be the next one.

Discounted pricing — 30% off your first build for the next 5 paid clients in exchange for a published case study.