What I Learned Building a Startup App with uni‑app and egg.js: Avoid These Pitfalls
A former developer recounts joining a tiny startup, choosing uni‑app, egg.js, and antd‑vue to quickly build Android and iOS apps, navigating constant product changes, team hiring challenges, and later technical adjustments, and shares practical advice to avoid common pitfalls in early‑stage ventures.
Background
In June 2022 I joined a tiny startup whose founder lacked technical and management experience, leading to rapid but unsustainable development of an Android+iOS app and eventual dissolution.
Initial Technology Choices
With only a fresh front‑end developer and a UI designer, we selected a stack based on our Node.js and front‑end experience:
Use
uni-appfor cross‑platform app development, keeping future mini‑program support in mind.
Use
egg.js+
MySQLfor the backend, with a later migration path to
midway.js.
Use
antd-vuefor the admin console to share the same UI stack as
uni-app.
Why choose uni‑app for the app?
Pure native iOS/Android would require hiring separate teams and higher cost.
Flutter would still need learning or hiring, not optimal.
React‑native/Taro are similar to uni‑app, but uni‑app matched our skill set and development speed best.
Why choose egg.js for the backend?
Although mature Java, PHP, or Go solutions exist, they were too expensive for the founder.
egg.jswas simple, fast, familiar to the team, and had low learning curve.
Java/Go would be better technically but not economical.
egg.jsdevelopment is quick, and JS‑savvy developers can pick it up easily.
Mid‑stage Turbulence
Development finished on schedule, but the product stalled. The founder repeatedly brought in unrelated experts, changed UI designs, and even considered hiring native and Java developers without clear justification. New requirements kept emerging, causing constant re‑work.
Later Technical Adjustments
Adjusted the app packaging process.
Introduced
midway.jsfor new services while keeping the team’s
egg.jsexpertise.
Managed shared npm packages and a component library internally.
Standardised code and development processes.
Hiring and Team Management
Recruitment
Small startups struggle to attract talent with limited salaries, but a unified JS‑centric stack reduces the need for specialised roles.
Team Practices
Focus on business‑driven goals.
Adopt full‑stack development to avoid resource waste.
Define coding standards based on common habits.
Follow a clear workflow: product evaluation → task allocation → technical assessment → development → testing → code review → release → incident handling.
Measure performance by deadline adherence, documentation, bug count, and careful DB changes.
Encourage knowledge sharing and timely feedback.
Final Takeaways
Startup survival tips
Ensure the founder is reliable and decisive.
A trustworthy founder can still create value elsewhere even if a project fails.
Prioritise revenue; without cash flow a startup cannot survive.
Focus on solving core business problems before polishing tech choices.
Maintain transparent communication about progress.
Extract learning from every experience.
Java Backend Technology
Focus on Java-related technologies: SSM, Spring ecosystem, microservices, MySQL, MyCat, clustering, distributed systems, middleware, Linux, networking, multithreading. Occasionally cover DevOps tools like Jenkins, Nexus, Docker, and ELK. Also share technical insights from time to time, committed to Java full-stack 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.