In this guide 6 sections
Pick a stack you can keep alive. Newest is a poor test of quality. Check how easily you can hire for it, where it will be hosted, how long it is supported and how many similar systems your vendor has already shipped.
Start from what you will maintain
A stack commits you to people. Someone must patch it, upgrade it and fix it at night, so ask who that will be, by name, before you ask what the framework can do.
Most business applications are forms, tables, approvals and reports, which nearly every mainstream stack handles well, so the real difference shows up in year three. That is when the first developer has left.
Test the choice against the staff you can find, not the demo you saw, and ask the vendor how a stranger could take the code over. That answer beats any benchmark chart.
- Developers available in your city or time zone
- Length of vendor support for the framework version
- Hosting you can run or rent without special skills
- Documentation written by more than one company
What each common option suits
Next.js with React suits public websites, portals and dashboards where page speed and search visibility matter, and it pairs with any separate back end API. Server rendering keeps a dealer or customer portal quick on weak connections, which matters when the buyer is standing in a yard with one bar of signal.
Laravel is PHP with strong conventions. Queues, migrations, mail and roles come built in, which makes it a steady choice for admin heavy systems such as order entry, billing and approvals. PHP hosting is cheap and widely understood.
Node.js with Express or NestJS suits real time features, chat, live tracking and many small integrations, and it lets one language run the browser and the server. The MERN combination, with MongoDB, fits when records vary in shape, such as survey forms or product catalogues whose fields change from one item to the next. Neither choice is wrong in itself. For many projects two of these three would work, so let the tie breaker be the people you can hire next spring. Hosting deserves a line, since a managed cloud database, a shared PHP server and a container platform each need different skills from whoever answers the alarm. Cost follows skill.
Check the vendor, not only the framework
Even a good stack fails in unfamiliar hands. Ask which similar applications the team has delivered on it, and ask to see one running and to speak with its owner.
Ask who writes the tests and who reviews the code, then ask how upgrades are handled each year, since a vendor with a clear answer has done it before.
Be wary of a stack chosen because the developer wants to learn it, since that is your project paying for their training. Pay attention to how they answer. Silence is data. Ask for the build and release steps in writing, including who holds the signing keys and the domain registration, so a change of vendor never strands you.
- Two live systems on the proposed stack
- Named developers who will work on yours
- A written upgrade routine for each year
- Your ownership of the repository and the hosting account
Mobile adds its own choice
If staff need a camera, barcode scan or offline mode, decide early whether a web app is enough, because progressive web apps cover more than owners expect.
For a store app, React Native and Flutter share code across Android and iOS, while native Kotlin and Swift cost more but give the deepest device access.
Whatever you pick, keep the API separate, so the same back end can feed web, mobile and partner systems without anyone rewriting the business rules for each. Doubt any promise that one codebase does everything. Demand a demo on a cheap Android phone.
Write the decision down
Record the stack, the reasons and the options you rejected, and add the names of the people who can maintain each layer. This one page saves arguments later. Keep it brief.
Share it with an independent developer for a second opinion, since an hour of their time costs little against a bad foundation that gets rebuilt in year four.
Ask your vendor to confirm in writing that you will own the code and the deployment scripts, and keep the page where the whole team can find it. Revisit it each year, as a framework version nears the end of support, and keep the choice reversible by holding business rules in the API, not the screens.
Stack decision sheet
Each option takes a line on a single printed page, with columns for hiring pool, hosting, support end date, vendor projects shipped, mobile fit and risks. A final block records the chosen stack, the maintainers by layer, the review date and the rejected options with one line on why each lost.
Open a blank worksheet to printQuestions owners ask
Does the stack matter for a small internal tool?
Less than the data and the screens do. Pick something your team or vendor already knows well, with a clear support timeline, and keep the data model clean so a later move stays small.
Is a newer framework always better?
No. Newer means fewer experienced developers and fewer answered questions, so a mature framework with active support is the safer base for a system you must run for years.
Should the stack follow the vendor’s habit?
Partly, because a vendor does best on what they know, but check that the choice is common enough for another firm to take over if the relationship ends.
Can we change the stack later?
Yes, but it means rewriting that layer. Keeping the API and the database separate from the screens makes a later change much smaller, since only the screens need replacing.
