Lessons from Choosing a Tech Stack for a Small Startup: uni-app, egg.js, and Team Management
This article recounts a founder’s experience joining a small startup in 2022, detailing the initial tech stack choices of uni‑app for mobile, egg.js with MySQL for the backend, and antd‑vue for the admin panel, as well as the subsequent challenges, team hiring, and management lessons learned.
In June 2022 the author joined a very small startup whose non‑technical founder wanted to cut labor costs and launch an Android + iOS app quickly, but the company later struggled financially and even failed to pay salaries.
With only a fresh front‑end developer and a UI designer on board, the team selected a stack that matched their existing skills: uni‑app for cross‑platform mobile development, egg.js with MySQL for the backend, and antd‑vue for the admin console, aiming to move from 0 to 1 rapidly.
Why uni‑app for mobile?
Native iOS/Android required hiring separate developers, which the founder could not afford.
Flutter would demand learning a new framework or hiring, still not ideal.
React‑Native/Taro are similar to uni‑app, but uni‑app was chosen for familiarity and speed.
Why egg.js for the backend?
More heavyweight options like Java, PHP, or Go were too costly for the budget.
egg.js is simple, fast, and well‑known to the team, keeping learning overhead low.
Development proceeded smoothly at first, delivering the apps and admin panel on schedule. However, the founder’s unrealistic expectations and constant requests for redesigns, new features, and even a switch to native development caused repeated disruptions.
Later adjustments included changing the app packaging method, introducing midway.js for new services (building on the existing egg.js knowledge), managing shared internal npm packages, and enforcing coding and process standards.
Recruitment and team management
Hiring for a tiny, low‑budget company proved difficult, but the chosen stack allowed anyone proficient in JavaScript to contribute to both front‑end and back‑end tasks, reducing resource waste.
Key management practices the author adopted:
Focus on business‑driven goals and stay realistic.
Adopt a full‑stack approach to avoid coordination bottlenecks.
Define lightweight code style guidelines based on the team’s habits.
Follow a clear development workflow: product evaluation → task assignment → technical assessment → development → testing → code review → deployment → incident tracking.
Use measurable performance criteria such as deadline adherence, documentation quality, bug count, and careful database changes.
Encourage knowledge sharing, timely feedback, and open communication.
Final advice for avoiding startup pitfalls
Ensure the founder is reliable and decisive; otherwise the project is unlikely to succeed.
Prioritize revenue generation—if you can’t make money, the venture will not survive.
Focus on solving core business problems first; technology choices can be refined later.
Maintain transparent communication with leadership to align expectations.
Treat every experience as a learning opportunity.
The author shares these reflections as personal insights and welcomes feedback.
Java Captain
Focused on Java technologies: SSM, the Spring ecosystem, microservices, MySQL, MyCat, clustering, distributed systems, middleware, Linux, networking, multithreading; occasionally covers DevOps tools like Jenkins, Nexus, Docker, ELK; shares practical tech insights and is dedicated to full‑stack Java development.
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.