R&D Management 9 min read

What We Learned Choosing a Tech Stack for a Small Startup: uni‑app, egg.js, and Team Management

This article recounts a small startup’s journey from selecting uni‑app for cross‑platform mobile development and egg.js for the backend, through mid‑project adjustments, hiring challenges, and practical team‑management advice, highlighting lessons to avoid common pitfalls.

21CTO
21CTO
21CTO
What We Learned Choosing a Tech Stack for a Small Startup: uni‑app, egg.js, and Team Management

Background

In June 2022 I joined a very small startup whose founder lacked technical and management experience, relying on enthusiasm and industry knowledge to launch a venture that eventually failed, leaving employees unpaid for the final months.

The founder demanded rapid reduction of labor costs and fast delivery of an Android + iOS app to start operations quickly.

Initial Technology Choices

Our team consisted of myself, a recent front‑end graduate, and a UI designer, with no dedicated QA or HR.

Based on the company’s needs and my experience with front‑end and Node.js, we chose:

uni‑app for cross‑platform app development, allowing future expansion to mini‑programs.

egg.js + MySQL for the backend, offering quick development and sufficient performance for our niche, with an easy migration path to midway.js.

antd‑vue for the admin dashboard, keeping the front‑end stack unified and reducing conversion costs.

Thus the initial stack was egg.js + MySQL + uni‑app + antd‑vue, enabling rapid 0‑to‑1 development of two apps and an admin panel.

Choosing the App Development Approach

We evaluated several options:

Native iOS and Android development required hiring separate teams, which the founder could not afford.

Flutter required learning from scratch or hiring, offering modest benefits over native.

React‑Native/Taro and uni‑app were similar; considering familiarity and development speed, we selected uni‑app.

Why egg.js for the Backend?

Beyond pure technical merits, cost was the decisive factor; egg.js met all requirements while keeping expenses low.

More mature back‑end stacks like Java, PHP, or Go would be technically sound but financially prohibitive.

egg.js is simple, fast, and familiar to the team, reducing onboarding time for new members with JavaScript experience.

Mid‑Project Turbulence

Initial development proceeded smoothly, delivering the product on schedule, but the founder’s expectations for rapid operation and profit were unrealistic, leading to continuous interruptions:

External “experts” (unrelated to our domain) constantly suggested UI and business changes.

A new product manager overhauled existing designs, forcing re‑development.

A part‑time leader insisted on hiring native and Java developers without clear justification.

Despite these disruptions, the core technical decisions remained unchanged, and the early work survived.

Additional requests later included system upgrades, UI refreshes, mini‑program development, new backend services, instant messaging integration, and various small feature enhancements.

Later Technical Adjustments

Modified the app packaging strategy.

Adopted midway.js for new business modules, building on the team’s egg.js expertise.

Created shared internal npm packages and a component library.

Standardized code style and development processes.

Hiring and Team Management

Recruitment

Hiring for a small, low‑budget company is challenging, but our unified JavaScript stack allowed flexibility: developers could work on both front‑end and back‑end tasks, reducing resource waste.

Team Management

In a nascent startup, stay pragmatic and business‑oriented.

Adopt a full‑stack approach to avoid coordination bottlenecks.

Define coding standards based on the team’s habits to ensure consistency.

Follow a clear development workflow: product evaluation → task assignment → technical assessment → development → testing → code review → deployment → post‑release monitoring.

Implement measurable performance criteria such as deadline adherence, documentation quality, bug count, and careful database modifications.

Encourage knowledge sharing and continuous learning.

Maintain timely communication about progress, challenges, and personal feedback.

Final Takeaways and Startup Pitfalls

Ensure the founder is reliable; a indecisive or overly optimistic leader often leads to failure.

A trustworthy founder can still create future opportunities even if a project stalls.

Prioritize revenue generation; without a viable business model, survival is unlikely.

Focus on solving core business problems first; technology choices and coding standards can be refined later.

Provide regular progress updates to align with the founder’s higher‑level perspective.

Extract learning from every experience; each step adds value to your career.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

BackendMobile Developmentteam managementstartupuni-appegg.jstech stack
21CTO
Written by

21CTO

21CTO (21CTO.com) offers developers community, training, and services, making it your go‑to learning and service platform.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.