Tier 1 vs Tier 2 vs Tier 3 Projects in the App Ideas Collection: A Complete Guide

The App Ideas repository organizes projects into three tiers based on difficulty: Tier 1 (Beginner) focuses on basic DOM manipulation without APIs, Tier 2 (Intermediate) introduces external APIs and simple state persistence, and Tier 3 (Advanced) requires full-stack architecture with real-time data and authentication.

The florinpop17/app-ideas repository is a curated collection of application specifications designed to help developers build their portfolio. Each project is classified into one of three distinct tiers that reflect increasing complexity, scope, and technical requirements. Understanding these differences helps developers choose appropriate challenges that match their skill level while progressively building expertise.

What Are Tier 1, Tier 2, and Tier 3 Projects?

The repository structures its Projects/ directory into three subdirectories: 1-Beginner/, 2-Intermediate/, and 3-Advanced/. Each tier represents a significant leap in architectural complexity and the breadth of concepts a developer must apply.

Tier I – Beginner Level

Tier 1 projects target developers who are new to JavaScript, frontend development, or learning the basics of a specific language. These projects emphasize core syntax and fundamental concepts without the overhead of external dependencies.

Key characteristics include:

  • Simple UI with minimal interactivity, typically built with HTML, CSS, and vanilla JavaScript
  • No external APIs or data persistence mechanisms
  • Focus on core language syntax, DOM manipulation, and basic CSS styling
  • Single-page applications that can be completed in a few hours

A canonical example is the Calculator-App specified in Projects/1-Beginner/Calculator-App.md. This project requires building a basic arithmetic calculator using only HTML, CSS, and vanilla JavaScript, demonstrating direct DOM updates without asynchronous operations.

Tier II – Intermediate Level

Tier 2 projects are designed for developers comfortable with fundamentals who are ready to explore modular code, external resources, and asynchronous programming. These applications introduce real-world complexities like API integration and simple state management.

Key characteristics include:

  • Multi-component or multi-page architecture
  • Integration of at least one external API or third-party library (e.g., fetch, Lodash)
  • Simple data persistence using localStorage or basic state management
  • Handling of asynchronous operations and more sophisticated UI patterns

The Currency-Converter project in Projects/2-Intermediate/Currency-Converter.md exemplifies this tier. It requires fetching live exchange rates from an external API, handling user input asynchronously, and storing the last-used conversion preferences locally.

Tier III – Advanced Level

Tier 3 projects target experienced developers familiar with full-stack concepts, authentication flows, and complex UI architectures. These applications require building robust, production-ready systems with multiple integrated services.

Key characteristics include:

  • Multi-page applications (MPA) or Single Page Applications (SPA) with client-side routing
  • Integration of several external services (APIs, OAuth authentication, WebSockets, real-time databases)
  • Persistent back-end storage (e.g., Firebase, MongoDB, PostgreSQL)
  • Emphasis on software architecture, automated testing, and deployment considerations

The Chat-App specified in Projects/3-Advanced/Chat-App.md represents this tier. It requires implementing real-time messaging using WebSockets, user authentication systems, and a back-end server for message persistence, demonstrating full-stack architectural patterns.

Key Technical Distinctions Across Tiers

The progression from Tier 1 to Tier 3 involves systematic increases in five critical technical dimensions.

Complexity and Scope

Tier 1 projects typically reside within a single file or a few small files with minimal separation of concerns. Tier 2 introduces modular structure with separate files for API handling, utilities, and components. Tier 3 expands to full-stack architectures with distinct client and server codebases, often utilizing frameworks like React, Vue, or Angular on the frontend and Node.js, Python, or Go on the backend.

External Dependencies

Tier 1 projects deliberately avoid third-party APIs to keep the learning surface minimal. Tier 2 typically requires integration with at least one external REST API, introducing concepts like API keys, rate limiting, and JSON parsing. Tier 3 expects multiple API integrations, potentially including authentication providers (OAuth), payment gateways, cloud storage services, and real-time communication protocols.

State Management

Tier 1 relies on in-memory variables and direct DOM manipulation for state. Tier 2 may utilize localStorage or sessionStorage for simple persistence, or basic state containers like React's useState hooks. Tier 3 employs robust state management solutions such as Redux, Zustand, or server-side databases with optimistic UI updates and conflict resolution strategies.

Asynchronous Logic

Tier 1 code often remains synchronous, executing linearly in response to user events. Tier 2 introduces async/await or Promises for API calls, requiring error handling for network failures and loading states. Tier 3 deals with real-time streams, WebSocket connections, server-sent events, and complex error handling across distributed systems.

Testing and Deployment

Tier 1 rarely includes formal testing; validation occurs through manual browser interaction. Tier 2 may add unit tests for API handling functions using frameworks like Jest. Tier 3 encourages integration tests, end-to-end testing with Cypress or Playwright, continuous integration pipelines, and deployment scripts using Docker, Vercel, Netlify, or AWS.

Code Implementation Examples

The technical progression across tiers is clearly visible when comparing implementation patterns for similar functionality.

Tier I: Direct DOM Manipulation

The Calculator-App in Projects/1-Beginner/Calculator-App.md demonstrates basic event handling without asynchronous operations:

// Calculator button click handler
document.querySelectorAll('.btn').forEach(btn => {
  btn.addEventListener('click', e => {
    const value = e.target.textContent;
    display.value += value;               // direct DOM update
  });
});

This illustrates synchronous, in-memory state management through direct DOM manipulation.

Tier II: API Integration with Persistence

The Currency-Converter in Projects/2-Intermediate/Currency-Converter.md introduces asynchronous data fetching and local storage:

async function convert(amount, from, to) {
  const response = await fetch(
    `https://api.exchangerate.host/convert?from=${from}&to=${to}&amount=${amount}`
  );
  const data = await response.json();
  return data.result;                     // async/await & external API
}

// Store last conversion locally
localStorage.setItem('lastConversion', JSON.stringify({amount, from, to}));

This demonstrates handling asynchronous operations, external API integration, and simple client-side persistence.

Tier III: Real-Time Communication Architecture

The Chat-App in Projects/3-Advanced/Chat-App.md requires full-stack implementation with WebSocket communication:

// client.js - Client-side WebSocket handling
const socket = new WebSocket('wss://chat.example.com');

function sendMessage(user, text) {
  socket.send(JSON.stringify({user, text, timestamp: Date.now()}));
}

socket.addEventListener('message', event => {
  const msg = JSON.parse(event.data);
  displayMessage(msg);                   // real-time UI updates
});

This illustrates bi-directional real-time communication, JSON serialization, and the necessity of a persistent back-end server.

Project Specifications and Source Files

Each tier is documented through detailed markdown specifications in the repository's Projects/ directory. These files serve as canonical references for implementation requirements.

  • Tier I specifications reside in Projects/1-Beginner/ and include projects like Calculator-App.md, which outlines basic arithmetic operations and UI requirements without external dependencies.

  • Tier II specifications are located in Projects/2-Intermediate/ and feature projects such as Currency-Converter.md, detailing REST API integration, error handling for network requests, and localStorage implementation for user preferences.

  • Tier III specifications occupy Projects/3-Advanced/ and contain complex projects like Chat-App.md, which specifies WebSocket implementation, user authentication flows, message persistence requirements, and deployment considerations.

These markdown files act as the definitive source for each tier's expectations, providing user stories, required features, suggested tech stacks, and optional enhancements that illustrate the progression from simple frontend exercises to full-stack architectures.

Summary

The App Ideas Collection organizes projects into three distinct tiers that systematically advance developer skills:

  • Tier I (Beginner) projects focus on core language syntax and direct DOM manipulation without external APIs, exemplified by the Calculator-App in Projects/1-Beginner/Calculator-App.md.

  • Tier II (Intermediate) projects introduce external API integration, asynchronous programming with async/await, and simple persistence via localStorage, as demonstrated by the Currency-Converter in Projects/2-Intermediate/Currency-Converter.md.

  • Tier III (Advanced) projects require full-stack architecture, real-time communication via WebSockets, user authentication, and persistent back-end storage, illustrated by the Chat-App in Projects/3-Advanced/Chat-App.md.

Frequently Asked Questions

What distinguishes a Tier 1 project from a Tier 2 project in the App Ideas Collection?

The primary distinction lies in external dependencies and asynchronous complexity. Tier 1 projects, such as those found in Projects/1-Beginner/, rely solely on HTML, CSS, and vanilla JavaScript with direct DOM manipulation and no API calls. Tier 2 projects, documented in Projects/2-Intermediate/, require integration with external REST APIs, handling asynchronous operations with Promises or async/await, and often implement localStorage for data persistence.

Can I skip Tier 1 projects and start directly with Tier 3 projects?

While technically possible, starting with Tier 3 projects without foundational experience is not recommended. Tier 3 projects in Projects/3-Advanced/ assume mastery of concepts introduced in earlier tiers, including asynchronous programming, state management, and API integration. These projects require architecting full-stack solutions with WebSockets, authentication flows, and persistent databases—skills typically developed by progressing through the foundational complexity of Tier 1 and Tier 2 projects.

What technologies are typically required for Tier 2 projects compared to Tier 3?

Tier 2 projects typically require frontend frameworks or vanilla JavaScript with fetch for API consumption, along with browser storage APIs like localStorage. According to specifications in Projects/2-Intermediate/Currency-Converter.md, these projects focus on REST API integration and client-side persistence. Tier 3 projects, as outlined in Projects/3-Advanced/Chat-App.md, require full-stack technologies including WebSocket servers (Socket.io or native WebSockets), authentication providers (OAuth, JWT), database systems (Firebase, MongoDB, PostgreSQL), and deployment platforms (Docker, Vercel, AWS).

How do state management requirements differ across the three tiers?

State management complexity increases significantly across tiers. Tier 1 projects rely exclusively on in-memory variables and direct DOM updates, as seen in the Calculator-App implementation where state lives only in the JavaScript execution context. Tier 2 projects introduce semi-persistent state through localStorage or sessionStorage, allowing data to survive page refreshes but remaining client-side only. Tier 3 projects require robust state management solutions such as Redux, Zustand, or server-side databases with optimistic UI updates, handling complex synchronization between multiple clients and persistent back-end storage.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →