Hey Indie Hackers,
I am 16 years old from India.
60 days ago I had zero experience,
zero team, and ₹5,000 (~$60).
Today I have a working AI SaaS
product live on the internet.
The problem I solved:
Indian digital marketing agencies
spend 3-5 hours every month writing
client performance reports manually.
Copy pasting numbers from Meta Ads,
Google Ads, formatting everything,
making it look professional.
What I built:
Reportify — you paste your campaign
data and AI writes a complete
professional client report in
60 seconds.
Tech stack:
Next.js, Tailwind, Claude API,
Supabase, Vercel
Current status:
Try it free:
reportify-jet.vercel.app
Would love honest feedback from
this community — especially on
pricing, positioning, and how to
get first paying customers.
Thanks for reading 🙏
Congrats on getting it live — 2 real users generating reports is a real signal already.I’d just be careful not to jump to pricing/growth too early.For this kind of tool, the stronger signal is probably:did those users actually send the report to a real client, save time, and want to use it again next month?If they only generated a report, that’s a good start.If they sent it, saved time, and want it again for the next reporting cycle, that’s a much stronger pricing signal.
This is really valuable — thank you.
You're right, I jumped straight to
"2 users generated reports" as if
that's proof, but generation isn't
the same as value delivered.
I'm going to reach out to both users
and ask exactly those questions —
did they send it to a real client,
did it save time, would they use it
again next month.
Really appreciate you pointing this
out — this is the actual signal
that matters, not just usage.
right !next check. For the 2 users, The 60-second generation claim only becomes meaningful if at least one of those moves. Open to posting those three counts after the outreach — yes or no?
Yes, completely agree. Following up with both users this week to find out exactly that, did they send it, did it save real time, would they use it again. Will post an update here once I have real answers instead of just usage numbers.
That’s exactly the right follow-up.I’d keep the update at the individual-user level rather than combining the two:User 1 — sent to a real client? time before → after? use again next cycle?
User 2 — same.
If either answer is no, the reason is probably the most useful part. It should show whether the remaining gap is data collection, trust, or the report itself.A two-row update here would be enough.
Really appreciate you following up on
this. Honest update, I actually can't
reach those original 2 users, email
capture wasn't in place yet when they
used it, so I have no way to contact
them.
I've since fixed that so every new
real user leaves contact info. Still
waiting on new organic users to test
this with directly, will share a real
two-row update the moment I have one.
In the meantime I did get a clear "no"
from someone who confirmed the pain
point but declined a ₹299 offer, which
itself was useful data, confirming pain
doesn't always mean willingness to pay.
That’s still useful data. The original two aren’t a product “no” — the evidence trail broke because they weren’t contactable.The ₹299 refusal is real, but one distinction changes what it means: was the offer made after they’d seen or used a real Reportify report, or before?A no before use mostly tests the pitch. A no after a real report tests whether the outcome felt worth ₹299.For the next 3 contactable users, one row each is enough: sent / time before→after / use again / ₹299 yes-no + reason.Was this no before or after they saw the output?
Great question, and honestly this
exposes a real gap. It was a no
before, they confirmed the pain
point but never actually saw or
used a real Reportify report before
I asked for payment.
So this was really testing the pitch,
not the outcome. I should have
offered them a free real report
first, then asked for payment on the
next one, instead of asking cold.
Will fix this sequencing for the
next people I talk to, show the
actual output first, then ask.
I’d wait until the report was actually sent to a client, not just shown to the user. Seeing the output still tests the impression. Sending it tests whether it completed the job.