app-ideas is a curated collection of 91 application project ideas for developers who want to learn by building. Maintained by Florin Pop and Jim Medlock, the repository organises every idea into three difficulty tiers, gives you a clear objective, an enforceable list of user stories, optional bonus features, and links to the resources you'll need. There is no code to install — the repository is pure documentation that you read, choose from, and build against on your own.
This guide shows you how to navigate the collection, pick projects appropriate to your skill level, build a portfolio from them, and contribute new ideas back to the community.
1. Quick Start
The fastest way to use app-ideas is to skim the README's tiered tables and click straight into an idea's spec file. No checkout, no build step, no dependencies — every project description is a self-contained Markdown document.
- Open the project on GitHub: github.com/florinpop17/app-ideas.
- Scroll the README until you find the Tier-1: Beginner Projects, Tier-2: Intermediate Projects, and Tier-3: Advanced Projects tables.
- Click any project name — for example, Bin2Dec — to jump to its spec page (
Projects/1-Beginner/Bin2Dec-App.md). - Read the Tier, objective paragraph, User Stories checklist, Bonus features, and Useful links and resources sections.
- Build the project in any language, framework, or stack you like. The collection is technology-agnostic.
Tip
Every idea spec follows the same shape, defined by
Example Guide.mdat the repository root: Application Name, Tier, objective paragraph, User Stories (required), Bonus features (optional stretch goals), Useful links and resources, and Example projects. Once you've read one spec you can read any of the other 90 in well under a minute.
What you get from a single spec page
| Section | Purpose |
|---|---|
| Title + Tier | The difficulty class (1-Beginner, 2-Intermediate, 3-Advanced). |
| Objective paragraph | What the app does and why it's a useful learning exercise. |
| User Stories | Mandatory checklist items that define a complete implementation. |
| Bonus features | Optional stretch goals to extend the project. |
| Useful links and resources | External references (Wikipedia, MDN, API docs, tutorials). |
| Example projects | Community implementations in various languages/frameworks. |
Smallest possible "Hello World"
The Projects/1-Beginner/Hello-App.md idea is the gentlest on-ramp:
Display a personalised greeting in the user's native language using only HTML,
CSS, and a small amount of JavaScript. Three required user stories, one bonus.
Pick it. Spend an afternoon. Ship it. Add it to your portfolio. Pick the next one.
Note
The repository contains documentation only — there is no compiled binary, no
npm install, and no runtime. Every project you build from these specs is yours; the spec is just the brief.
2. Installation
You don't install app-ideas. There is nothing to compile, no package to download, no service to run. The repository is consumed in one of three ways, in order of friction:
Method 1: Browse on GitHub (recommended)
GitHub renders every Markdown file with anchored navigation, syntax highlighting, and clickable links. Bookmark the README and use it as your starting page.
https://github.com/florinpop17/app-ideas
Tip
The README's three tier tables are the canonical index. Treat them as the table of contents for the entire collection.
Method 2: Clone locally
Useful if you want offline access, plan to grep the specs, or are preparing a contribution.
HTTPS
git clone https://github.com/florinpop17/app-ideas.git
cd app-ideas
SSH
git clone git@github.com:florinpop17/app-ideas.git
cd app-ideas
GitHub CLI
gh repo clone florinpop17/app-ideas
cd app-ideas
After cloning, the directory layout is:
app-ideas/
├── README.md # Tier tables + project metadata
├── CONTRIBUTING.md # How to submit a new idea
├── Example Guide.md # Template for new idea PRs
├── CODE_OF_CONDUCT.md # Contributor Covenant v1.4
├── LICENSE # MIT
├── app-ideas.png # Repository banner
├── coderabbit.jpg # Sponsor banner
└── Projects/
├── 1-Beginner/ # 37 spec files
├── 2-Intermediate/ # 33 spec files
└── 3-Advanced/ # 21 spec files
Important
The default branch is
master(notmain). When you fork and submit pull requests, targetmaster.
Method 3: Fork for contributions
If you intend to submit a new project idea, fork the repository on GitHub before cloning so your branch is pushable:
gh repo fork florinpop17/app-ideas --clone
cd app-ideas
git checkout -b add-my-new-idea
System requirements
| Requirement | Detail |
|---|---|
| Disk space | ~3 MB for the full repository |
| Git | Any modern version (>= 2.0) for cloning |
| Markdown viewer | GitHub web UI, VS Code, Obsidian, Typora, or any browser |
| Network | One-time download for cloning; the docs are static and need no further fetches |
Note
Building any project from these specs will require additional tools (a code editor, language runtimes, framework SDKs, API keys for some specs). Those are per-project and listed in each idea's "Useful links and resources" section, never centrally.
3. Configuration
app-ideas has no runtime, no settings file, and no environment variables. There is nothing to configure on the consumer side.
The only "configuration" decisions you make are personal:
| Choice | Where to make it |
|---|---|
| Which tier to start at | Section 4 of this guide |
| Which language/framework to build with | Whatever you already know or want to learn |
| How strictly to follow the user stories | Per-project — they're guidance, not a contract |
| Whether to attempt bonus features | Optional, generally tackled after the required stories |
Note
If you intend to contribute a new idea, you will need to configure your fork: set your Git identity, enable signed commits if your account requires them, and ensure your
masterbranch tracksflorinpop17/app-ideas. See Section 5 for the full contribution recipe.
4. Core Usage
The whole product is a navigable index of project ideas. Core usage means: pick a tier, pick an idea, build it.
4.1 Difficulty tiers — the three buckets
The collection defines exactly three tiers. Every idea is assigned to exactly one of them.
| Tier | Folder | Idea count | Audience |
|---|---|---|---|
| Tier 1 — Beginner | Projects/1-Beginner/ |
37 | Early-stage learners. UI-focused, single-page, no backend. |
| Tier 2 — Intermediate | Projects/2-Intermediate/ |
33 | Comfortable with a UI framework and consuming third-party APIs. |
| Tier 3 — Advanced | Projects/3-Advanced/ |
21 | Comfortable with backend services, databases, and architectural patterns. |
| Total | 91 |
Tip
The README tables in the repository root list every project with a one-line description. Skim them in tier order — the descriptions are short enough to triage in two minutes per tier.
4.2 The 37 Beginner ideas (Tier 1)
Beginner projects can typically be completed in a single afternoon to a single weekend, using only HTML, CSS, and vanilla JavaScript (or any equivalent stack):
| Idea | What it teaches |
|---|---|
| Bin2Dec | Number-base conversion without arrays |
| Border Radius Previewer | CSS variable manipulation, live preview |
| Calculator | DOM event handling, expression evaluation |
| Calendar | Date math, grid layout |
| Cause Effect App | Click-to-reveal pattern, list rendering |
| Christmas Lights | CSS animation, simulated state |
| Color Cycle | Incremental colour transitions |
| Countdown Timer | setInterval, time formatting |
| CSV2JSON App | Parsing a CSV string into structured JSON |
| Dollars to Cents | Form input, simple arithmetic |
| Dynamic CSS Variables | CSS custom properties at runtime |
| First DB App | First exposure to a key-value store |
| Flip Image | CSS transform on two axes |
| GitHub Status | Fetching the GitHub status JSON |
| Hello | Localised greeting based on language detection |
| IOT Mailbox Simulator | Callbacks and simulated hardware events |
| JS Input Validation | Regular expressions for form validation |
| JSON2CSV App | Inverse of the CSV2JSON exercise |
| Key Value | Reporting KeyboardEvent properties |
| Lorem Ipsum Generator | Templating, randomness |
| Notes App | LocalStorage CRUD |
| Pearson Regression | Statistics, two-array math |
| Pomodoro Clock | Stateful timer with multiple modes |
| Product Landing Page | Landing-page layout and call-to-action design |
| Quiz App | Question/answer state machine |
| Random Meal Generator | Random pick from a fixed set |
| Random Number Generator | Bounded random in a range |
| Recipe App | Search + filter UI |
| Roman to Decimal Converter | Symbolic-numeric conversion |
| Slider Design | Image carousel with controls |
| Stopwatch App | Start/stop/reset timer |
| TrueOrFalse | Conditional comparison practice |
| Typing Speed Test App | Words-per-minute calculation |
| Vigenere Cipher | Classical cryptography |
| Weather App | Consuming a third-party API for the first time |
| Wind Chill | Formula implementation, unit conversion |
| Word Frequency | Text tokenisation and counting |
Tip
If you're brand new to JavaScript, start with Hello, Calculator, Pomodoro Clock, and Notes App in that order. They build on each other and cover almost every fundamental DOM and storage skill.
4.3 The 33 Intermediate ideas (Tier 2)
Tier 2 introduces persistence, third-party APIs, more advanced UI patterns, and your first taste of backend coordination:
| Idea | What it teaches |
|---|---|
| Bit Masks | Bitwise conditions and flags |
| Book Finder App | Multi-criteria search against a books API |
| Calculator CLI | Command-line interface design |
| Card Memory Game | Game state, animations, win conditions |
| Charity Finder App | API consumption with filtering |
| Chrome Theme Extension | Browser extension manifest, packaging |
| Currency Converter | Live FX-rate API, formatting |
| Drawing App | HTML5 Canvas, mouse/touch input |
| Emoji Translator App | String tokenisation, dictionary mapping |
| Flashcards App | Spaced-repetition data model |
| Flip Art App | Frame-by-frame animation |
| Game Suggestion App | Polls and aggregation |
| GitHub Profiles | GitHub REST API search |
| HighStriker Game | Physics-style mechanic, animation |
| Image Scanner | File upload, image processing |
| Markdown Previewer | Live Markdown-to-HTML rendering |
| Markdown Table Generator | Structured input -> formatted output |
| Math Editor | Mathematical notation rendering |
| Meme Generator App | Canvas text overlay on images |
| Name Generator (RNN) | First exposure to a neural model |
| Password Generator | Cryptographic randomness, charset rules |
| Podcast Directory | RSS feed parsing |
| QR Code Badge Generator | QR code library integration |
| RegExp Helper App | Live regex tester |
| Sales Receipts App | First database CRUD app |
| Simple Online Store | Cart state, checkout flow |
| Sports Bracket Generator | Recursive bracket layout |
| String Art | Canvas animation with motion math |
| This or That Game | Binary choice mechanic with stats |
| Timezone Slackbot | Slack bot integration |
| To-Do App | Classic CRUD with filtering and persistence |
| Typing Practice | Keystroke timing, accuracy metrics |
| Voting App | Real-time aggregation, results UI |
Note
Several Tier 2 ideas (Currency Converter, GitHub Profiles, Book Finder) require an API key from a third-party service. Each spec lists the API's signup URL in its "Useful links and resources" section. Keys are free for personal use.
4.4 The 21 Advanced ideas (Tier 3)
Tier 3 expects backend competence, persistence, and often integration with external services like Slack, Discord, or NASA's open APIs:
| Idea | What it teaches |
|---|---|
| Battleship Bot | Discord bot framework, game state over chat |
| Battleship Game Engine | Engine/presentation separation, callable game-engine API |
| Boole Bot Game | Boolean-algebra-driven battling agents |
| Bug Race Game | Multiplayer race state coordination |
| Calorie Counter | Nutrition database, daily totals |
| Chat App | WebSocket real-time messaging |
| Contribution Tracker App | Donation tracking with auth |
| Elevator | Discrete-event simulation |
| Fast Food Simulator | Multi-stage queue simulation |
| GitHub Timeline App | GitHub events visualisation |
| GitTweet App | Cross-posting between Git and social |
| Instagram Clone App | Social feed, image uploads, follows |
| Kudos Slackbot | Recognition bot with leaderboard |
| Movie App | Multi-source aggregation (TMDB, OMDb) |
| MyPodcast Library | Persistent personal podcast library |
| NASA Exoplanet Query | NASA Exoplanet Archive REST API |
| Shell Game | Animated shell-game UI with shuffle logic |
| Shuffle Deck App | Comparative shuffling-algorithm benchmark |
| Slack Archiver | Slack export and search |
| SpellIt App | Speech synthesis spelling game |
| Survey App | Survey definition, response collection, analytics |
Important
Tier 3 ideas often span multiple repositories or services in a real implementation (frontend + backend + external API). The spec describes the user-visible behaviour; you choose the architecture.
4.5 Anatomy of an idea spec
Every spec adheres to the template defined in Example Guide.md:
# Application Name
**Tier:** 1-Beginner | 2-Intermediate | 3-Advanced
A descriptive paragraph answering:
- What is the purpose of this application?
- What resources are needed to complete the project?
## User Stories
- [ ] User can ... (required)
- [ ] User can ...
## Bonus features
- [ ] User can ... (optional stretch goals)
## Useful links and resources
External docs, Wikipedia entries, API references.
## Example projects
Community implementations to reference *after* you've built your own.
Tip
The unchecked task-list checkboxes (
- [ ]) are your personal tracker. Fork the repo, copy the spec into your own project, and tick them off as you implement each story.
4.6 What app-ideas is not
The collection is intentionally minimal. It does not provide:
- Starter code, scaffolding, boilerplates, or templates beyond the idea spec
- Solutions or reference implementations (the Example projects sections link to community work, not official solutions)
- Tests, grading rubrics, or completion certificates
- A web UI for browsing the ideas (a website is mentioned as a future plan in the README, but is not yet shipped)
- An automated way to filter ideas by tech stack, API used, or feature
Note
If you want to filter ideas by stack — for example "all ideas that use the GitHub API" — search the repository on GitHub. Section 5 has a recipe for this.
5. Common Tasks
Recipe 1: Pick a first project as a complete beginner
Goal: Choose a Tier 1 project that matches your current skills and ship it this weekend.
Steps:
- Open the README's Tier-1: Beginner Projects table.
- Filter mentally for projects that don't require an API: Bin2Dec, Calculator, Color Cycle, Hello, Pomodoro Clock, Stopwatch App, Vigenere Cipher, Word Frequency, Roman to Decimal Converter.
- Click into the spec and read the User Stories section. If you understand every bullet, the project is at-or-below your level.
- If a story uses an unfamiliar term (e.g. "callback", "regex"), open the linked resource in the Useful links and resources section first.
- Build to satisfy every required user story before attempting any bonus.
Verify: Every required - [ ] user story checkbox can be ticked off when looking at your live app.
Tip
Resist the temptation to start with a tier above your level. Beginner projects are deliberately small — finishing five small projects beats abandoning one big one.
Recipe 2: Build a portfolio with five ideas
Goal: Use app-ideas to assemble a coherent portfolio of five completed projects across the three tiers.
Steps:
- Pick 2 Beginner, 2 Intermediate, 1 Advanced project. A balanced split shows range.
- Choose projects that span different concerns: one UI-only, one API-consuming, one with persistence, one with state, one with external integration. Suggested combo: Pomodoro Clock (UI + state), Notes App (persistence), GitHub Profiles (API), Markdown Previewer (parsing), Chat App (real-time).
- Build each project in its own GitHub repository so each one is independently linkable on a CV.
- Use a consistent README template across your repos: screenshot, demo URL, tech stack, "credit: idea from florinpop17/app-ideas".
- Deploy each one (GitHub Pages, Netlify, Vercel, or Render are all free for static and small dynamic apps).
- Link your five repos from a single portfolio page.
Verify: Each repo has a green deploy badge, a screenshot, and a working live URL. Your portfolio page links to all five.
Tip
Implement two of the projects in different stacks (e.g. one in vanilla JS, one in React). The contrast lets a reviewer see your range without you having to claim it.
Recipe 3: Find ideas that match a specific tech stack
Goal: Locate every idea that suits the technology you want to practise — for example, "all ideas that work well with the GitHub API".
Steps:
- Use GitHub's repository search:
https://github.com/florinpop17/app-ideas/search?q=GitHub+API&type=code
- Or grep locally after cloning:
git clone https://github.com/florinpop17/app-ideas.git
cd app-ideas
grep -ril "github.com/api" Projects/
grep -ril "openweathermap" Projects/
grep -ril "canvas" Projects/
- Open each matching spec and confirm the API or stack is core to the idea (not just a footnote in Example projects).
Verify: The search returns specs whose User Stories explicitly mention the technology you searched for.
Note
The spec metadata is not machine-structured (no front-matter, no JSON sidecar). Stack-based discovery is search-based, not query-based.
Recipe 4: Contribute a new idea
Goal: Submit a brand-new project idea for inclusion in the collection.
Prerequisites:
- A GitHub account
- A new idea that isn't already present (search the repository first; check open issues — issues #1094, #1102, #1077, #1076, #1078 are pending project-idea proposals as of this writing)
Steps:
- Fork the repository on GitHub.
- Clone your fork and create a feature branch:
gh repo fork florinpop17/app-ideas --clone
cd app-ideas
git checkout -b add-color-picker-app
- Decide the tier. Use the same criteria as Section 4: backend or auth -> Tier 3, third-party API or non-trivial state -> Tier 2, otherwise Tier 1.
- Copy
Example Guide.mdinto the appropriate tier directory and rename it:
cp "Example Guide.md" Projects/1-Beginner/Color-Picker-App.md
- Fill in every section of the template: title, Tier: line, descriptive paragraph, User Stories, Bonus features, Useful links and resources, Example projects.
- Add the new project to the matching tier table in
README.md. Match the existing alphabetical/insertion ordering and column alignment. - Commit and push:
git add Projects/1-Beginner/Color-Picker-App.md README.md
git commit -m "Add Color Picker App (Tier 1)"
git push origin add-color-picker-app
- Open a pull request against
florinpop17/app-ideasmaster. Use the new idea label.
Verify: Your PR shows two file changes — the new spec file and the README table update — and renders cleanly in GitHub's diff view.
Important
The CONTRIBUTING guide requires one PR per suggestion. Don't bundle multiple ideas in a single PR.
Recipe 5: Contribute an example implementation to an existing idea
Goal: Add a community implementation link to an idea you've already built.
Steps:
- Build your implementation and host it (GitHub repository + live demo).
- Open the spec for the idea you implemented (e.g.
Projects/1-Beginner/Bin2Dec-App.md). - Append a bullet to the Example projects section linking your repo. Match the existing format:
- [Bin2Dec built with <stack>](https://github.com/yourname/your-repo)
- [Live preview](https://your-demo-url.example.com)
- Submit a PR with a clear title, e.g.
Add Bin2Dec Vue example.
Verify: Your PR diff shows only the bullet you appended and your live preview URL works.
Tip
Adding an example implementation is the lowest-friction way to make your first contribution to the project — you'll typically get reviewed and merged faster than a brand-new-idea PR.
Recipe 6: Translate the project documentation
Goal: Translate the README or a project spec into another language for non-English-speaking learners.
Steps:
- Search the repository's open and closed PRs for existing translations to your target language. The project doesn't yet have a formal i18n structure, so translations have historically been ad-hoc.
- Open an issue first to discuss the approach with maintainers — confirm whether they want a parallel
README-<lang>.mdor a separatetranslations/<lang>/directory. - After alignment, translate the chosen file in your fork, preserving every link, every code block, and every table-column alignment.
- Submit one PR per translated file.
Verify: Side-by-side comparison shows your translation matches the structure of the source. All links still resolve.
Warning
Translation accuracy matters more than completeness. A partial, accurate translation is more useful than a full, machine-translated one. If your source language for translation is the README, double-check tier names, project names, and the contribution rules — those are load-bearing terms learners rely on.
6. Troubleshooting
Because app-ideas is a documentation repository, "errors" usually mean something is unclear, missing, or out of date in a spec. There is no runtime to crash.
Issue: A spec's external link returns 404 or redirects unexpectedly
Cause: Idea specs link to community implementations, tutorials, and live demos hosted on third-party services (CodePen, Heroku, personal domains). Those services may be retired, the author may delete the repo, or a free-tier deploy may be deactivated.
Solution:
- Treat the spec's User Stories as the source of truth — the link rot in Example projects does not invalidate the brief.
- If you can fix the link (you find a working mirror, or you've built a replacement), submit a PR updating the entry.
- If the link is broken with no replacement, you may submit a PR removing it. Reference issue #1092 (proposing removal of a stale Pomodoro Clock link) as precedent.
Prevention: When adding an example link, prefer GitHub repositories over Heroku/codepen URLs — repositories survive longer than free-tier deploys.
Issue: A spec's API or external service has been deprecated or now requires payment
Cause: Several Tier 2 and Tier 3 ideas reference free APIs that have since changed pricing or shut down (a recurrent issue in API-driven specs). The spec text won't always be updated immediately.
Solution:
- Read the spec's User Stories — they describe the user-facing behaviour, which is independent of any specific API.
- Substitute any equivalent API. For example, if a weather API is mentioned but now paid, OpenWeatherMap, Open-Meteo, and the National Weather Service all expose free endpoints with similar shapes.
- Document your substitution in your project's README.
Prevention: Don't hardwire an API into your build. Wrap it in a thin adapter layer so swapping providers is a single-file change.
Issue: I can't tell which tier my idea belongs in
Cause: Tier boundaries in the README are stated in audience terms (Tier 1 "early-stage learners", Tier 2 "comfortable with API services", Tier 3 "implementing backend applications and database services"), not in mechanical criteria.
Solution: Apply this decision tree:
- Does the idea require a database, persistent server, auth, or a real-time channel? -> Tier 3.
- Does it require a third-party API or non-trivial state across multiple views? -> Tier 2.
- Otherwise, it's Tier 1.
Prevention: When reviewing similar ideas already in the collection, place yours in the same tier as the closest existing match.
Issue: My PR adding a new idea was closed without merging
Cause: The most common reasons (per maintainer feedback in the issue tracker):
- The idea duplicates an existing one (always search first).
- The PR bundled multiple changes (the CONTRIBUTING guide requires one PR per suggestion).
- The spec didn't follow
Example Guide.mdexactly. - The README's tier table wasn't updated.
Solution:
- Re-read CONTRIBUTING.md carefully.
- Use
git diff masterand confirm only the two expected files are touched (the new spec, and the README). - Open a fresh PR — don't argue in the closed one.
Prevention: Before pushing, verify your spec by viewing it on your fork's branch in the GitHub UI. The rendering will match what reviewers see.
Issue: I'm not sure if my implementation "counts" as complete
Cause: The collection has no automated grader and no canonical reference solution.
Solution: A project is complete when every required - [ ] user story checkbox in the spec can be ticked off by exercising your live app. Bonus features are explicitly optional and should not be attempted until the required stories are done.
Prevention: Copy the spec's user-story list into your project's README and tick checkboxes as you go. This gives you (and reviewers of your portfolio) a clear definition-of-done.
Issue: The README links to a "future website" that doesn't exist yet
Cause: The README mentions plans to "create a website where you can easily browse through all of the projects" as a future direction. As of this writing the website has not shipped.
Solution: Use the GitHub-rendered README as the canonical browsing UI. Bookmark it.
Prevention: None needed — this is a known roadmap item, not a defect.
Note
For real-time issue tracking, the project's open issues at github.com/florinpop17/app-ideas/issues are your canonical reference. Recent activity centres on new-idea proposals (#1094 Post Feed App, #1102 Tier-2 Post Feed App, #1077 Joke / Quote Generator, #1076 Tic Tac Toe, #1078 Color Picker) and example-showcase posts (#1114 ExoVault NASA Exoplanet Archive Explorer, #1113 NutraFlux Calorie Counter implementation).
7. FAQ
Q: Do I have to build the projects in any specific language or framework?
No. The specs are intentionally technology-agnostic. Use whatever stack you want to learn or already know — JavaScript, Python, Go, Rust, Swift, Kotlin, Dart, Elixir, anything. The user stories describe user-facing behaviour, not implementation choices.
Q: Can I skip the user stories and just build "the spirit" of the project?
You can, but the user stories exist so a reviewer (an employer, an interviewer, a peer) can verify your implementation against an objective rubric. If you skip them, you lose the "complete vs. incomplete" framing that makes these projects portfolio-grade.
Q: Is there a recommended order to build the Tier-1 projects in?
The README doesn't prescribe an order, but a reasonable progression is: Hello -> Calculator -> Stopwatch App -> Pomodoro Clock -> Notes App -> Quiz App. This sequence introduces DOM, state, timers, persistence, and structured data in that order.
Q: How do I know if an idea is already taken or oversaturated for portfolio purposes?
Search GitHub for the project name (e.g. "Bin2Dec"). The community has built thousands of implementations of the popular Tier-1 ideas. Saturation isn't bad — your reviewer cares about your implementation, not whether it's novel.
Q: Can I use these ideas commercially?
The repository is MIT-licensed (see LICENSE). The ideas themselves cannot be copyrighted — they're descriptions of common application categories. Your implementation is yours to license however you like.
Q: What's the difference between "User Stories" and "Bonus features"?
User stories are the contract: implementing all of them defines a complete project. Bonus features are stretch goals — extensions you tackle after the base is working, to push your skills further or to differentiate your portfolio entry.
Q: Why are some idea specs much shorter than others?
The Tier-1 specs tend to be short (one paragraph + four user stories) because the projects are small. Tier-3 specs are longer because they often define separate components (e.g. Battleship Game Engine has separate user-story sections for the engine and the presentation layer).
Q: Can I propose a new tier — "Tier 4: Expert" — for very large projects?
The collection has stuck to three tiers since inception. The maintainers haven't signalled openness to a fourth tier. If you have an idea too large for Tier 3, consider splitting it into multiple Tier-3-shaped sub-projects.
Q: Are the example-project links curated for quality?
Loosely. They're community-submitted via PR. Treat them as inspiration, not endorsement. Read your own spec carefully and build from the user stories first — only consult the example projects if you get stuck or want to compare approaches at the end.
Q: How do I contribute a translation of the README?
Open an issue first to align with maintainers on file naming and directory structure. Translations don't yet have a formal home in the repository. See Recipe 6 in Section 5.
Q: I have an idea that crosses multiple tiers (e.g. a "minimal Tier-1 version" and a "fully-featured Tier-3 version"). What do I do?
Submit two separate PRs in two separate spec files (one per tier), with the spec descriptions cross-referencing each other ("for a simpler take see X"). One PR per suggestion is the contribution rule.
Q: How often is the collection updated?
The project receives contributions on an ongoing basis — the recent issue tracker shows multiple project-idea proposals and showcase submissions per month. The repo's master branch is the canonical, always-current state.
Q: Where can I see other developers' implementations of these projects?
Each spec's Example projects section links to community implementations. For broader exploration, search GitHub topics like app-ideas, app-ideas-collection, or the project name directly.
Q: Can I print this entire collection as a PDF and work through it offline?
You can clone the repository (Section 2) and view the Markdown locally with any reader. Printing the full set of 91 specs is possible but unnecessary — most learners reference one spec at a time.