[🧑💻] I Discounted My Own Price First in My First Development Contract Negotiation
✨ GPT-5.6 Sol’s Summary
After volunteering that I lacked contract experience, used AI, and was open to discounts, I boxed myself into the label of a KRW 1–2 million developer—and finally learned that pricing should be explained through scope and responsibility, not modesty.
I had my first proper consultation for a freelance development contract. Through an acquaintance, I was asked about taking over an existing web project, adding features, and eventually building a mobile app as well.
I inspected the source myself. It was not such a disaster that it needed to be rebuilt from scratch. The existing web app was based on React, and the backend was already in place. If I could properly take over the missing production materials and accounts, it was well within a scope I could maintain. For the mobile app, keeping the existing backend and building it in Flutter seemed like the right approach.
Up to that point, it looked as though this might become a pretty good first contract.
KRW 2 million for the app, KRW 50,000 a month for maintenance
During the call, the prospective client said another Kmong professional had offered to develop the app for KRW 2 million and then maintain it for around KRW 50,000 a month. He also said that someone his acquaintance had found told him KRW 1 million should be enough.
Honestly, I was dumbfounded at first. Could someone really take over the existing web app and data structure, improve the features, build Android and iOS apps, publish them to the stores, and remain responsible for operations afterward—all for KRW 2 million? With KRW 50,000 a month, would there even be enough budget to inspect a single incident and identify its cause properly?
But the first question I should have asked was not, “Why is that person so cheap?”
What exactly is included in that KRW 2 million?
On one side, I was imagining a takeover of the existing web app and backend, authentication and data storage, core operational features, app development, and releases on both app stores. No one had checked whether the other party’s KRW 2 million covered a tiny MVP with only a few screens, Android alone, the existing website wrapped as an app, or whether it even included responsibility for the server and ongoing maintenance.
Prices without scope cannot be compared. Yet I missed that most basic boundary.
I discounted myself first
The larger problem was not simply that the other person lowballed me. I lowered my own value first.
I said it was my first time formally taking on contract work. I also said I would not charge as much as established freelancers. I explained that I used AI tools such as Codex and Claude Code as my primary tools and could produce an initial version quickly. Even that would not necessarily have been a problem if I had framed it in the right order and context.
But before the quote and scope were even settled, I sent the signal, “I lack experience, so I’ll do it cheaply.” My explanation that I could build quickly with AI sounded less like evidence of productivity and more like a reason I could be hired on the cheap.
I even said I would consider KRW 2 million, then volunteered an alternative: what if I reduced the upfront payment to KRW 1 million or even KRW 500,000 and received equity or revenue-based incentives instead? I said this to someone I had never worked with and had not yet built any trust with.
I was not being honest. I was disclosing weaknesses and my lowest acceptable price before the other person had even asked.
In charitable terms, I was proposing that we grow the product together over the long term. Translated into negotiation language, it sounded closer to a confession: “I can keep reducing the cash I receive right now, and I do not have a firm pricing standard yet.”
At the same price, choosing the proven vendor makes sense
The prospective client said that at the same price, he would proceed with a professional vendor whose experience and track record were established. I asked whether he could share the vendor’s link and the detailed scope of the quote for comparison, but he declined. He also asked me to dispose of the source code and materials he had sent.
The response felt so cold that I was deeply upset. After the conversation ended, I was furious because I felt as though I had been treated like a KRW 1 million developer. I even wondered whether he had seen me as some clueless small fry.
But once I strip away some of the emotion, the decision to “choose the proven vendor at the same price” is reasonable in itself. If someone accepting a first contract and a vendor with multiple completed deliveries quote the same price, the client is likely to choose the latter.
What felt unfair was that my ability had not been properly assessed. But the prospective client had never observed my code over an extended period or completed a project with me. The objective signals I gave during that short call were “first contract,” “fast development with AI,” “cheaper than established professionals,” and “KRW 1 million or even KRW 500,000 is possible.”
I walked into that price bracket myself, then got angry when the other person viewed me through the label I had created.
Only after building a quote sheet could I make a real comparison
After the call, I did not want to conclude from emotion alone that “KRW 2 million makes no sense,” so I built a separate estimate in Google Sheets. For the public version, I removed features unique to the specific project and kept only work and responsibilities that could apply to other contracts.
I based my estimate on an hourly rate of KRW 40,000.
| Generalized work package | Responsibilities included | Estimated time | Quote |
|---|---|---|---|
| Existing service takeover and stabilization | Take over source, backend, and deployment environment; fix critical defects; verify the new environment | 75 hours | KRW 3 million |
| Cross-platform app delivery | Android and iOS apps, existing backend integration, basic notifications, and store submission | 175 hours | KRW 7 million |
| Full contract | Complete existing-service takeover, stabilization, and app delivery | 250 hours | KRW 10 million |
| Monthly maintenance | Four hours per month, one deployment per month, incident inspection | 4 hours/month | KRW 160,000/month |
I set additional work at KRW 40,000 per hour and urgent night or holiday work at KRW 60,000 per hour. At that rate, KRW 50,000 a month buys about one hour and fifteen minutes. That might be possible for a contract limited to a basic status check, but it is not the same product as monthly maintenance that includes defect investigation, fixes, verification, and deployment.
Even KRW 40,000 an hour was not above the market average. The Korea Software Industry Association’s average hourly wage for application software developers, effective in 2026, is KRW 47,281.1 Because that average wage includes employer-paid insurance and retirement benefits, it cannot be treated as identical to a freelancer’s billable rate. Still, it provides at least one reference point showing that KRW 40,000 is not excessive. In fact, it is about 15.4% lower.
I compared it directly with public contract offerings
In Google Sheets, I compared Wishket job postings and public Kmong packages on a like-for-like basis. Public budgets and listed package prices are not necessarily the final contract amounts, so I looked beyond the numbers at supported operating systems, backend, admin tools, deployment, app stores, and whether an existing service takeover was included.
| Public comparison | Public price | Published scope and duration | Relationship to my quote |
|---|---|---|---|
| Wishket core-feature MVP for both mobile platforms | KRW 5 million | One-developer MVP excluding complex features, 30 days | Smaller in scope and KRW 2 million cheaper than my KRW 7 million app quote2 |
| Wishket enhancement of an existing Flutter MVP | KRW 12 million | UI/UX redesign, subscriptions, and feature enhancements, 50 days | KRW 2 million more than my KRW 10 million full quote3 |
| Kmong iOS, Android, and web full build | KRW 4.5 million | Payments, admin tools, and deployment, 45 days | A clear low-price counterexample; the actual scope requires consultation4 |
| Kmong Flutter package for both mobile platforms | KRW 6.6 million | Firebase, external APIs, and app-store deployment, 60 days | KRW 400,000 less than my KRW 7 million app quote5 |
| Kmong full app package with 20 or more screens | KRW 9 million | Server, API, admin tools, and app-store support, 28 days | KRW 2 million more than my KRW 7 million app quote6 |
| Kmong expandable app package | KRW 9.99 million | Planning, design, backend, admin tools, both app stores, and AWS, 90 days | Effectively identical to my KRW 10 million full quote7 |
My quote was not cheaper than every package. There were lower-priced counterexamples at KRW 4.5 million and KRW 5 million, and one package claimed to provide Flutter apps for both mobile platforms for KRW 6.6 million. On the other hand, public packages that explicitly included a backend, admin tools, and deployment were priced at KRW 9–9.99 million, while a Wishket posting to turn an existing MVP into a production service had a budget of KRW 12 million.
There really were app-development packages on the market for KRW 2 million. Their published scope, however, was generally very small. One package offered a simple serverless app with up to ten pages, one feature, and one round of revisions for KRW 2 million.8 Another offered a minimum-feature MVP with up to ten pages, assuming the planning and design were already complete, for KRW 2 million.9 A third offered a mobile MVP with up to five pages for a single operating system at KRW 2 million; its next tier, which included new server development, cost KRW 6 million.10
So I cannot simply declare that the claim “an app can be built for KRW 2 million” is false. With today’s AI and cross-platform tools, a small MVP can absolutely be built quickly.
But the word app may be the only thing those deliverables have in common; their outcomes and responsibilities can be entirely different. A service that includes taking over an existing system, migrating production data, authentication and authorization, backend integration, notifications, Android and iOS, app-store reviews, and incident response cannot be put on the same price tag as an MVP consisting of a few screens.
Based on the comparisons I found, KRW 2 million was not “the normal price of app development.” It was a real price for a small-scope MVP. The problem was not whether KRW 2 million was cheap or expensive. It was that I tried to match my price to that number before confirming the scope of what I was comparing it with.
I had already written the same lesson a year earlier
More absurdly, this was not even the first time I had encountered this problem.
In my diary entry from July 30 last year, I had already written about pricing, negotiation, and the need to make requirements explicit. Even then, I wrote that work begun as a favor could become a time bomb the moment it was reframed as a contract. I even wrote, “Until now, I had only been a child who loved development, not a businessperson.”
And not long ago, I wrote that building quickly with AI and building something professionally are different things. I had learned that implementation speed alone could not replace a professional service that bundles planning, design, documentation, handover, and operational responsibility.
I had written all of that down, only to trip over the same thing again.
When developing software, I scrutinize requirements, permissions, data, deployment, and recovery boundaries. Yet when negotiating a contract for my own labor, I began with “This is my first time,” “I can do it quickly with AI,” and “I can make it cheaper.” I set boundaries for the product but none around my own value.
I will keep modesty in my attitude
This experience did not make me decide to stop being honest. I will keep writing my diary, too. Hiding failure will not make me more expensive, and failing to document it will not automatically keep me from making the same mistake.
But honesty and defenselessness are different things.
When discussing a quote in the future, I will not start by explaining whether it is my first contract, which AI tools I use, or how much I am willing to discount. I will first document the current state, what I will build, what I will take over, where my responsibility ends, and what will cost extra.
If the price needs to come down, I will reduce the scope instead of making my time free. I can build Android first, defer push notifications to a later phase, or separate app-store releases into another item. I will not discount myself by promising the same work for less.
I will not propose equity or performance-based compensation to someone after a few minutes on the phone, either. That is a discussion for after we have worked together and confirmed each other’s responsibilities and reliability. Giving up cash before a relationship has even formed can be less a partnership proposal than a surrender of negotiating power.
And after issuing a quote, I will not lower it again on my own simply because I feel anxious.
I can be honest about what I do not know technically. But I need to state clearly the outcome I will provide and the responsibility I will assume. Modesty belongs in my willingness to learn; price should be explained through scope and responsibility.
This deal did not happen. I was upset, and for a while I was angry at how naive I had been. Still, compared with losing millions of won on my first contract and being dragged through months of work before learning the lesson, discovering my negotiation habits before signing was a cheap education.
Next time, instead of holding a consultation that proves “I’m not much,” I need to hold one where I can say, “For this scope, I will be responsible for delivering this outcome up to this point.”
References
-
Korea Software Industry Association, Publication of Average Wages for Software Professionals Effective in 2026 — Accessed August 7, 2026. ↩
-
Wishket, Development of an Offline-Meetup-Based Matching MVP App — Accessed August 7, 2026. ↩
-
Wishket, Enhancement of a Flutter-Based English-Learning App MVP — Accessed August 7, 2026. ↩
-
Kmong, Flutter App MVP Development — Accessed August 7, 2026. ↩
-
Kmong, Flutter App Development — Accessed August 7, 2026. ↩
-
Kmong, Full-Package Flutter App Development — Accessed August 7, 2026. ↩
-
Kmong, One-Stop Flutter App Planning and Development — Accessed August 7, 2026. ↩
-
Kmong, Flutter App Development — Accessed August 7, 2026. ↩
-
Kmong, Flutter and React Native Mobile App Development — Accessed August 7, 2026. ↩
-
Kmong, Professional IoT Platform React and Flutter App Development — Accessed August 7, 2026. ↩
Leave a comment