Nutrition-first coaching software

The app never coaches over you.

AI drafts, sorts and estimates. A person decides. Nothing reaches your client carrying your name that you didn't approve — and that's a gate in the code, not a line in the copy.

100 founding seats — because I set up every one of them myself

That button opens an email, not a form. A person reads it — usually me. No card, no calendar, no drip sequence.

Before you believe anything else on this page

Four things you can check yourself.

We're pre-launch. No customer logos, no review scores, no "trusted by 4,000 coaches" — we'd have to invent all three. Here is what we have instead: claims that are checkable rather than impressive.

The fee is zero in the file.

When our platform fee is zero, the fee field isn't sent to Stripe at all — there is no number to quietly change. Your clients' payments arrive whole.

server/src/services/stripe.ts:30-33, :175, :180

The counter counts rows.

The seats number reads claimed rows out of the founding-seat table, cached sixty seconds. It isn't a marketing dial and nobody can type over it.

server/src/services/coachPricing.ts:111-115

Stop paying and you can still look.

A lapsed account keeps every read. Your library stays open, your clients keep being coached, and the doors that take your money are never the ones we bar.

server/tests/coach-write-gate-contract.test.ts

Your client can't get an AI review.

Ask the app for a weekly review as a coached client and it declines, in these words: "Your coach writes your reviews." That's the covenant as a status code.

server/src/controllers/coaching.ts:917

What you're paying now

We are not the cheapest. Here's the actual comparison anyway.

Everyone else prices by how many clients you carry, and most of them charge separately for nutrition. That makes the headline price and the real bill two different numbers, so here are the real ones, read off their own pricing pages, at your roster size. At a small roster we cost more than Everfit and CoachRx, and we're not going to pretend otherwise. What changes as you grow is the shape of the line.

Competitor figures read off their public pricing pages on 8 September 2026 and stamped in this page's source. Where a price hides behind a sales slider or a "contact us", we take the published minimum and label it "from". Niru's number is simply our price.

Trainerizebase plan at this roster size $—
Everfitbase plan at this roster size $—
CoachRxbase plan at this roster size $—
Niruone flat price · founding $99 · 0% transaction fee $120
 

Trainerize's figure is its base plan plus the nutrition add-on and the payments add-on, because a nutrition coach needs both — the add-ons are what make its headline price and its real bill different numbers. Everfit's and CoachRx's figures are their plans as published, with nothing added. Ours is $120 whatever the roster does, and $99 if you take a founding seat.

AI drafts, sorts and estimates — it never decides.

Every other platform is racing to let a model message your client, write their program and adjust their calories while you sleep. We built the opposite: the engine produces a draft and stops. Generation writes a draft record and has no path to a client. An adaptive target change on a coached client becomes a proposal in your queue — accept or dismiss, one tap either way. Automations that fire on what the engine noticed wait for your approval unless you switch that off yourself, per sequence.

Self-coached accounts are the one exception, and we say so plainly: there the math may nudge, with an undo, after three changes a human approved by hand. Coached — a person decides.

Your desk, not a mock-up

This is the console, running.

Four screenshots of the actual product against a seeded roster of ten clients — every flag below was raised by the same detectors that run on a real account. Niru sorts the morning into what needs a decision and what doesn't, and the queue empties in the order it costs you money.

The Niru console's Today screen: ten active clients, ten needing attention, three unread messages, fourteen to review. A queue titled Needs you today lists four approvals — a flagged diner breakfast, a pending TDEE target, and two flagged restaurant meals — then ten check-ins. A Recent activity column lists meals logged and weigh-ins with times.
The Niru client roster: ten clients sorted by priority, each with an adherence sparkline, a weight trend with direction, when they last logged, and a status chip such as no log since 2026-09-04 or 1 to review.

Ten clients, sorted by priority.

Adherence, trend and last-logged on one line — so the roster reads itself.

A client profile in the Niru console: trend weight 75.5 kilograms down 0.14 over 21 days, adherence two of three, a 2,019 calorie target, a weekly summary reading Holding steady — that is the plan, a weight trend chart, and the day's vessel showing 2,019 left today.

One client, whole.

Trend weight, adherence, target and the week's read — before you say a word.

The Niru messages screen with a conversation open: a coach asks about missed steps, the client replies that they were slammed at work. A side rail shows the client's flags — one to review, no check-in this week, unread message, four missed step days — with 100 percent adherence over seven days and today's target.

Their message, with their week beside it.

Flags, adherence and today's target in the rail — you answer already knowing.

Captured from the running console on 9 September 2026 against the seeded demo roster. Client names and figures are demo data; the layout, the flags and the wording are the product exactly as it ships.

The half of this your clients actually touch

Your clients get the good app.

Coaches churn tools when clients complain about them. So the client app is the one we spent the most on — not the admin panel. Two of its screens, drawn here rather than photographed: it's an iOS app, so a web page can only render it honestly, never capture it.

"What should I order?"

Standing outside a restaurant, they search what's near them, open the menu, and build the meal while watching what it does to the rest of their day. Forward-looking, not a confession afterwards.

Describe it in words.

"Chicken thigh, rice, half an avocado." It resolves to real editable grocery items with real macros — not one opaque AI lump they can't correct.

No separate bill.

While you coach them, the app's metering doesn't apply to them at all — they aren't a "consumer" in the system. Your $120 covers your client's app. We won't upsell the person you're already charging.

Client app: iOS, delivered through TestFlight during the beta. Steps sync automatically from the phone. Android is built but not released — see the limits below.

The mechanism behind "one bad day is absorbed"

Saturday ran over. The week can take it.

Your client logs a birthday dinner 640 over. Turn rollover on for her and the next seven days each carry about 91 of it — spread, capped, and recomputed every day against what she actually logged. No red screen. No nine-o'clock apology text. No morning of damage-control arithmetic. She logs Sunday because nothing shouted at her on Saturday.

It is off until you turn it on.

Rollover ships disabled for every client and stays disabled until someone switches it on, per client. It is a coaching decision — some clients should never see it — so it isn't a default we made for you.

server/prisma/schema.prisma:222 · @default(false)

Plan changes still route through you.

The bookkeeping doesn't wait for Monday. The coaching does. Nothing in this mechanism edits her macros, messages her, or tells her she failed.

server/src/services/rollover.ts:23-35

Your practice, after

The machine counts. You coach.

No client ever renewed because of a well-reconciled spreadsheet. The hours you spend reading logs, chasing weigh-ins and rebuilding macros are completely invisible to the person paying you. Niru does that part and hands you the exceptions: who drifted, who stalled, whose estimate needs a human, whose target the measurement now disagrees with. You spend the morning deciding instead of collecting.

Their bill grows when your roster does. Ours grows only when your clients stay — with you.

The reason coaches don't switch

The move is done by a person. That person is me.

Switching platforms is the objection, and every competitor answers it with a CSV importer and a help article. We don't have an importer. What we have is that the founding cohort is small enough that I do the move myself, by hand, per coach — which is better than an importer and is only possible while we're this size. Saying so out loud is the point.

Send what you have.

Export, spreadsheet, screenshots, notes. Any format. Start with one client if you'd rather.

You · 10 minutes

I set them up.

Accounts and roster live overnight. Include their stats and their targets are live overnight too; otherwise each client's two-minute intake computes them.

Me · overnight

Your logins, their invite.

Console at your desk, app in your pocket, a typed invite key per client.

Me

Run us beside your current app.

Until your next billing date with them. If we're not obviously saving you time by renewal day, keep what you have.

You

What does not come across.

Past food logs and weigh-ins, chat history, photos and video, payment state. We will not fabricate lived-day history — a fake weigh-in trend would poison the exact engine you came for. Programs and client details do come across.

Why "overnight" and not "instant".

A competitor export carries name, email, phone. It does not carry sex, age, height, weight, activity or training days — and we refuse to compute a target without them. So either you send a stats sheet, or the client taps through a two-minute intake that fills it.

Pricing

One price, everything in it, nothing taken off the top.

There are no feature tiers on your account. There is no nutrition add-on, no automation add-on, no branding upgrade and no per-transaction cut. The only thing that changes between the rows below is when you arrived.

Standard

Rack

$120/month

The price after the founding seats are gone. All-inclusive, flat, at any roster size.

  • Every feature — no tiers, ever
  • 0% on what your clients pay you
  • Up to 100 active clients
  • Cancel in Stripe, not through us
Start a conversation

"Active" means a client who logged something this month. Idle clients don't count toward the 100.

Open now · 100 seats

Founding

$99/month, for life

The first hundred coaches keep $99 permanently — through every future price rise, for as long as the subscription runs unbroken.

  • Everything in Rack
  • The rate survives every increase
  • I do your migration personally
  • Direct line to me, not a helpdesk
Claim a founding seat
100 seats · the cap is enforced in billing, not on this page

Cancelling a founding subscription ends the rate permanently. We'll tell you exactly that, once, at the door — no pop-up, no retention offer.

Closed · by invitation

Charter

$49/month, for life

Ten design partners who shape what gets built and get told when their feedback lands. Not a discount — a job.

  • Everything in Founding
  • Your feedback sets the build order
  • Not self-serve — assigned by hand
Ask about a charter seat

Listed because hiding a lower price from people paying more is exactly the kind of thing this page is arguing against.

Included at every price

Adaptive nutrition engine Restaurant & menu estimating Workout builder & logging Program generator (drafts) Habits Intake forms Automations & sequences Day & meal templates Messaging, voice notes, video Form-check review Your branding on their app Client payments via Stripe
What happens if I stop paying?

Your clients are not touched. They keep logging, keep their targets, keep their history — a lapse of yours is never a punishment of theirs.

You keep every read. Your library, your roster, your messages, your alerts all stay open so you can see your work is still there. What closes is doing: writing, sending, assigning, generating. And the two doors that take your money are never gated, because barring the exit from a state you're trying to leave is a dark pattern with a business model attached.

Is 0% really 0%, and will it stay that way?

Today it is genuinely zero: when the platform fee is zero the fee field isn't sent to Stripe at all. Money your clients pay you arrives whole, minus Stripe's own processing.

Honestly, "forever" is a promise I'd rather earn than print. The plan on the record is that clients you bring stay at 0% and that any future share applies only to clients we send you — people you'd never have met. That distinction is recorded in the database from day one; the fee behind it isn't built, so today there is one rate and it is zero.

Is there a free trial?

No, and I'd rather say that in one sentence than bury it. What replaces it: you run Niru beside your current app until your next billing date with them, I do the migration myself, and if it isn't obviously saving you time by renewal day you keep what you have and we part on good terms.

What is the 100-client limit really?

A ceiling on minting new invitations, and nothing else. Crossing it never severs a client, never degrades a feature and never runs a job against your roster. Solo coaches plateau at 30–50 from check-in workload, so it exists to size the plan, not to squeeze you — and if you genuinely get there, that's a conversation I want to have.

Who owns the data?

The client owns their record. Coach access is resolved live from the current relationship on every single request rather than stored on the row — so the moment a client leaves you, access is gone, with no job to run and nothing to remember.

Anyone can export everything they have, or delete their account, from inside the app. And what you give a client is theirs: send a client a recipe and deleting your own master never claws back their copy. That one is written into the database schema as a rule, not a habit.

Before you claim a seat

What we don't have yet.

If any of these is a dealbreaker, I'd rather you found out here than in week two. Everything on this list is either shipping or deliberately not being built.

Android isn't released.

The app is built for it and notifications aren't wired. iOS only, through TestFlight, until that changes. If half your roster is on Android, this isn't your month.

You'll be early enough to notice.

A small number of coaches use this today. You will find rough edges, and I'll fix them the same day more often than not. That's the trade the founding price is paying for.

No self-serve sign-up.

Coach accounts can't be created from a web form on purpose — a coach account can invite clients, so a stranger minting one is a real exposure. Accounts are provisioned by hand.

We don't import your history.

Clients and programs move across. Past logs, weigh-ins, chats and photos don't. We won't invent days that didn't happen.

No in-app cancel button.

Cancelling happens in Stripe's own portal. That's deliberate — payment state has exactly one writer — and it means we can't put a retention wall in front of you.

No case studies.

We're too new to have results worth quoting, and I won't run a testimonial from a friend. Judge it by using it, on your own roster, beside the tool you already trust.

$120 a month. The first hundred coaches pay $99 — for life.

Everything included: nutrition, training, payments, branding, the engines, and me doing your migration. No add-ons, no tiers, no transaction fee. When these seats are gone they're gone, and the counter is read from the seat table, not typed by us.

Built by a coach. — Sonny, founder

No surprises

What each button on this page actually does.

Most software sites make you click to find out whether you're about to be asked for a card. Here is the whole path, including the parts that are a person rather than a system.

Live today

"Claim a founding seat"

  1. Your mail client opens with the subject and first line already written. Nothing is sent or stored until you press send.
  2. I read it, usually the same day, and reply as a person. If you're not a fit — mostly an Android-heavy roster, or you don't coach nutrition — I'll say so and we'll stop there.
  3. If we go ahead, I create your coach account by hand and send your sign-in.
  4. You sign in and start your subscription from inside the console. The price is decided by the server from your account, not by anything the page sends.
  5. You send me what you have. Roster live overnight.

No card at any point before step 4. No calendar booking. No sequence.

Live today

"See what it actually does"

  1. Opens the Engine Room — the engines running on real math in a browser, no account and no sign-up.
  2. Nothing is recorded about you there and there is no gate at the end of it.
  3. It exists because a coach evaluating software wants to see the thing work before they talk to anybody, and a demo request form is a worse answer to that.

This is the honest replacement for the free trial we don't offer.

The whole path, end to end

The Niru funnel, landing page to first client live Seven steps. The visitor lands on the site and clicks claim, which opens an email. Sonny replies and qualifies, then provisions the coach account by hand. The coach signs in and starts a subscription, whose price the server decides. Sonny then builds the roster from whatever the coach sends. Finally the client installs the app and logs, which is the first moment the product is live. Steps one, two and five are the visitor's; three, four and six are Sonny's; the last is the client's, with the system deciding the price at step five. 01 Lands on getniru.com reads, scrolls 02 Clicks claim — mail opens nothing stored yet 03 Reply and qualify a person, same day 04 Account provisioned by hand, on purpose 05 Subscribes in the console server picks the tier 06 Roster built overnight from what you send 07 First client logs a meal the product is live VISITOR VISITOR SONNY SONNY COACH + SYSTEM SONNY CLIENT Steps 03, 04 and 06 are a person, not a system. Nothing between 01 and 04 touches a database or a payment method.
The visitor or coach acts Sonny acts, by hand The client acts