You've spent the past six weeks building a strong foundation: semantic HTML, responsive CSS, TypeScript, React components, state management, data fetching, routing, and deployment. This week you apply all of it to a project of your own choosing.
There is no prescribed topic. Pick something you find genuinely interesting: a domain you'd enjoy spending a week in. What matters is that your project meets the technical requirements below, not what it's about.
By the end of the week you'll have a deployed, multi-page React application you built yourself, followed by a technical interview where you'll walk through your decisions with a mentor.
Your project needs a public REST API that returns list and detail data β a list of items you can browse, and individual items you can view in detail. This naturally fits the two-page pattern the project requires.
Some ideas to get you started:
| Domain | API |
|---|---|
| Movies & TV | TMDB API |
| Recipes | MealDB API |
| Countries | REST Countries |
| Books | Open Library API |
| GitHub profiles | GitHub API |
| Music | iTunes Search API |
| PokΓ©mon | PokeAPI |
| Weather | OpenWeather API |
| Sports | API-Football |
You are not limited to this list. If you have an API in mind that interests you more, use it β check first that it's free, doesn't require complex OAuth, and returns enough data to build a list and detail view.
<aside> π
Note
Before you start building, complete the Project Brief at the bottom of this document. This takes 20 minutes and prevents you from spending days going in the wrong direction.
</aside>
Every project must meet all of the following requirements regardless of topic. These are not optional β they exist to make sure you practice everything from weeks 1β6.
useParams β for example /movies/:id that loads a detail page for a specific itemNavLink with active link styling, visible on every pageuseEffectAbortController cleanup on any effect that fetches dataresponse.ok checked before parsing JSONany)useState that applies dark: variants@themepages/, components/)Keep scope tight. A well-built two-page app is better than a half-finished five-page one.
By the end of the week, submit:
<aside> π
Complete this before you start building. Copy this template into your own note-taking application before modifying it.
</aside>
Project name:
Your name:
In one sentence, what does your app do?
API you are using:
Link to the API documentation:
Does it require an API key?
Paste an example API response (just the first item if it's a list):
Page 1 β path: /
What it shows:
Page 2 β path: (e.g. /movies)
What it shows:
Page 3 β path: (e.g. /movies/:id) β this must be a dynamic route
What it shows: