Hey everyone!
This is Mahmut. I write about Startups, Growth, and product-market fit. Especially for #2026.
I have a background in Software Engineering. I worked in fintech and eVTOL industries.
I’ve spent over a decade in tech and software development.
I’ve launched several products in the market. I’m sharing my own experience on scaling products.
And helping them find the right market segment.
If you share the same goals, let’s connect 🤝.
Let’s share our experiences and thoughts.
What’s the biggest challenge you’re facing with product-market fit or growth right now?
Choosing an agent runtime? The Agents SDK runs inside your app. Try the suggested ownership brief below to map hosting, storage and approvals before building your first handoff. #AIWorkflows#IndieDev
Building scheduling SaaS for bicycle-repair shops and getting requests from automotive garages? Set an expansion gate: check whether your existing shops get repeat value before committing scarce development time to another market.
1. Give expansion a prerequisite
For a small team serving its first paying bicycle shops, I’d use this evergreen exercise: write down what the initial segment must demonstrate before adjacent-market interest earns a separate discovery test.
Paul Graham recommends considering a deliberately narrow initial market. PostHog describes working toward full-price customers who were delighted and using its product intensively.
Those references support concentration and checking customer value. Turning those principles into an expansion gate is my recommendation. Neither source establishes demand for this scheduling product or validates the protocol below.
The question to resolve first: are bicycle shops consistently completing the scheduling work the product already promises?
2. Define the review before choosing the winners
The audience scenario and entire proposed experiment are hypothetical illustrations. All sample sizes, timelines, thresholds and example outcomes below are suggested choices, not source-reported findings or proven benchmarks.
For this hypothetical experiment, postpone automotive-specific development for four weeks. Keep current pricing and service commitments unchanged.
Select five existing paying bicycle shops that have completed setup. Fix eligibility and the selection method before reviewing their usage or satisfaction. Avoid choosing shops because you already know they will praise the product. Record which eligible accounts were not selected.
Define the core workflow explicitly: the shop schedules repair work and records its completion through the existing product. Opening the calendar or creating an unfinished repair entry does not meet that proposed definition.
The tradeoff is concrete: automotive development waits while you investigate whether the initial workflow deserves a broader audience. Name the deferred work and log the founder hours spent on this review.
3. Build a shop-by-shop evidence sheet
For each hypothetical observation week, record whether each selected shop completes the defined workflow. Keep the underlying repair records available for checking.
At the review, record separately for each shop:
• Whether it pays the published list price.
• Which observation weeks contain completed workflows.
• Whether it confirms that the workflow meets its scheduling needs.
• Whether it explicitly agrees to serve as a customer reference.
• Unresolved obstacles, refusals and missing observations.
Ask about the workflow before requesting a reference: “Does this meet your scheduling needs? What remains unresolved?” Then make the reference request separately and allow a refusal.
Do not infer satisfaction from payment, or reference willingness from a friendly comment. Keep inactive accounts in the review. A missing record stays missing until resolved.
Also preserve disagreements between the fields. A shop can use the product while reporting an important unmet need. That deserves investigation rather than an averaged satisfaction score.
4. Hypothetical example
Every detail, count and outcome in this section is a hypothetical illustration.
Imagine five selected bicycle shops complete the observation period. All pay list price. Four complete scheduling workflows in every week, confirm the workflow meets their needs and agree to serve as references.
The fifth completes workflows in only two weeks and says it still relies on a separate calendar for part of its repair scheduling.
Under the proposed gate, the review fails. Four enthusiastic shops do not override the fifth shop’s unresolved workflow. Investigate what the separate calendar handles before reconsidering expansion.
Now imagine all five meet every condition. That would authorize a separate, bounded automotive discovery test. It would leave automotive-specific development waiting for evidence from that next test.
The distinction matters: evidence that bicycle shops receive value answers a question about bicycle shops. The garage workflow remains to be investigated.
5. Know the cost of this rule
This is a conservative planning gate, not a statistically validated readiness test. Five selected accounts may not represent the initial segment. Preserve the selection method and account-level evidence so you can see that limitation.
Usage, stated satisfaction and reference willingness do not establish durable retention, profitability or suitability for automotive garages. A reference refusal may also reflect a shop’s preferences rather than product failure; record the reason without quietly changing the rule.
The opportunity cost runs both ways. Broadening now consumes time that could address bicycle-shop needs. Waiting may delay a worthwhile automotive opportunity. Keep those deferred requests visible without treating them as commitments to build.
6. Write the authorization boundary
For this hypothetical four-week review, authorize only a separate, bounded automotive discovery test if ALL five shops:
• Pay the published list price.
• Complete the core workflow in at least three of four weeks.
• Confirm that it meets their scheduling needs.
• Explicitly agree to serve as references.
With complete evidence, a failed gate means addressing the initial segment’s unresolved needs before reconsidering expansion. Missing observations make the review inconclusive. Passing does not authorize broader development.
Next action: write the eligibility rule, evidence sheet and deferred automotive work before inspecting the selected shops’ outcomes.
Make expansion a separate decision.
#StartupGrowth #B2BSaaS #MarketExpansion
Solid diagnostic approach. One addition that usually sharpens these investigations: also check whether retained tutors hit the same scheduling obstacle. If they do, the useful next question becomes what lets them work around it (different workflow, support, familiarity, etc.) instead of treating the obstacle itself as a pure churn signal. This keeps the analysis focused on what actually differentiates the two groups.
A tutor cancelling your scheduling SaaS after setup doesn't tell you which feature to fix. Compare their explanation with their account history before turning a lost subscription into a product ticket.
1. Start with timing, then investigate the reason
This evergreen playbook is for an early appointment-scheduling SaaS with paying independent tutors who completed setup, then cancelled during their first subscription month.
ChartMogul describes using cohorts to identify where churn peaks in the customer lifecycle. PostHog recommends combining qualitative and quantitative feedback once people are using your product.
My recommendation: use subscription timing to select the accounts, interviews to understand their explanations, and account records to check relevant observations. Keep your interpretation separate from both.
Neither source validates the cancellation-interview protocol below. This is a proposed diagnostic exercise, not a reported experiment or a current trend.
2. Build a ledger before a backlog
For each cancelled account, create separate fields for:
• The tutor's explanation, in their own words where permitted.
• Relevant account observations, with dates and missing records visible.
• Your interpretation of the possible product problem.
• Contradictory evidence and unanswered questions.
That separation changes the product decision. “My availability changed” is an explanation. A saved recurring schedule is an observation. “Our recurring-availability model caused cancellation” is a hypothesis requiring investigation.
Avoid collapsing those into a single churn-reason label.
Completing setup is also only the eligibility condition here. Don't assume it proves the tutor successfully handled their actual scheduling work. Inspect what happened after setup without quietly changing the cohort to include only accounts that fit your preferred explanation.
3. Ask about the cancellation before suggesting a cause
The audience example and entire protocol are hypothetical illustrations. All sample sizes, timelines, thresholds and outcomes below are suggested choices, not source-reported results or proven benchmarks.
For this hypothetical sprint, invite six first-month cancellers to optional interviews over two weeks. Select accounts using the stated eligibility conditions before reading their explanations.
Ask the same core questions:
“What prompted you to cancel?”
“What were you last trying to accomplish?”
“What do you use for that work now?”
Follow their sequence before introducing possible explanations. Ask what happened, what they tried next and what remained unfinished. Where permitted, preserve their wording rather than immediately translating it into your feature vocabulary.
Then compare relevant account records with the account they gave. Record what is consistent, what conflicts and what cannot be checked. An absent event should remain unresolved if you don't know whether the tracking was complete.
Count independently reported instances of each specific reason. Keep changed scheduling needs, product obstacles and other explanations separate. Retain nonresponses and contradictory accounts.
Defer cancellation-driven feature changes until review. The tradeoff is founder time spent diagnosing the loss while a potentially useful change waits.
4. Hypothetical example
Every detail, number and outcome in this section is a hypothetical illustration.
Imagine six invitations produce four completed interviews and two nonresponses. Three tutors independently describe being unable to represent alternating-week lesson availability. The fourth says they stopped tutoring and no longer needed scheduling software.
Suppose relevant account records for the three tutors show repeated edits to recurring availability, consistent with the attempts they describe. Record those observations separately from their explanations. Keep any conflicting records visible too.
The candidate product question becomes: “Can a tutor represent alternating-week availability in the current workflow?”
That is narrower than “Tutors need better scheduling.” A separate investigation could ask affected tutors to demonstrate the task and inspect how the current product handles it.
The fourth tutor's changed need belongs in the review. Neither silent account should inherit the other respondents' reasons.
Under the illustrative rule below, this hypothetical batch would earn a separate investigation. It would not establish that the availability obstacle caused cancellation or authorize shipping a feature.
5. Keep the conclusion smaller than the evidence
Respondents may differ from silent cancellers. Recollections and account records may be incomplete. Treat matching observations as supporting evidence, not causal proof.
Report the shared explanation as three respondents out of four completed interviews, with six accounts invited, in the hypothetical example. Don't describe it as the reason half your customers churn.
A repeated explanation also leaves the solution open. The next investigation might expose a defect, an unclear workflow, a missing capability or a misunderstanding. This sprint chooses a question; it does not choose the implementation.
Its output is a better-supported retention investigation, not a measured retention improvement.
6. Set the investigation gate
For this hypothetical two-week sprint, report invitations, completed interviews and independently reported instances of each specific reason. For every proposed product problem, include supporting account observations, contradictions and unresolved questions.
Commission a separate investigation only if at least four interviews are completed and at least three respondents independently describe the same specific obstacle, with relevant account observations consistent with their accounts.
Otherwise, retain the separate explanations and revise the diagnostic question. Insufficient participation or unavailable records makes the sprint inconclusive. Passing does not establish the cause of churn or authorize a feature rollout.
Next action: write the eligibility query, interview questions and separate evidence fields before inviting anyone.
Give the cancellation a question before a ticket.
#SaaS #CustomerRetention #ChurnAnalysis
@ericnofsinger That's valid. A solid audit trail records who said what and when, which quickly settles disagreements later without digging through old messages.
Suggested web-app niche: a proof-approval portal for freelance editors. Test whether a client can return to a draft using a passkey before building more review features. #WebApps#IndieDev
Does your demo promise what your store page sells? Transcribe your public X demo in Damas, then compare the pitch with your app description.
App Store: Damas - Video Link Transcriber
#IndieDev#Positioning
Trial users opened bank setup but never generated a cash-flow forecast? Ask what interrupted their last attempt before changing onboarding. A failed connection, an access concern and postponed work need different responses.
1. Give the abandonment a question
For an early cash-flow forecasting SaaS, try this evergreen diagnostic exercise: invite users stalled at bank connection to explain what happened, then verify any recurring obstacle before choosing a fix.
Amplitude recommends investigating why users drop out of an activation funnel. PostHog recommends asking people who haven't used a product whether something put them off.
Those references support investigating abandonment and asking for feedback. Neither reports the protocol below, establishes demand for your forecasting product or identifies why your trial users stopped.
The useful output is a specific question worth investigating. Keep “opened setup,” “connected an account” and “generated a first forecast” separate in your review. You want to understand the gap between starting setup and reaching the intended outcome.
2. Ask permission before asking for detail
The audience example, protocol, classifications, sample size, timing and thresholds below are hypothetical illustrations, not source-reported findings or proven benchmarks.
Select six trial users who opened bank-connection setup but completed neither a connection nor a first forecast after three days.
Send one invitation asking whether they are willing to explain what interrupted setup. Make participation optional. Keep declined invitations and nonresponses in the ledger; neither supplies an explanation for abandonment.
A hypothetical invitation:
“You opened bank setup but haven't connected an account. Would you be willing to explain what interrupted your last attempt? It's fine to decline. Please don't send banking credentials.”
For consenting respondents, reconstruct the attempt before suggesting explanations:
• What were you trying to do?
• What happened when you reached bank connection?
• What did you do next?
• Did anything put you off?
Ask for clarification in their words. Avoid opening with “Were you worried about security?” That would introduce the explanation you are supposed to investigate.
3. Keep reasons separate from observations
For this hypothetical exercise, record invitations, consent, completed conversations and unresolved cases.
Classify reported reasons as technical failure, access concern, postponement or another explanation. Preserve the original wording beside the category. Leave ambiguous answers unresolved rather than forcing a classification.
Use separate fields for what the user reports and what you can verify. “The connection failed” is a reported experience. A matching error in an appropriate technical record is a separate observation. Don't silently turn one into the other.
Likewise, “I wasn't ready to connect my business account” needs a follow-up question. It could describe an access concern, missing permission or simply a task deferred until later.
Count independently described instances of the same specific obstacle. Don't combine every mention of bank connection into one apparent pattern. Show the respondent denominator beside the full invited cohort.
4. Hypothetical example
Every detail, count and outcome in this example is a hypothetical illustration.
Imagine six invitations produce four completed conversations, one decline and one nonresponse. Three respondents independently say they stopped because they could not tell which account access they were authorizing. The fourth says they planned to return after finishing another task.
Record the shared concern as three of four completed conversations, with six users invited. Keep the decline and silence visible, without assigning either a reason.
That would meet the illustrative rule below for a separate investigation. The next task could be to inspect the permission screen and connection handoff, then check whether their descriptions match what the product displays.
It would not establish a technical defect or justify claiming that unclear permissions explain most trial abandonment. It would not automatically authorize rewriting onboarding.
If the three respondents instead describe unrelated problems, preserve those differences. A shared category is too broad to earn a shared fix.
5. Spend founder time deliberately
The tradeoff is time spent on a narrow diagnostic exercise before committing to onboarding changes. Keep the invitation bounded and follow the consenting respondents' accounts carefully.
Respondents may differ from silent users. Recalled explanations may be incomplete. A repeated concern warrants verification; it does not establish its prevalence across all trials.
This exercise also stops short of measuring activation improvement or retention. Conversations can suggest what to investigate next. They cannot show that a proposed change helps more users generate forecasts or return for another useful forecast.
Keep those later product questions separate so a useful diagnosis doesn't become an invented growth result.
6. Write the decision rule first
For this hypothetical experiment, prioritize a separate investigation of one obstacle only if at least four conversations are completed and at least three respondents independently describe that same specific obstacle.
With enough conversations but no shared obstacle, revise the diagnostic question before proposing a change. Insufficient participation makes the exercise inconclusive. Don't treat silence as confirmation of your preferred explanation.
Next action: write the eligibility query, optional invitation and evidence ledger before contacting the six users. Put the rule at the top so it survives contact with an appealing anecdote.
Ask what interrupted the attempt.
#SaaS #UserOnboarding #CustomerDiscovery
Still interviewing florists about substitution approvals because every call sounds promising? Set the discovery deadline and evidence gate before the next conversation. Decide what earns a prototype—and what closes the investigation.
1. Give discovery an ending
This evergreen playbook is for a pre-revenue founder exploring substitution-approval software for independent wedding florists, after initial conversations but before building a prototype.
PostHog's product-market fit guide recommends keeping validation short and intense. Paul Graham's startup-ideas essay asks founders to identify who wants a solution right now.
My recommendation: translate those principles into a scheduled investment decision. Write down what evidence would justify a prototype, then review it on a fixed date regardless of how encouraging the conversations feel.
Neither reference establishes demand for florist software or validates the protocol below. The florist audience, sample size, deadline, priority threshold and example outcomes are hypothetical illustrations, not source-reported findings or proven benchmarks.
2. Freeze the question before recruiting
For this hypothetical sprint, use one working problem statement:
“Independent wedding florists have orders blocked while obtaining approval for flower substitutions.”
Treat that as a hypothesis. Don't broaden it during the sprint to include every difficulty involving stock, customer communication or event planning.
Run one final five-working-day discovery sprint with five independent wedding florists who personally handle substitution approvals. Put the review on your calendar before sending invitations. Defer prototype work until that review.
The tradeoff is explicit: spend a bounded amount of founder time resolving this question while postponing product work. Accept that the deadline may arrive without a conclusive answer.
A useful discovery boundary needs permission to end without a prototype.
3. Ask about the unresolved order
Use the same core questions with each participant:
• Is obtaining substitution approval currently blocking an order?
• What have you already done to resolve it?
• What consequence remains unresolved?
• Where does resolving this sit among your other operational priorities?
Ask for the sequence in their own words before discussing your proposed software. Where appropriate, invite a redacted walkthrough of the existing workaround. Keep reported information separate from anything you can inspect.
For each conversation, record the specific bottleneck, workaround, unresolved consequence and priority ranking. Preserve explanations beside the counts. Record absent problems, satisfactory processes and unanswered questions too.
Keep polite interest in a separate field. “I'd love to see what you build” does not answer whether an order is blocked or whether resolving it is a current priority.
Log founder hours, including recruitment and review. The sprint has a time cost even if you write no code.
4. Hypothetical example
Every detail, count and outcome in this section is a hypothetical illustration.
Imagine all five conversations are complete. Three florists independently describe the same bottleneck: a proposed replacement has been sent, but approval remains unresolved and prevents finalizing the order. Each explains the outstanding consequence and ranks resolution among their top three operational priorities.
A fourth florist describes a cumbersome process that currently works. A fifth likes the idea but has no order blocked by approval.
Under the illustrative rule below, the three matching accounts would justify a narrow prototype test. Keep the other two accounts in the review; they help define where the problem may not apply.
Now imagine the same five people all praise the concept, but only two describe the qualifying current bottleneck. Close the sprint without advancing this formulation. Do not recruit another participant solely to search for the missing qualifying answer.
If only four conversations are completed by the deadline, mark the sprint inconclusive. Close it anyway. Any later research needs a separate, explicit decision rather than an automatic extension.
5. Know what a pass leaves unresolved
This gate tests self-reported present need. It does not establish willingness to switch, buying authority, payment or actual usage.
Participants may rank priorities differently from how they spend their time. Seasonal workloads may distort the picture. A small recruited sample offers directional evidence, not a demand estimate for independent florists generally.
The deadline creates another tradeoff: you may shelve a worthwhile problem because recruitment or timing was poor. Preserve the reasons so you can distinguish missing access from evidence against the problem.
If the gate passes, use a separate prototype test to investigate behavior. For any later commercial pilot, record the scope, responsible buyer, terms and commitment; track agreement, payment and use separately. Don't count interview enthusiasm as a buying commitment.
6. Write the closing rule now
For this hypothetical five-working-day sprint, proceed to a narrow prototype test only if all five conversations are complete and at least three participants identify:
• The same current approval bottleneck.
• An unresolved operational consequence.
• Resolution as a top-three operational priority.
Count participants meeting every condition together. Don't assemble a pass from different people satisfying different conditions.
With complete conversations, a failed gate means stopping discovery on this formulation and revising or shelving it before further product work. Incomplete conversations make the result inconclusive; they do not automatically move the deadline.
Next action: write the problem statement, review date and evidence gate at the top of your interview ledger before booking another call.
Let the review end the sprint.
#StartupValidation #CustomerDiscovery
Try this suggested agent handoff on your app's funnel: give an analyst your event definitions, ask a critic to challenge the setup, then verify both outputs yourself before acting. #AIWorkflows#IndieDev
Student builders: Swift Student Challenge 2027 accepts apps for any Apple platform. Submissions open Feb 8–28, 2027. Choose the platform that fits your app’s core task, then scope one focused prototype. #Swift#AppDevelopment
Yes, define the activation events first. We locked “opened bank setup” and “generated first forecast” as fixed criteria before selecting the six users so the cohort stays comparable. That keeps the diagnostic clean when we separate what people report from what the logs actually show
Charging only when your AI agent ships a fix? Test whether investigations deserve their own price—and whether customers can predict the bill. PostHog's November 9 pricing change gives founders a concrete experiment to adapt.
1. The change worth examining
PostHog announced Self-Driving was leaving beta on November 9, 2026. Its beta charged $15 per pull request and included reports free. The replacement bills per run, including investigations and implementation. Existing beta organizations transition on December 9.
PostHog's explanation: research accounts for much of the work, and customers care about the reports. That's the vendor's account of its own product, not evidence that charging for investigations will improve your business.
The spending controls belong in the same discussion: automatic pull requests are off by default, and billing limits cap spending.
Stripe's October 13 account supplies a useful comparison. It reports that Replit's old 25¢ checkpoint price became disconnected from costs as agent jobs grew longer. Usage billing addressed that gap but introduced unpredictable spending and abrupt paywalls.
The shared pricing problem is bounded: how do you charge for variable agent work without making the purchase harder to understand?
2. Separate the cost question from the value question
For a small team running a live agent product after beta, I would investigate two things separately:
• What does an investigation cost when no implementation follows?
• What decision does the customer make using that investigation?
A costly report doesn't automatically deserve a separate charge. A useful report doesn't automatically support any price you choose.
My proposed test: offer investigation as an explicit purchase, with implementation requiring a separate approval. State what the customer receives, what consumes their budget and what happens when the spending limit is reached.
Keep the first version narrow. Defer a full pricing-page redesign and test one existing workflow with customers who already use it.
3. Build the experiment around an understandable bill
Start by logging investigation and implementation separately under your current terms. Record actual provider and execution costs, retries, founder review time, the delivered report and whether the customer requested implementation. Don't silently begin charging for previously free work.
Then write the proposed bill in ordinary language. For example: “Investigate this issue up to the displayed spending limit. Review the report before approving implementation.” Use that wording only if your product can enforce it.
Define failure handling before inviting customers. Decide whether your own retries count as billable work, what an inconclusive investigation delivers and when you issue a credit. Show those terms before approval.
Next, invite a small opt-in cohort to a paid pilot. Explain the change from their current plan and keep existing commitments intact. Before running anything, ask each participant to explain what they expect to pay for and when the agent stops.
During the pilot, record paid investigations, costs, spending-limit interruptions, disputed charges and whether each report informed a specific decision. Track implementation purchases separately. More approved fixes should not be the only way an investigation can count as useful.
4. A hypothetical worked example
Every number and outcome here is illustrative, not a reported result or proven benchmark.
Imagine your agent investigates failed data imports. A customer approves an investigation with a $5 ceiling. Your proposed pilot terms stop work before exceeding that ceiling; implementation needs another approval.
Suppose the report identifies an unsupported input format. The customer decides to change their export settings rather than buy an implementation. Record the decision and the paid investigation. The absence of a code change would not, by itself, mean the report failed.
Now suppose another investigation reaches its ceiling without a usable answer. Record the interruption and apply the disclosed failure policy. Don't classify it as customer value merely because the agent consumed resources.
Compare collected revenue with direct execution costs and credits, while keeping founder review time visible. Those are different views of the workload; neither alone establishes a sustainable business.
5. Where this can go wrong
PostHog's announcement documents one provider's change. Its explanation of customer value is vendor-reported. Stripe's Replit example is a conference account of a larger business. Neither establishes better conversion, margins or retention from per-run billing.
There is also a choice to make in your own offer. A fixed investigation price puts more cost risk on you. A variable charge with a ceiling asks the customer to accept uncertainty about both the final bill and the answer. Test that tradeoff explicitly.
Don't copy PostHog's meter without checking whether your customers understand your unit of work. Define whether one approved investigation can trigger multiple billable runs. A spending cap is useful only if the customer understands what stopping means for their task.
6. Give the pilot a decision rule
An illustrative next experiment: invite five existing customers to a two-week opt-in pilot, with one approved investigation each. Set a total execution budget and founder-review time cap before starting.
Advance to a larger pilot only if all five can correctly explain the charge and stopping rule before approval, at least four pay for an investigation and identify a specific decision it informed, and collected investigation revenue covers direct execution costs and credits.
Require every spending ceiling to hold and every billing dispute to be resolved. Review founder minutes before expanding. Missing costs or unfinished investigations make the result inconclusive; a failed rule means revising the offer or meter.
These are suggested gates, not benchmarks. Passing earns another test, not a claim that pricing is solved.
Make the investigation worth buying.
#StartupGrowth #AIPricing #UsageBasedBilling
Studying a public YouTube dev talk? Copy its Damas transcript into a separate flashcard tool. Turn one concept into a question to review later.
App Store: Damas - Video Link Transcriber
#IndieDev#SpacedRepetition
Hey @grok what are the most common practices before releasing an MVP (website or a mobile app) that validate product market-fit and attract the right customers for the product. Please list top-5 practices.
Running AI jobs in your app? OpenAI’s Control Room tracks and can stop research model workloads. Borrow the pattern: give each job an ID and test cancellation before running it unattended. #AI#DeveloperTools