EazyKash is a Next.js 13 application built with the App Router that provides a simple interface for sending payments, managing recipients, and handling user profiles. Authentication and database/storage are powered by Supabase. The project is structured with clean components and API routes to keep the frontend and backend logic organized.
- Email/password authentication via Supabase
- Payouts: create transactions to external payment providers
- Recipient management: save and resolve recipient accounts
- Profile settings: update user-specific preferences
- Payments history and success/error handling
- Modular React components with Tailwind CSS
- Server-side logic contained within
app/apiroutes
- Node.js 18+ (or compatible with Next.js)
- npm, yarn, pnpm or bun
- Supabase project (for auth, database, storage)
- Environment variables (see below)
# clone repository
git clone https://github.com/CodewithMiguelll/eazykash.git
cd eazykash
# install dependencies
npm install
# or yarn install
# or pnpm installCopy the example and fill with your credentials:
cp .env.example .env.localYou will need:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEY(server only)- any other API keys for your payment provider
Start the development server:
npm run devOpen http://localhost:3000 in your browser.
npm run build
npm startOr deploy using Vercel, Netlify, or any Next.js-compatible platform.
src/
app/ # Next.js App Router pages & layouts
api/
payout/route.ts # handles payout creation
resolve-account/route.ts # resolves recipient account info
auth/ # login UI & callback
payments/ # payment pages & layouts
profile/ # user profile and settings
about/ # informational pages
components/ # reusable React components
lib/ # shared helpers (e.g. utils.ts)
utils/supabase # client/server wrappers
Auth is managed using Supabase's built-in OAuth/Email flows in src/utils/supabase/client.ts and server.ts. The login page triggers a redirect to the Supabase auth endpoint, and auth/callback/route.ts processes the returned session.
POST /api/payout→ create a new payoutGET/POST /api/resolve-account→ lookup recipient info
Server routes validate requests, interact with external payment providers, and insert records into Supabase.
- Use
CountUpcomponent for animated numbers - The
payment-form.tsxcomponent is the main form used on the payments page profile-sidebar.tsxcontains navigation for profile subpages- Tailwind CSS classes are used throughout; adjust in
globals.cssorpostcss.config.mjs
Note: EazyKash is not an open source project. Contributions are not being accepted at this time. The repository is intended for internal use only.
This repository is private and not distributed under an open source license. Refer to internal documentation or contact the project owner for licensing information.
Happy coding!