Fast, secure, and easy to use - just one click away π«
- WebP Converter: Convert PNG/JPG images to WebP format with customizable quality
- Background Remover: Remove image backgrounds with AI-powered precision
- Translator: Translate text with DeepL's powerful AI engine
- Base64 Encoder/Decoder: Encode and decode Base64 strings
- UUID Generator: Generate UUIDs v4 and v7
- Lorem Ipsum Generator: Generate placeholder text with custom word/character count
- And more tools coming soon!
- 9 Color Themes: Choose from cyan, lime, amber, blue, emerald, fuschia, indigo, orange, and pink
- Dark/Light Mode: Seamless theme switching
- Pinnable Modules: Pin your favorite tools for quick access
- Responsive Design: Works on all devices
- Framework: Next.js 16 (React 19)
- Language: TypeScript
- Styling: Tailwind CSS 4
- UI Components: shadcn/ui
- Authentication: Better Auth
- Database: PostgreSQL with Prisma
- API: tRPC
- Deployment: Vercel
- Node.js 20+ and pnpm
- PostgreSQL database (see setup options below)
- API keys (optional, only needed for specific features):
- DeepL API for translation module
- Remove.bg API for background remover module
- User authentication features
- Dashboard pinning system
- User preferences
If you need a database, choose one option:
Option 1: Docker (Recommended - Easiest)
docker run --name adatools-db \
-e POSTGRES_PASSWORD=postgres \
-e POSTGRES_DB=adatools \
-p 5432:5432 \
-d postgres:16
# Your DATABASE_URL will be:
# postgresql://postgres:postgres@localhost:5432/adatoolsOption 2: Local PostgreSQL
# Install PostgreSQL on your system
# macOS: brew install postgresql
# Ubuntu: sudo apt install postgresql
# Windows: Download from postgresql.org
# Create database
createdb adatools
# Your DATABASE_URL will be:
# postgresql://yourusername@localhost:5432/adatoolsOption 3: Free Cloud Database
- User authentication features
- Dashboard pinning system
- User preferences
GitHub OAuth:
- Go to https://github.com/settings/developers
- Click "New OAuth App"
- Application name:
AdaTools Dev - Homepage URL:
http://localhost:3000 - Authorization callback URL:
http://localhost:3000/api/auth/callback/github - Copy the Client ID and Client Secret to your
.env
-
Clone the repository
git clone https://github.com/SLcode777/AdaTools.git cd AdaTools -
Install dependencies
pnpm install
-
Set up environment variables
Create a
.envfile in the root directory:# Database (Optional) DATABASE_URL="postgresql://user:password@localhost:5432/adatools" # Better Auth (Optional) BETTER_AUTH_SECRET="your-secret-key-here" BETTER_AUTH_URL="http://localhost:3000" # OAuth (Optional) GITHUB_CLIENT_ID="your-github-client-id" GITHUB_CLIENT_SECRET="your-github-client-secret" GOOGLE_CLIENT_ID="your-google-client-id" GOOGLE_CLIENT_SECRET="your-google-client-secret" # API Keys (Optional) DEEPL_API_KEY="your-deepl-api-key" REMOVE_BG_API_KEY="your-removebg-api-key"
-
Set up the database
pnpm prisma generate pnpm prisma db push
-
Run the development server
pnpm dev
-
Open http://localhost:3000 in your browser
| Feature | Database + Auth | API Keys | Notes |
|---|---|---|---|
| WebP Converter | β No | β No | Works standalone |
| Base64 Encoder | β No | β No | Works standalone |
| UUID Generator | β No | β No | Works standalone |
| Lorem Ipsum | β No | β No | Works standalone |
| Translation Module | β No | β DeepL* | *Can use env variable instead of user-saved key |
| Background Remover | β No | β Remove.bg* | *Can use env variable instead of user-saved key |
| User Dashboard | β Yes | β No | Only needed for testing pinning/preferences |
| API Key Management | β Yes | β No | Only needed for testing user API key storage |
For most development, you can work on:
- All modules (UI, features, fixes)
- New modules
- Landing page
- General improvements
You only need Database + Auth if you're working on:
- User authentication flow
- Dashboard pinning system
- User preferences storage
- Per-user API key management
AdaTools/
βββ app/ # Next.js app router
β βββ api/ # API routes
β βββ themes/ # Color theme CSS files
β βββ page.tsx # Landing page
βββ components/
β βββ dashboard/ # Dashboard components
β βββ layout/ # Layout components (header, footer)
β βββ modules/ # Tool modules
β βββ ui/ # Reusable UI components (shadcn)
βββ src/
β βββ contexts/ # React contexts
β βββ lib/ # Utilities and configurations
β βββ server/ # tRPC server and routers
βββ prisma/
β βββ schema.prisma # Database schema
βββ public/ # Static assets
-
Create a new component in
components/modules/:// components/modules/your-tool-module.tsx "use client"; import { Module } from "../dashboard/module"; interface YourToolModuleProps { isPinned?: boolean; onTogglePin?: () => void; isAuthenticated: boolean; onAuthRequired: () => void; } export function YourToolModule({ isPinned, onTogglePin, isAuthenticated, onAuthRequired, }: YourToolModuleProps) { return ( <Module title="Your Tool" description="Tool description" icon={<YourIcon className="h-5 w-5 text-primary" />} isPinned={isPinned} onTogglePin={onTogglePin} isAuthenticated={isAuthenticated} onAuthRequired={onAuthRequired} > {/* Your tool UI here */} </Module> ); }
-
Add it to the modules registry in
src/contexts/modules-context.tsx -
If your tool needs server-side processing, create a tRPC router in
src/server/api/routers/
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
See CONTRIBUTING.md for more details.
This project is licensed under the MIT License - see the LICENSE file for details.
- shadcn/ui for the beautiful UI components
- Lucide for the icons
- All the amazing open source libraries that make this project possible
- For the pomodoro sounds, see Pomodoro-sounds-attribution.md for author credits
For questions or suggestions, reach out at: sl.code.777@gmail.com
- More developer tools
- Drag and Drop the modules to organize them freely on the dashboard
- Rework the UI for modules exploration
- Add a searchbar to easily find modules
- Tool usage analytics