What Real‑World Startup Lessons Reveal About Choosing a Backend Stack
This article shares a developer’s firsthand experience in a small startup, detailing why the team chose uni‑app, egg.js, MySQL, and antd‑vue for rapid 0‑to‑1 development, the challenges faced during product pivots, and practical advice on hiring, team management, and avoiding common pitfalls.
Background
In June 2022 I joined a very small startup whose founder lacked technical and managerial expertise, relying on enthusiasm and industry knowledge to launch a venture that eventually failed, leaving developers unpaid for the final months.
The founder demanded rapid cost reduction and fast delivery of an Android + iOS app to start operations.
Initial Technology Selection
The initial team consisted of a fresh front‑end developer and a UI designer, with no dedicated QA or dev‑ops.
Based on the company’s needs and my experience with front‑end and Node.js, we chose the following stack:
Use uni-app to develop the app, ensuring multi‑platform compatibility and future mini‑program support.
Use egg.js + MySQL for the backend, offering quick development and sufficient performance for a niche domain, with a later migration path to midway.js.
Use antd-vue for the admin panel to keep the technology stack consistent with uni-app and reduce conversion costs.
Thus the early stack was egg.js + MySQL + uni-app + antd-vue, enabling rapid 0‑to‑1 delivery of two apps and an admin backend.
Choosing the App Development Approach
We evaluated several options:
Native iOS/Android development required hiring separate developers and incurred high time and cost, which the founder could not accept.
Flutter required learning from scratch or hiring, offering only a modest advantage over native.
React‑Native/Taro and uni‑app were similar; considering familiarity, difficulty, and efficiency, we selected uni‑app.
Why We Chose egg.js for the Backend
Although mature backend solutions like Java, PHP, or Go would be technically superior, they were not economically viable for the founder.
Using established frameworks such as Java would be costly. egg.js is simple, fast, and familiar to the team, lowering the learning curve for new members with JavaScript experience.
Mid‑Project Turbulence
Development proceeded smoothly at first, meeting deadlines for development, testing, and launch. However, the founder’s expectations for rapid operation and profit were unrealistic, leading to constant product, UI, and code changes driven by unrelated experts.
Frequent redesigns and rewrites were demanded.
New product requirements forced a complete overhaul of existing designs.
Part‑time leadership insisted on hiring native and Java developers without clear justification.
Despite these disruptions, the core technical solution remained unchanged, and additional features such as system upgrades, UI updates, mini‑program versions, instant messaging, and other small enhancements were added.
Later Technical Adjustments
Adjusted the app packaging strategy.
Introduced midway.js for new business modules, building on the team’s existing egg.js expertise.
Managed internal npm packages and built a component library.
Standardized code and development processes.
Recruitment and Team Management
Recruitment
Hiring for a small company with limited budget is challenging, but the chosen stack allowed developers with solid JavaScript skills to handle both front‑end and back‑end tasks, reducing resource waste.
Team Management
Key practices for small teams:
Be pragmatic and business‑oriented.
Adopt full‑stack development to avoid coordination issues.
Establish coding standards aligned with developers’ habits.
Follow a clear workflow: product evaluation → task allocation → technical assessment → development → testing → code review → deployment → issue tracking.
Measure performance through task deadlines, documentation, bug counts, and careful database changes.
Encourage knowledge sharing and continuous learning.
Maintain open communication about progress and challenges.
Final Takeaways
Startup Pitfall Avoidance Advice
Ensure the founder is reliable and decisive; otherwise, the venture is unlikely to succeed.
A trustworthy founder can still create future opportunities even if a project fails.
Focus on generating revenue; without it, survival is doubtful.
Prioritize core business problems over technical choices like frameworks or code style.
Provide timely progress updates and maintain good communication with leadership.
Extract learning from every experience; each step adds value.
Author: qiuwww Source: juejin.cn/post/7257085326471512119
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
macrozheng
Dedicated to Java tech sharing and dissecting top open-source projects. Topics include Spring Boot, Spring Cloud, Docker, Kubernetes and more. Author’s GitHub project “mall” has 50K+ stars.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
