Loading Navbar... -Suspense (layout.js | RootLayout)
State, Country
Campground Name
$15 per night
5
State, Country
Campground Name
$15 per night
5
State, Country
Campground Name
$15 per night
5
State, Country
Campground Name
$15 per night
5
State, Country
Campground Name
$15 per night
5
State, Country
Campground Name
$15 per night
5
State, Country
Campground Name
$15 per night
5
State, Country
Campground Name
$15 per night
5
State, Country
Campground Name
$15 per night
5
State, Country
Campground Name
$15 per night
5
State, Country
Campground Name
$15 per night
5
State, Country
Campground Name
$15 per night
5
Yelpcamp v2 is a modern reimagining of the original YelpCamp project taught by Colt Steele in his full-stack web development bootcamp.
This version focuses on improving both the user experience and the overall visual design. The UI and feature set are loosely inspired by platforms like Airbnb and Hipcamp, introducing concepts such as:
The goal of the project was not only to rebuild YelpCamp using a newer stack, but also to explore how a familiar application can evolve with better architecture, UI patterns, and modern tooling.
The campground seed data used in this project was sourced from the National Park Service API.
To improve performance and reduce repeated API calls, the data was downloaded and stored directly in the database. Images were also downloaded and re-uploaded to UploadThing so that both the application data and assets could be managed from a single source of truth.
The National Park Service allows public use of their API data under the terms outlined in their disclaimer page:
Without signing in, visitors can:
Once authenticated, users can:
To keep the project sustainable within free-tier limits, user-generated data is automatically cleared after a fixed amount of time through scheduled cleanup jobs.
This includes uploaded images and associated database records.
The cleanup process exists primarily to avoid exceeding free-tier limits for:
One of the weaker parts of the project is the authentication implementation.
While migrating to Auth.js (NextAuth), the authentication setup could not be implemented exactly according to the official documentation due to project-specific constraints. A workaround was used instead, which introduced a known issue where the application's UI can become unresponsive after logging out because the redirect mechanism occasionally fails.
A more detailed technical breakdown of the project's limitations and tradeoffs can be found in the project's README shortcomings section.
There are currently no major plans to continue developing this version of the project.
However, a future iteration may explore a more frontend-focused approach using newer technologies and modern UI experimentation.
If you’d like to get in touch, feel free to send an email to: hey@manav.sh