vue-jokes-app Tailwind Templates

Vue Jokes App

A joke discovery and collection app built with Vue 3 and Tailwind CSS.

Joke Collection App

A Vue 3 app that lets users fetch, view, and manage their favorite jokes β€” with category switching, localStorage persistence, star ratings, filtering, sorting, and discreet punchline effects.

Live Demo

πŸ‘‰ Joke Collection App

Features

  • Fetch random or programming jokes via API
  • Reveal/hide punchlines
  • Add/remove jokes from favorites
  • localStorage persistence for favorites
  • Star rating system (1–5 ⭐)
  • Search through favorites
  • Filter favorites by rating
  • Sort favorites alphabetically or by rating
  • Display statistics (total + average rating)
  • Fully responsive UI (TailwindCSS)
  • Hover-to-reveal punchlines in favorites

Tech Stack

API

This project uses the Official Joke API by 15Dkatz.

Setup Instructions

  1. Clone the repo:
git clone https://github.com/Raulanthropos/vue-jokes-app.git
cd vue-jokes-app
  1. Install dependencies:
npm install
  1. Run the development server:
npm run dev
  1. Open in browser:
    http://localhost:5173

Folder Structure

β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ JokeCard.vue
β”‚   β”‚   └── FavoritesList.vue
β”‚   β”œβ”€β”€ composables/
β”‚   β”‚   └── useJokes.js
β”‚   β”œβ”€β”€ App.vue
β”‚   └── main.js
β”œβ”€β”€ tailwind.config.js
└── index.html

Notes

  • All joke data is fetched from Official Joke API.
  • This project is built using the Composition API.
  • localStorage is used to persist your favorites even after a refresh or revisit.
  • Although I’m familiar with TypeScript, I chose not to use it in this project as I haven’t worked with it recently.

Top categories

Loading Svelte Themes