Skip to content

Repository files navigation

Assetly

A modern digital asset marketplace built with Next.js, enabling creators to sell and users to purchase digital assets securely.
Built with a scalable, production-ready architecture supporting secure authentication, seamless payments, order management, and seller monetization.

🌐 Live Demo: https://assetlyapp.vercel.app


✨ Features

  • 🔐 Authentication & Authorization

    • Secure authentication with NextAuth (Auth.js v5)
    • Protected routes for checkout, dashboard, and seller actions
    • Role-based access (Buyer / Seller)
  • 🛒 Asset Marketplace

    • Browse, purchase, and download digital assets
    • Free and paid asset support
    • Add assets to cart or purchase directly
  • 💳 Payments

    • Stripe integration for secure checkout
    • Order is finalized only after successful payment
    • Order lifecycle: PENDING -> PAID
  • 📊 Seller Dashboard

    • Earnings overview
    • Sales count tracking
  • 🎨 Modern UI

    • Material UI (MUI v7)
    • Fully responsive design
    • Optimized for desktop & mobile

🛡️ Testing & Observability

  • Unit & service tests using Vitest
  • Full end-to-end testing with Playwright (purchase flow)
  • CI-based regression testing via GitHub Actions
  • Production error monitoring and observability using Sentry

🧱 Tech Stack

Frontend

  • Next.js 16
  • React 19
  • Material UI
  • Zustand
  • React Hook Form + Zod

Backend

  • Next.js Server Actions
  • Prisma ORM
  • PostgreSQL
  • Supabase (storage / infra)

Auth & Payments

  • NextAuth (Auth.js v5)
  • Stripe

Testing

  • Vitest
  • Playwright

Monitoring

  • Sentry

DevOps & Deployment

  • GitHub Actions
  • Vercel

🚀 Getting Started

1️. Clone the Repository

git clone https://github.com/iankitkd/assetly.git  
cd assetly

2. Install Dependencies

npm install

3. Environment Variables

Create a .env file in the root directory:

AUTH_SECRET=your_auth_secret

DATABASE_URL=your_database_url

AUTH_GOOGLE_ID={CLIENT_ID}
AUTH_GOOGLE_SECRET={CLIENT_SECRET}

NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
SUPABASE_SECRET_KEY=your_supabase_secret_key

STRIPE_SECRET_KEY=your_stripe_secret_key
STRIPE_WEBHOOK_SECRET=your_stripe_webhook_secret

NEXT_PUBLIC_APP_URL=http://localhost:3000

4. Database Setup

npx prisma generate  
npx prisma migrate dev

5. Running the App

npm run dev

Visit: http://localhost:3000


📄 License

This project is licensed under the MIT License.

About

A modern digital asset marketplace enabling creators to sell and users to purchase digital assets securely.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages