#HalfTheStory

Compelling solutions for an organization with a clear voice

Since 2025

Overview

#HalfTheStory is a youth nonprofit, teaching middle and high school students to navigate influencer culture, online safety and the effect social media has on their mental health. We rebuilt their marketing site in 2025, and returned the following year to build their learning platform inside the same codebase.

  1. Marketing website

    2025

    Marketing website

    The existing site carried the organization's voice well, but it was built for a smaller version of the organization. Pages were laid out individually, so every new program meant new design work, and the paths through the site didn't distinguish between different groups of people and their needs.

    The lack of audience-specific messaging was a structural problem that needed to be addressed before we got into design. While a program-led navigation is great for search and the brand, it may not be the best fit for a teacher who isn't familiar with the organization's programs.

    We solved the need for both types of nav by implementing a mix of both. The primary navigation stays program-first, but the programs are bucketed into audience-specific dropdowns for educators, teens and funders. We also included context-aware calls to action on the program pages, so an educator reading about a program is offered classroom resources rather than a general contact form. This allows people discovering #HalfTheStory for the first time to find their way to what they need much more easily than before.

    The collages are what people remember. Each one is a stack of layered elements, cut-out clouds with hand-drawn outlines, a biplane, a skateboarder mid-trick, a paper plane, arranged over open sky with real depth between the layers. They carry the organization's voice better than any photograph would, and they are a long way from the stock imagery that nonprofit sites usually settle for.

    Making them work as content rather than as flat exports was the harder half. A collage is a set of layers with individual positions and proportions, and the composition has to survive a change of aspect ratio between a desktop screen and a phone held upright. We built a structure in Sanity that holds the stack, keeps each layer editable, and behaves predictably at both shapes, so the team can build new compositions without a designer rebuilding the page.

    That thinking runs through the rest of the build. Pages are assembled from a library of sections rather than laid out by hand: hero blocks, program cards, statistics, article previews, testimonials, calls to action. When #HalfTheStory needed a Girls Inc. program page shortly after launch, it was assembled from existing blocks in about two hours rather than scheduled as a design project. That is the difference the content model makes, and it is invisible until the moment somebody needs a page in a hurry.

    A later phase extended the same system to gated resources. Toolkit pages now offer downloadable material behind a short form, so the organization can put genuinely useful resources in front of educators and know who is using them.

    The site is built with Next.js and Sanity, deployed on Vercel, and it launched on September 10, 2025.

    What #HalfTheStory has is a site their own team extends without asking permission, and one where the path from being interested to being involved is short enough to actually walk. The following year it became the foundation for their learning platform, which is a fair test of whether a website was built to last.

  2. Learning Management System

    2026

    One site, one content system, no handoff

    Before this project, #HalfTheStory ran two products at two addresses. The marketing site was one system. The curriculum lived on a separate learning platform on its own subdomain, with its own content management and its own database. A teacher who found a lesson through the marketing site had to leave the site to use it.

    That platform was built for an earlier stage of the organization, and for that stage it did the job. What it could not do was let the organization grow without growing its staff. A school could not sign itself up. Teachers had to be added by hand. Nobody could buy access without someone at #HalfTheStory processing it personally. Every new customer arrived as administrative work for a small team.

    The decision that shaped everything else was to build the platform inside the existing site rather than beside it. It shares the codebase, the domain and the CMS, and lives under a /learning/ path. There is no second application, no second deployment and no second place to edit content. For an organization at this size, subtracting a system is worth more than adding a good one.

    That choice made three others possible. Lesson content is public by default, so titles, objectives, grade levels and standards are visible to anyone and lesson pages work as the top of the funnel rather than sitting behind a login. Organizations hold subscriptions rather than individuals, so a school buys once and its teachers inherit access, and a solo teacher becomes an organization of one. And because lessons and marketing pages are both documents in the same CMS, the team edits everything in one place.

    Underneath, content and people are kept deliberately separate. Sanity holds all content. A Postgres database holds accounts, subscriptions and activity. Neither system stores the other kind of data, and the application joins them when it renders a page. That boundary is what lets a lesson be public and cacheable while a teacher's private notes stay authenticated, and it means content can be edited without touching the database and a teacher can be added without touching the CMS.

    Self-serve signup is the change the organization feels day to day. A school can register, invite its own teachers by email, link or spreadsheet, manage its seats and handle its own billing through Stripe, with no one at #HalfTheStory in the loop. Hours a week of administrative work simply stopped existing.

    Two smaller decisions are worth naming because they came from listening rather than from architecture. The old platform attached a survey to every lesson, and few teachers ever filled one in. The replacement is a private teaching journal instead, framed as something useful to the teacher first, on the reasoning that notes only get written when the person writing them gets the value. And bilingual material used to require duplicate curricula, an entire second copy of a lesson to publish it in Spanish. Now English and Spanish sit as alternate resources on a single lesson, so translating something no longer doubles the work of maintaining it.

    The platform is built with Next.js and Sanity, with Postgres for user data and Stripe for subscriptions, deployed on Vercel. It launched on July 31, 2026, and the old platform stays online alongside it for a transition period rather than being switched off on launch day.

    What #HalfTheStory has now is one website instead of two products, and a platform that lets the organization take on another school without taking on another afternoon of admin. For a nonprofit team of this size, that is the difference between technology that costs you time and technology that gives it back.

    The migration brought the curriculum across from the old platform, along with the professional development modules, and left the slides and video where they already were. Those live in Canva and Vimeo, tools the team knows, referenced from the platform rather than absorbed into it.

Up next