The first version of a startup product has one job: make one important workflow better for one specific kind of customer. That gives you a useful test. You can see whether the customer uses it, where it breaks, and which parts of the company story still need evidence.

Mainteny taught me this in a useful way. We were building field service management software for elevator maintenance companies. The first useful version was built in three months because we made it live inside one daily workflow: office teams needed to schedule jobs, send technicians, issue quotations, invoice customers, and keep job history intact.

I wrote the first product myself and joined the commercial work. I sat in customer calls, watched objections turn into product decisions, and learned which parts of the workflow buyers cared about enough to change.

The first-version decision map
01Choose one customer typeElevator maintenance companies with office teams, technicians, and job history that had to stay intact.
02Map one daily pathRequest, schedule, dispatch, quotation, technician update, invoice, and customer record.
03Build the narrow versionEnough product for a customer to run live jobs, with the deferred list visible instead of hidden.
04Sell through the workflowUse buyer questions to test the product model, the demo, the pricing, and the next scope decision.
05Only expand what repeatsWhen the same pain appears in customer calls and daily use, it earns a place in the product.

The hard part is not making the first version large. It is making the first version specific enough to teach you something.

3 months First customer version

From early build to software an elevator maintenance company could try on live jobs.

1 workflow Request to invoice

Job intake, technician assignment, quotations, status updates, customer records, and invoicing.

$2.7M Round that followed

The round was supported by a live product, customer conversations, and clearer evidence from the field.

The customer was concrete

The first customers were maintenance businesses with technicians in the field, office staff handling calls, and building customers waiting for updates. One early customer exposed the product problem better than any generic market map could.

A job could start as a phone call, turn into a quotation, become a technician visit, require a follow-up part, and end with an invoice or a customer-dashboard update. If the software lost any step, the office still needed paper, spreadsheets, WhatsApp, or memory to close the gap.

A first product earns trust when it removes one daily irritation without asking the customer to pretend the rest of the company is already automated.

The first scope was deliberately narrow

The tempting version of the product was huge: scheduling, dispatch, quotations, invoicing, customer dashboards, inventory, customer communication, permissions, reporting, mobile apps, and integrations. The useful first version was smaller. It handled the work from request to invoice and left the rest visible.

  Built first Deferred
Job operations Create work orders, assign technicians, update status, see customer history Advanced inventory and warehouse flows
Scheduling Calendar views and technician availability good enough for daily planning Complex route optimization
Commercial documents Generate quotations and invoice PDFs with logo, line items, and customer-ready formatting Full accounting-suite integration
Customer visibility Basic dashboard context for customers and assets Deep self-serve customer portal workflows
Mobile A React Native app for technician updates and field context Every offline edge case and every device-specific polish item
The first customer version had to make one workflow reliable before the product earned the right to expand.

The technical choices were boring on purpose

I used tools I could move fast with and debug alone. The product needed to be reliable enough that customer calls produced product learning instead of apologies.

The stack worked because every layer had a job. Quarkus and Kotlin gave me a typed backend with fast iteration. React kept the office workflow easy to change. React Native let technicians update work without waiting for a separate product cycle. Postgres carried the first product further than many people expect.

Sales calls changed the product

The customer conversations were part of product work. A maintenance owner would describe a dispatch problem. A technician would explain why a status field was wrong. An office manager would ask what happened when a customer changed the appointment after the technician had already been assigned.

Those questions tested whether I understood the work. When I could answer with the actual behavior of the product, or say clearly what it did not handle yet, the conversation became more honest.

The weekly rhythm protected customer learning

I treated the week as four blocks: build, customer calls, review, buffer. Mornings were for building. Customer calls and follow-ups had dedicated time. Planning happened after the customer work had created new evidence.

  Block Purpose
Build Deep implementation work Move the product forward without meeting fragments.
Customer Sales calls, onboarding, support, and follow-ups Keep the product attached to real use.
Review Look at what customers actually did and asked for Decide what enters the next build cycle.
Buffer Fixes and loose ends Stop small reliability issues from becoming customer doubt.
The schedule mattered because it kept building, selling, and support in the same week.

What I would keep

  • One narrow market. Elevator maintenance companies had enough shared workflow shape that learning transferred from one conversation to the next.
  • One complete daily path. Request to invoice was more useful than five half-built modules.
  • Direct customer contact. The technical decisions were better because I heard the commercial objections myself.
  • A practical stack. I chose tools that made debugging and change cheap.
  • Honest demos. Customers trusted clear limits more than polished answers that collapsed in real use.

What I would change

  • Start customer calls even earlier. Some architecture choices would have been sharper if I had heard the field workflow before writing the first version of the data model.
  • Instrument usage from day one. Support calls tell one part of the story. Usage data shows where the product quietly fails.
  • Test pricing sooner. Price tells you what kind of pain the buyer thinks you solve.
  • Write the deferred list more formally. A visible list of postponed features helps customers understand focus without feeling ignored.

The lesson I still use

A first customer version is part product and part market test. It teaches the market, makes sales conversations more concrete, and gives investors something real to evaluate.

The useful skill is knowing which part of the business must become software first. At Mainteny, the answer came from customer calls, elevator field-service workflows, and a stack I could change quickly when the truth changed.

Prasad Subrahmanya

Prasad Subrahmanya

Builder and operator at Luminik. Built Aura at Bain to $3.6M ARR, co-founded Mainteny through its $2.7M seed, and helped build the initial product and team.