Marketing as a publishing problem
Sourceful Energy sells three things on one site, to three different readers: homeowners, installers, and infrastructure investors. The hosting surface is the one aimed squarely at the third reader, property owners deciding whether to let Sourceful install and operate battery systems on their assets.
That reader does not respond to consumer marketing. They respond to spreadsheets, references, track record, and a confident read of the economics. The design brief was to make a site that felt like a trade publication rather than a brochure, without tipping into dryness.
Editorial, not promotional. Confident, not hyped. Read like a prospectus, feel like a magazine.
Numbered spreads
Every section of the site is a numbered spread, like a print magazine. Problem, Why, How, Apply, Pricing. The numbering is both a navigational aid and a tone setter: this is a document you read, not a page you scroll through.
The type system does almost all of the work. A high-contrast display face for the spread titles, a compressed grotesque for numbering and metadata, and a generous reading measure for the body. Colour is reserved for live data readouts and a single accent.


5
Numbered spreads
2
Locales (en / sv)
Neon
Serverless Postgres
Haiku
Claude on the backend
Confidence without vapourware
The hardest editorial choice was tone. Too confident and the site reads as vapourware, which a sceptical infrastructure investor will spot in seconds. Too hedged and it reads as a company that does not believe its own numbers.
The site commits to specifics. Real savings figures from live deployments. Real counterparty names where contracts allow. Live price data from Nord Pool pulled server-side. Every big claim has a live data readout behind it or a named reference next to it. Hedged language got cut in review.





The stack
Built on Next.js 16 with React 19, localised across English and Swedish via next-intl, and deployed behind Sourceful's internal @sourceful-energy/ui design system. Form submissions land in Formspark, price data comes from Nord Pool server-side, and a small Claude Haiku service handles the first-pass triage on enquiries before they reach a human.
- Next.js 16
- React 19
- next-intl
- Framer Motion
- Tailwind
- @sourceful-energy/ui
- Neon
- Formspark
- Claude Haiku
- Nord Pool API


Outcome
In progress
Staging live
1
Designer / builder
Editorial
Tone, not template
B2B
Audience is infrastructure investors
The site is staging-live at the time of writing. The lesson carried out is that a serious B2B audience rewards editorial discipline over marketing flourish. When the reader is making a capital decision, the job of the page is to help them read.