Forjwell One

Live Site ↗Our Own ProductInvite-OnlyAgency ↔ ClientBuilt In-House
Forjwell One — The build · forjwellone.com
The client portal we built for ourselves, and now run every Forjwell engagement on. Invite-only.

Running seven client engagements across brand, build and campaigns meant status lived in chat, files lived in Drive, and approvals lived in someone’s memory. We could not find software that showed a client exactly what we wanted them to see and nothing else, so we built it.

01

Dogfood The Problem

Scoped from our own agency workflow: projects, milestones, tasks, deliverables, approvals.

02

Two Surfaces

An internal board for the team, and a client portal that shows only what has been shared.

03

Platform Layer

Companies, plans, seats and trials above the workspace, so the product can be sold, not just used.

04

Run It Ourselves

Every Forjwell engagement moved onto it, which is how the gaps got found and closed.

An agency-to-client portal: a project board from milestone to subtask, deliverables sent for review, client-visible rooms, and a platform layer for plans and seats.

Product StrategyUI/UX DesignNestJS APINext.js ApplicationRole & Permission ModelDeployment & Ops
NestJSPrismaPostgreSQLRedisBullMQNext.jsReactTailwind
Product
What the portal does
About
Built for bolder brands
Contact
Say hello
Sign In
Invite-only access
Internal Board
Project to subtask
Client Portal
Only what was shared
  • ProjectLevel 1
  • MilestoneLevel 2
  • Main taskLevel 3
  • SubtaskLevel 4
6
2
4
1
One place. Every project.

Live at forjwellone.com and running every Forjwell engagement. Clients see their own projects, the work marked visible, the deliverables sent to them, and nothing else.

“We built the thing we could not buy, then moved our own agency onto it.”

Forjwell · on building Forjwell One

Want results like Forjwell One?

We take on 5 new brands per quarter. Tell us about your challenge and we'll follow up within 48 hours.

See More Case Studies

🔒 No obligation · 48-hour response · 3 of 5 Q3 2026 spots remaining

Verus
→