[{"data":1,"prerenderedAt":825},["ShallowReactive",2],{"navigation-en":3,"uslugi-slug-en-web-applications":87,"language-switcher-\u002Fen\u002Fservices\u002Fweb-applications":820},{"services":4,"industries":48,"caseStudies":69},[5,10,14,19,23,27,31,35,39,43],{"slug":6,"navLabel":7,"navGroup":8,"heroHeadline":9},"web-applications","Web applications","build","A web application built around your process",{"slug":11,"navLabel":12,"navGroup":8,"heroHeadline":13},"erp-systems","ERP systems","An ERP system built for your company, not the other way round",{"slug":15,"navLabel":16,"navGroup":17,"heroHeadline":18},"integrations-and-api","Integrations and APIs","improve","Your systems stop being islands",{"slug":20,"navLabel":21,"navGroup":17,"heroHeadline":22},"ai-implementation","AI implementation","AI deployed where it actually saves time",{"slug":24,"navLabel":25,"navGroup":17,"heroHeadline":26},"process-automation","Process automation","Work no one should be doing by hand",{"slug":28,"navLabel":29,"navGroup":8,"heroHeadline":30},"websites","Websites","A site that loads instantly and brings in inquiries",{"slug":32,"navLabel":33,"navGroup":8,"heroHeadline":34},"mobile-applications","Mobile applications","One codebase, both platforms",{"slug":36,"navLabel":37,"navGroup":17,"heroHeadline":38},"code-audit-and-project-takeover","Code audit and takeover","The project stalled. We'll take it over and tell you the truth about its condition",{"slug":40,"navLabel":41,"navGroup":17,"heroHeadline":42},"maintenance-and-support","Maintenance and support","A system needs someone watching it after launch",{"slug":44,"navLabel":45,"navGroup":46,"heroHeadline":47},"discovery-workshop","Discovery workshop","start","Before you decide to build, find out exactly what you're building",[49,53,57,61,65],{"slug":50,"navLabel":51,"heroHeadline":52},"manufacturing","Manufacturing","The works order reaches the floor as a printout from an email",{"slug":54,"navLabel":55,"heroHeadline":56},"automotive","Automotive","The customer exists in three places at once",{"slug":58,"navLabel":59,"heroHeadline":60},"industrial-automation","Industrial automation","You sell competence that doesn't photograph",{"slug":62,"navLabel":63,"heroHeadline":64},"e-commerce","E-commerce","The shop works. What sits behind it comes apart",{"slug":66,"navLabel":67,"heroHeadline":68},"logistics","Transport and logistics","The job arrives by email, the status comes back by phone",[70,77,82],{"slug":71,"client":72,"tag":73,"year":74,"summary":75,"image":76},"dss-by-caredo","Caredo","Product",2025,"We build the whole DSS product together with the Caredo team — from the CRM and planner to the software behind the key lockers and totems.","\u002Fimg\u002Fcase-studies\u002Fdss\u002Fkluczykomat\u002Fframe_0169.webp",{"slug":78,"client":72,"tag":79,"year":74,"summary":80,"image":81},"dss-by-caredo-website","Product website","We built the DSS product website end to end — from design to launch — on Caredo's visual identity.","\u002Fimg\u002Fscreenshots\u002Fdss-desktop.jpg",{"slug":83,"client":83,"tag":84,"year":74,"summary":85,"image":86},"2motion","Brand and website","A whole brand from scratch — logo, colours, business cards — a company website and blog posts that position 2motion in search.","\u002Fimg\u002Fscreenshots\u002F2motion-desktop.jpg",{"service":88,"relatedCase":199,"relatedPosts":314,"i18nSlugs":614,"subServices":615},{"id":89,"title":90,"audience":91,"body":95,"description":124,"extension":125,"faq":126,"heroHeadline":9,"heroSubline":139,"keyword":140,"meta":141,"navGroup":8,"navLabel":7,"navigation":142,"order":143,"path":144,"pricingModels":145,"process":155,"relatedCase":71,"relatedPosts":171,"scope":173,"seo":186,"sitemap":187,"slug":6,"stem":197,"__hash__":198},"servicesEn\u002Fservices\u002Fweb-applications.md","Dedicated web applications",[92,93,94],"Companies whose core process still lives in spreadsheets and email","Teams paying for an off-the-shelf system they use 20% of","Organisations whose growth is blocked by tools that don't talk to each other",{"type":96,"value":97,"toc":117},"minimark",[98,103,107,110,114],[99,100,102],"h2",{"id":101},"when-a-dedicated-application-makes-sense","When a dedicated application makes sense",[104,105,106],"p",{},"An off-the-shelf system wins for as long as your process looks like everyone else's. Your competitive edge usually sits exactly where you do things differently — and that's precisely where boxed software starts getting in the way.",[104,108,109],{},"Signs it's time for your own system: the team keeps the \"real\" data in a spreadsheet next to the official tool, integration between systems means exporting to CSV, and every question about numbers costs an analyst a day.",[99,111,113],{"id":112},"what-we-wont-build","What we won't build",[104,115,116],{},"We don't build systems that can be assembled from off-the-shelf blocks. If the workshop shows that an existing tool plus two integrations is enough, we'll say so directly — it's cheaper for you and more honest toward both sides.",{"title":118,"searchDepth":119,"depth":119,"links":120},"",3,[121,123],{"id":101,"depth":122,"text":102},2,{"id":112,"depth":122,"text":113},"We build B2B systems, client portals and SaaS platforms shaped around your process, not a template. Quote within 3 business days.","md",[127,130,133,136],{"q":128,"a":129},"How much does a dedicated web application cost?","A simple internal system starts around PLN 60–90k net. A platform with multiple roles, integrations and a client portal is usually PLN 150–400k. We give an exact figure after the discovery workshop, because without understanding the process any number is a guess.",{"q":131,"a":132},"Who owns the code?","You do. We hand over the repository along with the proprietary rights in the contract. We don't license our own engine or use any other lock-in mechanism.",{"q":134,"a":135},"What happens if we end the engagement?","You get the repository, deployment documentation and infrastructure on your own accounts. The project is built to be handed to another team without needing our consent.",{"q":137,"a":138},"How long does building an MVP take?","From the workshop to the first production version, usually 3–5 months. Faster if the scope can be limited to a single process.","When spreadsheets stop being enough, and an off-the-shelf system forces you to change how you work, custom software is what's left.","dedicated web applications",{},true,1,"\u002Fservices\u002Fweb-applications",[146,149,152],{"name":147,"body":148},"Fixed price","For projects with a closed scope after the discovery workshop. You know the amount and the deadline before you start.",{"name":150,"body":151},"Time & material","For products that will evolve during the build. Billed for actual time, scope set iteratively.",{"name":153,"body":154},"Dedicated team","A standing team on your side, billed monthly. Makes sense for development that runs for quarters, not weeks.",[156,159,163,167],{"step":45,"duration":157,"body":158},"1–2 weeks","We map the process, define the MVP scope, and leave with a timeline and a quote.",{"step":160,"duration":161,"body":162},"Design and prototype","2–3 weeks","A clickable prototype of the key screens, so the idea gets validated before any code is written.",{"step":164,"duration":165,"body":166},"Build","8–16 weeks","Two-week iterations, each ending with a working version on a test environment.",{"step":168,"duration":169,"body":170},"Rollout and care","ongoing","Migration, training, monitoring and development on retainer.",[172],"ile-kosztuje-aplikacja-webowa",[174,177,180,183],{"title":175,"body":176},"Process analysis and data model","Before the first screen exists, we document how the company actually works. This stage decides whether the system shortens the work or just adds another window to click through.",{"title":178,"body":179},"Interface built for daily use","Designed for people who'll spend eight hours a day in the system — keyboard shortcuts, bulk actions, sensible defaults.",{"title":181,"body":182},"Backend and API","Business logic, permissions, change auditing and an API ready to plug other systems into.",{"title":184,"body":185},"Rollout and data migration","We migrate data from spreadsheets and legacy systems, train the team, and stay close during the first weeks in production.",{"title":90,"description":124},{"loc":188,"alternatives":189},"\u002Fen\u002Fservices\u002Fweb-applications",[190,193,195],{"hreflang":191,"href":192},"x-default","\u002Fuslugi\u002Faplikacje-webowe",{"hreflang":194,"href":192},"pl-PL",{"hreflang":196,"href":188},"en-US","services\u002Fweb-applications","6i-zLSV7ljanjtVOR8hvLNYf-VzNtIGQsk4ZtAhb7dw",{"id":200,"title":201,"body":202,"challenge":267,"client":72,"description":268,"extension":125,"features":269,"meta":276,"navigation":142,"order":143,"path":277,"relatedServices":278,"results":279,"screenshotDesktop":76,"screenshotMobile":283,"seo":284,"sequence":285,"sitemap":288,"slug":71,"solution":295,"stack":296,"stem":301,"summary":75,"tag":73,"url":302,"usedBy":303,"year":74,"__hash__":313},"caseStudiesEn\u002Fcase-studies\u002Fdss-by-caredo.md","DSS by Caredo — a product we build together with the Caredo team",{"type":96,"value":203,"toc":261},[204,208,211,214,218,234,241,245,248,252],[99,205,207],{"id":206},"starting-point","Starting point",[104,209,210],{},"DSS (Digital Service Station) is a system for car dealerships and service centres that takes the customer from the moment they pull into the car park to the moment they collect their car. A totem greets them and shows them where to park, a key locker takes the key without the front desk, a parts dispenser hands a mechanic the parts for a specific work order.",[104,212,213],{},"Each of those devices only makes sense if it knows who the customer is and which work order is in progress. That is the software's job — and that is the part we build together with Caredo.",[99,215,217],{"id":216},"what-we-build-together","What we build together",[104,219,220,221,225,226,229,230,233],{},"A ",[222,223,224],"strong",{},"CRM"," where the customer, their history and their work orders are one record. A ",[222,227,228],{},"planner"," where the schedule of visits and work orders is made. A ",[222,231,232],{},"key handover system",": the customer drops off or collects a key at any hour, and the system assigns it to the work order and logs every operation on its own.",[104,235,236,237,240],{},"On top of that, ",[222,238,239],{},"device integrations"," — external and internal key lockers, the parts dispenser, the tool dispenser and the parking totem — so that each one is part of a single process rather than a separate machine with its own database.",[99,242,244],{"id":243},"device-interfaces-for-brands","Device interfaces for brands",[104,246,247],{},"A Porsche customer shouldn't see the same key-locker screen as a Kia customer. For Mercedes-Benz, Porsche, Toyota and Kia dealers we build device interfaces in each brand's identity — screens the customer uses alone, with no member of staff beside them, so they have to make sense from the first touch.",[99,249,251],{"id":250},"how-we-work-together","How we work together",[104,253,254,255,260],{},"We're not the vendor of a single module. We work with the Caredo team on the whole product: when a new device is designed, its software and its integration with the rest of the system are built alongside it, not after the fact. The product website, dssbycaredo.com, we built separately — it's a ",[256,257,259],"a",{"href":258},"\u002Fen\u002Fcase-studies\u002Fdss-by-caredo-website","separate case study",".",{"title":118,"searchDepth":119,"depth":119,"links":262},[263,264,265,266],{"id":206,"depth":122,"text":207},{"id":216,"depth":122,"text":217},{"id":243,"depth":122,"text":244},{"id":250,"depth":122,"text":251},"Caredo designs devices for dealerships and service centres: key lockers, parts dispensers, parking totems. The hardware is half the product. The other half is the software that connects each device to the customer, the work order and the service team — and that has to look like the brand's showroom, not like a technical panel.","Together with the Caredo team we build the whole DSS product: the CRM, the planner, the key handover system, the integrations of the devices on site and the device interfaces for Mercedes-Benz, Porsche, Toyota and Kia dealers.",[270,271,272,273,274,275],"A CRM with customer history, work orders and permissions per branch and role","A planner for visits and service orders","A 24\u002F7 key drop-off and pickup system that assigns each key to its work order","Integrations for the key lockers, parts and tool dispensers and the parking totem","Customer-facing device interfaces in Mercedes-Benz, Porsche, Toyota and Kia identity","An analytics dashboard with real-time data",{},"\u002Fcase-studies\u002Fdss-by-caredo",[6,15,24],[280],{"metric":281,"label":282},"100%","System uptime",null,{"title":201,"description":268},{"path":286,"frames":287,"poster":76},"\u002Fimg\u002Fcase-studies\u002Fdss\u002Fkluczykomat\u002Fframe_",169,{"loc":289,"alternatives":290},"\u002Fen\u002Fcase-studies\u002Fdss-by-caredo",[291,293,294],{"hreflang":191,"href":292},"\u002Frealizacje\u002Fdss-by-caredo",{"hreflang":194,"href":292},{"hreflang":196,"href":289},"We work as part of the Caredo team: together we build the CRM, the planner, the key drop-off and pickup system and the integrations that bring every device into one system. For Mercedes-Benz, Porsche, Toyota and Kia dealers we design device interfaces in each brand's identity.",[297,298,299,300],"TypeScript","Nuxt","Node.js","PostgreSQL","case-studies\u002Fdss-by-caredo","https:\u002F\u002Fdssbycaredo.com",[304,305,306,307,308,309,310,311,312],"Mercedes-Benz","Porsche","Toyota","Kia","Audi","Cupra","Ford","Škoda","Volkswagen","MS9XoW0yDSBUBi4JOZJ4VQn87W5x7rIKYo99PuI8oSg",[315],{"id":316,"title":317,"author":318,"body":319,"category":597,"date":598,"description":599,"draft":600,"editorialNote":283,"extension":125,"image":601,"meta":602,"navigation":142,"path":603,"rawbody":604,"seo":605,"sitemap":606,"stem":607,"tags":608,"translationKey":612,"updated":283,"__hash__":613},"blogEn\u002Fblog\u002File-kosztuje-aplikacja-webowa.md","How much does a dedicated web application cost in 2026","zespol",{"type":96,"value":320,"toc":588},[321,332,335,339,406,409,413,416,450,454,460,466,472,478,484,490,496,500,503,529,533,543,546,550,556,562,568,574,578,585],[104,322,323,324,327,328,331],{},"A dedicated web application for a company costs, in Poland, anywhere from around ",[222,325,326],{},"PLN 60,000 net"," for a simple internal system to ",[222,329,330],{},"PLN 400,000 and up"," for a platform with multiple roles, integrations and a client portal. That spread isn't vendor indecision — it's that very different projects, differing by an order of magnitude in effort, hide under the same label.",[104,333,334],{},"Below I break those numbers down and show exactly what pushes a quote up.",[99,336,338],{"id":337},"price-ranges-by-project-type","Price ranges by project type",[340,341,342,358],"table",{},[343,344,345],"thead",{},[346,347,348,352,355],"tr",{},[349,350,351],"th",{},"Project type",[349,353,354],{},"Net range",[349,356,357],{},"Time to production",[359,360,361,373,384,395],"tbody",{},[346,362,363,367,370],{},[364,365,366],"td",{},"Internal tool, one process, one role",[364,368,369],{},"PLN 60–90k",[364,371,372],{},"3–4 months",[346,374,375,378,381],{},[364,376,377],{},"B2B system with a client portal and several roles",[364,379,380],{},"PLN 120–220k",[364,382,383],{},"5–8 months",[346,385,386,389,392],{},[364,387,388],{},"SaaS platform with subscriptions and multi-tenancy",[364,390,391],{},"PLN 250–400k",[364,393,394],{},"8–14 months",[346,396,397,400,403],{},[364,398,399],{},"Extending an existing system",[364,401,402],{},"PLN 15–60k per module",[364,404,405],{},"3–10 weeks",[104,407,408],{},"These are ranges for a Polish vendor with a senior team, at PLN 160–260 per hour. Offers significantly lower usually mean one of three things: a less experienced team, an underestimated scope, or a model where the gap gets made up in change orders.",[99,410,412],{"id":411},"where-the-money-actually-goes","Where the money actually goes",[104,414,415],{},"The cost breakdown for a typical mid-sized project looks like this:",[417,418,419,426,432,438,444],"ul",{},[420,421,422,425],"li",{},[222,423,424],{},"Analysis and design — 15–20%."," Workshops, the data model, the prototype. The stage where it's easiest to save money and most expensive to have saved it.",[420,427,428,431],{},[222,429,430],{},"Backend and business logic — 35–40%."," Rules, permissions, integrations, performance.",[420,433,434,437],{},[222,435,436],{},"Interface — 25–30%."," The more roles and views, the more it costs. The admin panel is sometimes bigger than the client-facing part.",[420,439,440,443],{},[222,441,442],{},"Testing and rollout — 10–15%."," Environments, release automation, data migration.",[420,445,446,449],{},[222,447,448],{},"Buffer for the unknown — 10%."," Every project has one. Vendors who don't budget for it make it up in change orders instead.",[99,451,453],{"id":452},"seven-things-that-double-a-quote","Seven things that double a quote",[104,455,456,459],{},[222,457,458],{},"1. Integrations with systems that have no API."," Connecting to a well-documented API takes a few days. Connecting to a system that only offers a file export or direct database access takes weeks — and it's a debt that comes back with every update on that system's side.",[104,461,462,465],{},[222,463,464],{},"2. Migrating data from an inconsistent source."," If a spreadsheet has the same company appearing as \"Smith Ltd\", \"Smith Ltd.\" and \"SMITH LTD\", someone has to resolve that. There's usually more of it than it looks.",[104,467,468,471],{},[222,469,470],{},"3. Offline-first work."," An app that has to work with no connection and sync afterwards needs a local database, an operation queue and conflict-resolution rules. That can turn out to be a third of the whole project.",[104,473,474,477],{},[222,475,476],{},"4. Multilingual support bolted on later."," Adding a second language to a system that wasn't built for it costs several times more than planning for it from the start.",[104,479,480,483],{},[222,481,482],{},"5. A complex permissions model."," The gap between \"admin and user\" and a permissions matrix per module, per field and per branch is weeks of work and a standing cost on every feature after that.",[104,485,486,489],{},[222,487,488],{},"6. Compliance requirements."," Baseline GDPR is cheap. A requirement to audit every data change, retention rules and on-demand anonymisation is a module of its own.",[104,491,492,495],{},[222,493,494],{},"7. An open-ended scope."," The single biggest factor. A project where the scope gets settled along the way ends up costing, in practice, 1.5–2x a project with the same scope described up front.",[99,497,499],{"id":498},"what-a-quote-usually-doesnt-include","What a quote usually doesn't include",[104,501,502],{},"Vendors quote the cost of the build. You still need to budget for:",[417,504,505,511,517,523],{},[420,506,507,510],{},[222,508,509],{},"Maintenance"," — realistically 15–20% of the project's value per year. Monitoring, security updates, small fixes.",[420,512,513,516],{},[222,514,515],{},"Infrastructure"," — from a few hundred zloty a month for a simple system to several thousand at higher traffic.",[420,518,519,522],{},[222,520,521],{},"Content and photography"," — negligible for internal systems, potentially a significant line item for products with a public-facing part.",[420,524,525,528],{},[222,526,527],{},"Your team's time"," — workshops, acceptance testing, decisions. A few to a dozen hours a week across the whole project. It's a real cost, just not one that shows up on an invoice.",[99,530,532],{"id":531},"how-to-check-whether-a-quote-is-fair","How to check whether a quote is fair",[104,534,535,536,539,540,260],{},"Ask for a breakdown by stage with amounts, and a list of assumptions. A fair quote states not just what's in scope, but also ",[222,537,538],{},"what isn't",", and ",[222,541,542],{},"what happens to the price if an assumption doesn't hold",[104,544,545],{},"If you get a single number with no breakdown, you have no way to compare it to another single number. Three offers differing by an order of magnitude almost always mean each of them priced something different.",[99,547,549],{"id":548},"how-to-lower-the-cost-without-lowering-quality","How to lower the cost without lowering quality",[104,551,552,555],{},[222,553,554],{},"Narrow the first rollout to a single process."," A system that handles one process end to end delivers value from day one. A system half-handling five processes delivers none.",[104,557,558,561],{},[222,559,560],{},"Skip configurability you don't need yet."," \"We want to be able to change this later without a developer\" is usually the most expensive sentence in the whole spec.",[104,563,564,567],{},[222,565,566],{},"Use off-the-shelf components where you're not building an advantage."," Authentication, payments, email delivery, search — good components already exist, and writing them from scratch is a cost with no return.",[104,569,570,573],{},[222,571,572],{},"Pay for a workshop before building."," A dozen or so thousand spent closing the scope pays for itself many times over, because it removes the main cause of budget overruns.",[99,575,577],{"id":576},"summary","Summary",[104,579,580,581,584],{},"If you need one number to open a conversation with the board: ",[222,582,583],{},"an internal system handling one process is around PLN 80,000 net and four months",". Everything above that depends on the number of roles, integrations, and how well the scope is described — not on how many screens the app has.",[104,586,587],{},"If you want a number you can defend to the board, you need a workshop on your own data and your own process. That's the only way a quote stops being a guess.",{"title":118,"searchDepth":119,"depth":119,"links":589},[590,591,592,593,594,595,596],{"id":337,"depth":122,"text":338},{"id":411,"depth":122,"text":412},{"id":452,"depth":122,"text":453},{"id":498,"depth":122,"text":499},{"id":531,"depth":122,"text":532},{"id":548,"depth":122,"text":549},{"id":576,"depth":122,"text":577},"aplikacje-webowe","2026-09-02","Real price ranges for web applications, a cost breakdown by stage, and the factors that can double a quote. No \"it depends\" without an explanation.",false,"\u002Fimg\u002Fblog\u002File-kosztuje-aplikacja-webowa.jpg",{},"\u002Fblog\u002File-kosztuje-aplikacja-webowa","---\ntitle: How much does a dedicated web application cost in 2026\ndescription: Real price ranges for web applications, a cost breakdown by stage, and the factors that can double a quote. No \"it depends\" without an explanation.\ndate: 2026-09-02\ncategory: aplikacje-webowe\ntags:\n  - pricing\n  - budget\n  - mvp\nauthor: zespol\nimage: \u002Fimg\u002Fblog\u002File-kosztuje-aplikacja-webowa.jpg\ntranslationKey: cost-of-a-web-application\ndraft: false\n---\n\nA dedicated web application for a company costs, in Poland, anywhere from around **PLN 60,000 net** for a simple internal system to **PLN 400,000 and up** for a platform with multiple roles, integrations and a client portal. That spread isn't vendor indecision — it's that very different projects, differing by an order of magnitude in effort, hide under the same label.\n\nBelow I break those numbers down and show exactly what pushes a quote up.\n\n## Price ranges by project type\n\n| Project type | Net range | Time to production |\n|---|---|---|\n| Internal tool, one process, one role | PLN 60–90k | 3–4 months |\n| B2B system with a client portal and several roles | PLN 120–220k | 5–8 months |\n| SaaS platform with subscriptions and multi-tenancy | PLN 250–400k | 8–14 months |\n| Extending an existing system | PLN 15–60k per module | 3–10 weeks |\n\nThese are ranges for a Polish vendor with a senior team, at PLN 160–260 per hour. Offers significantly lower usually mean one of three things: a less experienced team, an underestimated scope, or a model where the gap gets made up in change orders.\n\n## Where the money actually goes\n\nThe cost breakdown for a typical mid-sized project looks like this:\n\n- **Analysis and design — 15–20%.** Workshops, the data model, the prototype. The stage where it's easiest to save money and most expensive to have saved it.\n- **Backend and business logic — 35–40%.** Rules, permissions, integrations, performance.\n- **Interface — 25–30%.** The more roles and views, the more it costs. The admin panel is sometimes bigger than the client-facing part.\n- **Testing and rollout — 10–15%.** Environments, release automation, data migration.\n- **Buffer for the unknown — 10%.** Every project has one. Vendors who don't budget for it make it up in change orders instead.\n\n## Seven things that double a quote\n\n**1. Integrations with systems that have no API.** Connecting to a well-documented API takes a few days. Connecting to a system that only offers a file export or direct database access takes weeks — and it's a debt that comes back with every update on that system's side.\n\n**2. Migrating data from an inconsistent source.** If a spreadsheet has the same company appearing as \"Smith Ltd\", \"Smith Ltd.\" and \"SMITH LTD\", someone has to resolve that. There's usually more of it than it looks.\n\n**3. Offline-first work.** An app that has to work with no connection and sync afterwards needs a local database, an operation queue and conflict-resolution rules. That can turn out to be a third of the whole project.\n\n**4. Multilingual support bolted on later.** Adding a second language to a system that wasn't built for it costs several times more than planning for it from the start.\n\n**5. A complex permissions model.** The gap between \"admin and user\" and a permissions matrix per module, per field and per branch is weeks of work and a standing cost on every feature after that.\n\n**6. Compliance requirements.** Baseline GDPR is cheap. A requirement to audit every data change, retention rules and on-demand anonymisation is a module of its own.\n\n**7. An open-ended scope.** The single biggest factor. A project where the scope gets settled along the way ends up costing, in practice, 1.5–2x a project with the same scope described up front.\n\n## What a quote usually doesn't include\n\nVendors quote the cost of the build. You still need to budget for:\n\n- **Maintenance** — realistically 15–20% of the project's value per year. Monitoring, security updates, small fixes.\n- **Infrastructure** — from a few hundred zloty a month for a simple system to several thousand at higher traffic.\n- **Content and photography** — negligible for internal systems, potentially a significant line item for products with a public-facing part.\n- **Your team's time** — workshops, acceptance testing, decisions. A few to a dozen hours a week across the whole project. It's a real cost, just not one that shows up on an invoice.\n\n## How to check whether a quote is fair\n\nAsk for a breakdown by stage with amounts, and a list of assumptions. A fair quote states not just what's in scope, but also **what isn't**, and **what happens to the price if an assumption doesn't hold**.\n\nIf you get a single number with no breakdown, you have no way to compare it to another single number. Three offers differing by an order of magnitude almost always mean each of them priced something different.\n\n## How to lower the cost without lowering quality\n\n**Narrow the first rollout to a single process.** A system that handles one process end to end delivers value from day one. A system half-handling five processes delivers none.\n\n**Skip configurability you don't need yet.** \"We want to be able to change this later without a developer\" is usually the most expensive sentence in the whole spec.\n\n**Use off-the-shelf components where you're not building an advantage.** Authentication, payments, email delivery, search — good components already exist, and writing them from scratch is a cost with no return.\n\n**Pay for a workshop before building.** A dozen or so thousand spent closing the scope pays for itself many times over, because it removes the main cause of budget overruns.\n\n## Summary\n\nIf you need one number to open a conversation with the board: **an internal system handling one process is around PLN 80,000 net and four months**. Everything above that depends on the number of roles, integrations, and how well the scope is described — not on how many screens the app has.\n\nIf you want a number you can defend to the board, you need a workshop on your own data and your own process. That's the only way a quote stops being a guess.\n",{"title":317,"description":599},{"loc":603},"blog\u002File-kosztuje-aplikacja-webowa",[609,610,611],"pricing","budget","mvp","cost-of-a-web-application","jhCI0ZJN6yMJqQD2Jbr2XiEVwicPPV8synd3rKHAvg4",{"pl":597,"en":6},[616,686,753],{"id":617,"title":618,"audience":619,"body":623,"description":646,"extension":125,"faq":647,"heroHeadline":657,"heroSubline":658,"keyword":659,"meta":660,"navigation":142,"order":143,"parent":6,"path":661,"relatedCase":71,"scope":662,"seo":675,"sitemap":676,"slug":683,"stem":684,"__hash__":685},"subServicesEn\u002Fservices\u002Fweb-applications\u002Fb2b-systems.md","B2B systems — ordering platforms for trade customers",[620,621,622],"Wholesalers and distributors taking orders by email or phone","Manufacturers selling through regular buyers on their own price lists","Companies where a salesperson spends the day retyping orders into the ERP",{"type":96,"value":624,"toc":642},[625,629,632,635,639],[99,626,628],{"id":627},"when-it-pays-off","When it pays off",[104,630,631],{},"When the hours spent retyping orders can be counted. This is one of the few\nsoftware investments that can be estimated before it starts: orders per month\ntimes handling time per order gives a figure worth comparing against a quote.",[104,633,634],{},"It does not pay off at a dozen orders a month, or where every order is\ndifferent and needs a conversation.",[99,636,638],{"id":637},"where-we-start","Where we start",[104,640,641],{},"With the price lists. Pricing rules are the most common reason these projects\ndrift from their quote — especially when it emerges that alongside the list\nthere are five exceptions agreed on the phone years ago.",{"title":118,"searchDepth":119,"depth":119,"links":643},[644,645],{"id":627,"depth":122,"text":628},{"id":637,"depth":122,"text":638},"A portal where your trade customers place orders themselves, see their own prices and real stock. Takes order retyping off the sales team.",[648,651,654],{"q":649,"a":650},"Will this replace our salespeople?","No, and that isn't the aim. The platform absorbs the repeat orders that are only retyping anyway. The salesperson stays where they are genuinely needed: negotiation, new accounts, anything unusual.",{"q":652,"a":653},"Our customers are used to email. Will they use it?","Some won't at first, and that has to be planned for. One thing reliably works: putting something in the portal that email cannot give — order history, live availability, invoices to download. Compulsion without a benefit does not work.",{"q":655,"a":656},"Can it connect to our ERP?","That is the first thing we check before quoting, because half the cost depends on it. There is a real difference between a system with a documented API and one whose data leaves through an overnight file export.","Your customer places the order themselves, at any hour","While orders arrive by email and phone, wholesale scales with the number of salespeople. A B2B platform moves that traffic into the system, along with individual price lists and real stock.","B2B system for business",{},"\u002Fservices\u002Fweb-applications\u002Fb2b-systems",[663,666,669,672],{"title":664,"body":665},"Individual pricing and discounts","Each customer sees their own terms: price list, discount threshold, credit limit. Pricing rules live in the system rather than in a salesperson's memory — so a holiday stops being a risk.",{"title":667,"body":668},"Stock levels and availability dates","Availability shown net of reservations, not from a raw figure. The customer sees what they can order today and what comes in two weeks, and stops phoning to ask.",{"title":670,"body":671},"Order history and reordering","Previous orders as the starting point for the next one. With repeat baskets this is the feature that genuinely changes purchase frequency.",{"title":673,"body":674},"Wired into the ERP, without double entry","The order lands in the stock and accounting system automatically. That is the entire point: when data has to be retyped, the platform adds work rather than removing it.",{"title":618,"description":646},{"loc":677,"alternatives":678},"\u002Fen\u002Fservices\u002Fweb-applications\u002Fb2b-systems",[679,681,682],{"hreflang":191,"href":680},"\u002Fuslugi\u002Faplikacje-webowe\u002Fsystemy-b2b",{"hreflang":194,"href":680},{"hreflang":196,"href":677},"b2b-systems","services\u002Fweb-applications\u002Fb2b-systems","TeQG4Bsq_IftBZXQgmmjWhhr33R8_AwvX_5eoPrmTHo",{"id":687,"title":688,"audience":689,"body":693,"description":713,"extension":125,"faq":714,"heroHeadline":724,"heroSubline":725,"keyword":726,"meta":727,"navigation":142,"order":122,"parent":6,"path":728,"relatedCase":283,"scope":729,"seo":742,"sitemap":743,"slug":750,"stem":751,"__hash__":752},"subServicesEn\u002Fservices\u002Fweb-applications\u002Fclient-portals.md","Client portal — self-service instead of emails to the office",[690,691,692],"Service companies whose support answers the same status questions daily","Organisations that email documents and invoices on request","Teams where client issues live in an inbox rather than a register",{"type":96,"value":694,"toc":709},[695,699,702,706],[99,696,698],{"id":697},"what-a-portal-will-not-fix","What a portal will not fix",[104,700,701],{},"It will not fix a process that is unclear internally too. If the status of a\ncase is a matter of interpretation, the portal shows that ambiguity to the\nclient — sometimes that is valuable in itself, but it should be a decision\nrather than a surprise.",[99,703,705],{"id":704},"how-we-measure-the-effect","How we measure the effect",[104,707,708],{},"By the number of support contacts broken down by category, collected before\nlaunch. Without that figure there is no way to say later whether the project\nchanged anything — and that question always comes after a year.",{"title":118,"searchDepth":119,"depth":119,"links":710},[711,712],{"id":697,"depth":122,"text":698},{"id":704,"depth":122,"text":705},"A place where clients check status, download documents and raise issues themselves. Takes off support the questions your system can already answer.",[715,718,721],{"q":716,"a":717},"Does the portal have to integrate with our system?","It should, or somebody will be updating it by hand and the portal becomes one more thing to keep in step. If integration is impossible at the start, we say so and propose a narrower scope that can actually be maintained.",{"q":719,"a":720},"How many clients does it take to be worth it?","Not the number of clients but the number of repeat questions. A portal for thirty clients who ask about status weekly pays back faster than one for three hundred who ask nothing.",{"q":722,"a":723},"Can it be built in stages?","Yes, and usually is. The first version is most often status and documents alone — the shortest route to finding out whether clients will log in at all.","Clients check for themselves what they phone about today","Most contact with a support desk is questions whose answer already exists in your system — just not in the place where the customer is asking.","client portal",{},"\u002Fservices\u002Fweb-applications\u002Fclient-portals",[730,733,736,739],{"title":731,"body":732},"Live status of the case","Stage, dates and change history shown directly instead of described in answer to a phone call. The register builds itself along the way, so a month later it is possible to reconstruct what happened.",{"title":734,"body":735},"Documents and invoices to download","Contracts, reports, invoices and attachments in one place, with history. This is usually the single most common reason clients contact the office.",{"title":737,"body":738},"Issues with a register, not an inbox","A submission form with a category, a priority and a trace of the reply. Cases stop falling between people and between shifts.",{"title":740,"body":741},"Roles and permissions on the client's side","Who at the client sees invoices and who sees only status. The number of roles is the main cost driver in portals, so we settle it in the workshop rather than during the build.",{"title":688,"description":713},{"loc":744,"alternatives":745},"\u002Fen\u002Fservices\u002Fweb-applications\u002Fclient-portals",[746,748,749],{"hreflang":191,"href":747},"\u002Fuslugi\u002Faplikacje-webowe\u002Fpanele-klienta",{"hreflang":194,"href":747},{"hreflang":196,"href":744},"client-portals","services\u002Fweb-applications\u002Fclient-portals","L2GTXZklRapK6t3TKGqhawyBVYmHNHbY0NYeXaLxBQI",{"id":754,"title":755,"audience":756,"body":760,"description":780,"extension":125,"faq":781,"heroHeadline":791,"heroSubline":792,"keyword":793,"meta":794,"navigation":142,"order":119,"parent":6,"path":795,"relatedCase":283,"scope":796,"seo":809,"sitemap":810,"slug":817,"stem":818,"__hash__":819},"subServicesEn\u002Fservices\u002Fweb-applications\u002Fsaas-platforms.md","Building a SaaS platform — from MVP to first customers",[757,758,759],"Companies wanting to sell their own tool on a subscription","Teams with a working internal tool that has product potential","Startups before a first round, asked by investors for a delivery plan",{"type":96,"value":761,"toc":776},[762,766,769,773],[99,763,765],{"id":764},"what-we-dont-do","What we don't do",[104,767,768],{},"We don't build a full-scope platform before the first customer. We also don't\npromise that good architecture substitutes for distribution — in the SaaS\nproducts we have watched fail, the code was not the cause.",[99,770,772],{"id":771},"the-discovery-workshop-in-saas","The discovery workshop in SaaS",[104,774,775],{},"It matters more here than anywhere else, because the scope doesn't come from an\nexisting process — it has to be invented. We leave it with a list of what is\ndeferred, and that list decides the date of the first version.",{"title":118,"searchDepth":119,"depth":119,"links":777},[778,779],{"id":764,"depth":122,"text":765},{"id":771,"depth":122,"text":772},"Multi-tenancy, subscriptions, onboarding and billing. We build SaaS products in the version that can be sold, before the scope grows.",[782,785,788],{"q":783,"a":784},"How long does the first version take?","With scope narrowed to one process and one user type — usually a few months to something you can put in front of a paying customer. Scope, not technology, decides everything here.",{"q":786,"a":787},"Will you build it for equity?","No. We work for a fee, because only then can we honestly say something isn't worth building — and with products that is the most valuable thing a vendor can say.",{"q":789,"a":790},"We have an internal tool. Can it become a product?","Sometimes, but rarely by extending the existing code. An internal tool usually assumes one customer in every layer. We start with an audit that says what can be carried over and what has to be written again.","First, a version somebody can buy","The most common mistake in SaaS is building a complete product before the first paying customer. The scope that looks minimal is usually still too large.","building a SaaS platform",{},"\u002Fservices\u002Fweb-applications\u002Fsaas-platforms",[797,800,803,806],{"title":798,"body":799},"Multi-tenancy from day one","Separating customer data is an architectural decision that cannot be added later without a rewrite. We settle the model — shared database or separate — before the first screen exists.",{"title":801,"body":802},"Subscriptions and billing","Plans, limits, trials and failed-payment handling. Integrated with a payment provider rather than handling cards ourselves — this is a place where building from scratch has no justification at all.",{"title":804,"body":805},"Onboarding that needs no phone call","If every new customer needs a walkthrough, the product is not SaaS but a service with a portal. Sign-up and first run are designed as a separate, measured process.",{"title":807,"body":808},"Product metrics built in, not bolted on","Activation, retention and feature use collected from the start. Without them the first product decisions are made on instinct, which is the most expensive way to make them.",{"title":755,"description":780},{"loc":811,"alternatives":812},"\u002Fen\u002Fservices\u002Fweb-applications\u002Fsaas-platforms",[813,815,816],{"hreflang":191,"href":814},"\u002Fuslugi\u002Faplikacje-webowe\u002Fplatformy-saas",{"hreflang":194,"href":814},{"hreflang":196,"href":811},"saas-platforms","services\u002Fweb-applications\u002Fsaas-platforms","HpDji3erkJB0uBMUEV2CA6ILIvuNT-eUZm3rQwSlbVA",[821],{"code":822,"label":823,"name":824,"to":192},"pl","PL","Polish",1790522544158]