https://github.com/turtlebeasts/standup-helper
https://github.com/turtlebeasts/standup-helper
Last synced: 11 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/turtlebeasts/standup-helper
- Owner: turtlebeasts
- Created: 2025-07-25T02:28:11.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-07-25T02:36:43.000Z (11 months ago)
- Last Synced: 2025-07-25T07:40:08.545Z (11 months ago)
- Language: JavaScript
- Size: 38.1 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# π§ Standup-helper - A Scalable, Modular Joke App
**Standup-helper** is not your average joke-fetching project.
This app was built with a real-world mindset β focused on **clean architecture**, **global state management**, and **scalability**. It demonstrates how even a simple idea can be engineered like a production-grade application.
---
## π Features
- π Fetches 10 random jokes from a public API
- β Add jokes to your personal favorites list
- π Refresh joke list from anywhere in the app
- β¬οΈ Load more jokes dynamically with `Load More` button
- β Remove jokes from favorites
- πΎ Zustand-powered global state for jokes and favorites
- β‘ Tailwind CSS for a responsive, mobile-first UI
---
## π Tech Stack
- **React** (Functional Components + Hooks)
- **Zustand** for global state management
- **Tailwind CSS** for utility-first styling
- **Framer Motion** (optional for animation)
- **React Icons** for icons
---
## π§ Why It's Different
This isn't a toy app. Standup-helper is built like a **real product**:
### β
Scalable State Management
Zustand powers both the joke list and favorites with **fully isolated, reactive global state**. This means:
- Refreshing jokes from any component (like a Navbar button) works out-of-the-box
- No prop drilling
- No context hell
### β
Clean Separation of Concerns
- Components are **pure and dumb** β they just render what they're given
- Zustand stores handle all logic: fetching, appending, deduping, etc.
- Easy to plug in new features (search, pagination, infinite scroll)
### β
Designed for Growth
You can easily add:
- Joke search
- Joke categories or filters
- Routing (`/favorites`, `/about`, etc.)
- Persistent favorites via `localStorage`
- Toasts/snackbars with `react-hot-toast`
All **without breaking or refactoring anything**. Thatβs the power of modular architecture.
## βοΈ Getting Started
```bash
git clone https://github.com/turtlebeasts/standup-helper.git
cd standup-helper
npm install
npm run dev
```