A modern, progressive web application designed to help users expand their vocabulary through daily word discovery, idioms, and jokes. Built with Next.js and featuring a beautiful, responsive interface with offline capabilities.
Random Vocabulary provides users with:
- 10 unique words daily with comprehensive definitions, pronunciations, and etymology
- Curated idioms with cultural context and usage patterns (in development)
- Witty jokes showcasing the playful side of language
- Progressive Web App functionality for offline access (in development)
- Responsive design optimized for all devices
| Technology | Version | Purpose |
|---|---|---|
| Next.js | 15.3.4 | React framework with App Router |
| React | 19.1.0 | Frontend library |
| TypeScript | 5.8.3 | Type-safe development |
| Tailwind CSS | 4.1.11 | Utility-first styling |
| Node.js | 20+ | Runtime environment |
- Daily rotation of 10 carefully selected words
- Comprehensive definitions with examples
- Etymology and word origins
- Installable on mobile and desktop
- Offline functionality
- Fast loading with optimized performance
- Native app-like experience
- Mobile-first approach
- Tablet and desktop optimized
- Accessible color schemes
- Smooth animations and transitions
Ensure you have the following installed:
node --version # v20.0.0 or higher
npm --version # v9.0.0 or higher
# OR
pnpm --version # v8.0.0 or higher (recommended)-
Clone the repository
git clone https://github.com/username/vocabulary.git cd vocabulary -
Install dependencies
# Using pnpm (recommended) pnpm install # Using npm npm install
-
Start the development server
# Using pnpm pnpm dev # Using npm npm run dev
-
Open your browser Navigate to http://localhost:3000
# Build the application
pnpm build
# Start production server
pnpm startvocabulary/
βββ app/ # Next.js App Router
β βββ api/ # API routes
β β βββ jokes/ # Jokes API endpoints
β β βββ vocabulary/ # Vocabulary API endpoints
β βββ idioms/ # Idioms page
β βββ jokes/ # Jokes page
β βββ vocabulary/ # Vocabulary page
β βββ globals.css # Global styles
β βββ layout.tsx # Root layout
β βββ manifest.ts # PWA manifest
β βββ page.tsx # Home page
βββ components/ # Reusable components
β βββ icons/ # Icon components
β βββ Footer.tsx # Footer component
β βββ Navbar.tsx # Navigation component
β βββ PWAInstaller.tsx # PWA installation prompt
βββ public/ # Static assets
βββ package.json # Dependencies and scripts
The application integrates with external APIs:
- Dictionary API:
https://api.dictionaryapi.dev/api/v2/entries/en/{word} - Random Words API:
https://random-word-api.herokuapp.com/word - Jokes API:
https://official-joke-api.appspot.com/
We welcome contributions to improve Daily Vocabulary! Here's how you can help:
-
Fork the repository on GitHub
-
Clone your fork locally
git clone https://github.com/yourusername/vocabulary.git cd vocabulary -
Add the upstream remote
git remote add upstream https://github.com/originalowner/vocabulary.git
-
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes
- Follow the existing code style
- Add TypeScript types for new features
- Test your changes thoroughly
-
Commit your changes
git add . git commit -m "feat: add your feature description"
-
Push to your fork
git push origin feature/your-feature-name
-
Create a Pull Request
- Go to your fork on GitHub
- Click "New Pull Request"
- Provide a clear description of your changes
- Code Style: Follow the existing TypeScript and React patterns
- Commits: Use conventional commit messages (
feat:,fix:,docs:, etc.) - Testing: Ensure your changes don't break existing functionality
- Documentation: Update README if adding new features
- Responsive Design: Ensure new UI elements work on all screen sizes
- New Features: Additional language learning tools
- UI/UX Improvements: Enhanced user interface elements
- Performance: Optimization and loading improvements
- Accessibility: WCAG compliance improvements
- Testing: Unit and integration test coverage
- Documentation: API documentation and user guides
# Start development server with Turbopack
pnpm dev
# Build for production
pnpm build
# Start production server
pnpm start
# Run linting
pnpm lint- Chrome/Edge: 90+
- Firefox: 88+
- Safari: 14+
- Mobile browsers: iOS Safari 14+, Chrome Mobile 90+
This project is open source and available under the MIT License.
- Dictionary API for comprehensive word definitions
- Official Joke API for humor content
- Random Words API for vocabulary generation
- Tailwind CSS for the beautiful design system
- Next.js team for the excellent framework
Built with care for language learners worldwide