A collection of focused utilities implemented as a modern Next.js application using the app router with TypeScript and
Tailwind CSS.
Built with composable UI primitives (Radix + shadcn/ui), the project organizes converters, calculators and utilities
into reusable components and routes for easy extension.
Provides PWA/service worker support, light/dark theming, and small server/client actions (ex: get-ip, get-jokes) to
power practical utilities.
Demo: https://utilities-webapp.vercel.app/
- Framework: Next.js (app router) — v16.x (see
package.json) - Language: TypeScript + React — React v19.x
- Styling: Tailwind CSS
- UI primitives: Radix UI + shadcn/ui
- Package manager: pnpm (recommended)
src/app— Next.js app routes and pages (converters, calculators, utilities, about, etc.)src/components— shared UI and feature components (converters, calculators, utilities subcomponents)src/lib— utilities and helperssrc/actions— small server/client actions used by pages (examples:get-ip,get-jokes)
- Converters: bytes, length, mass, speed, temperature, time
- Calculators: General, BMI, Dates, GCF/LCM, Percentage, Rule of Three
- Utilities: Character Counter, Lorem Ipsum, Password Generator(random, memorable, pin), QR Code Generator, Roman Converter, Text to Speech, URL Slug Generator
- Programming Utilities: Image to Base64
- Light/dark theme switching (
next-themes) - Responsive layout with accessible UI primitives (Radix + custom shadcn/ui components)
- Project built with modern tooling: Next.js, TypeScript, Tailwind and ESLint/Prettier
- Service Worker for offline support (experimental) and PWA features (workbox)
MORE TO COME...
-
Clone the repository
git clone https://github.com/Barata-Ribeiro/utilities_webapp.git cd utilities_webapp -
Install dependencies (pnpm is recommended)
pnpm install
-
Run the development server
pnpm run dev
pnpm run dev— start Next.js in development (uses Turbopack by default)pnpm run build— build for production (uses Turbopack where supported)pnpm run start— start built production serverpnpm run lint— run ESLintpnpm run typecheck— run TypeScript type checkerpnpm run format:write— run Prettier to format filespnpm run format:check— check formatting with Prettier
- Routes are implemented under
src/app(Next.js app router). Static files (icons, manifest) live in thepublic/directory. - The project uses pnpm as the package manager (see
packageManagerinpackage.json). Thepnpmfield inpackage.jsonalso contains a list of overrides and workspace settings.
- Ensure you have Node.js and pnpm installed. Recommended pnpm version: the one declared in
package.json([email protected]) but newer pnpm releases are usually compatible. - Run
pnpm installandpnpm run devand capture terminal output when filing reproducible issues.
Contributions are welcome. Open an issue to discuss larger changes before preparing a pull request. Keep changes small and add descriptions/tests where appropriate.
Feel free to contact me with any questions or if you are interested in collaborating on a project.
This project is free software available under the GPLv3 license.