Skip to content
View shakilkhan496's full-sized avatar
🟢
Available
🟢
Available

Block or report shakilkhan496

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
shakilkhan496/README.md

Profile views

Hi there 👋, I’m Shakil Khan

Typing intro

GitHub followers Public repos Following Stripe


🧭 About Me

  • 🚀 I build fast, accessible web & mobile experiences.
  • 🧩 I focus on clean architecture, great DX, and scalable systems.
  • 🌱 Exploring advanced Next.js (App Router, RSC, caching) + testing.
  • 🤝 Open to freelance & collaboration on React / Next.js / Node projects.
  • 💳 Stripe integration expert — subscriptions, one‑time payments, and Stripe Connect (Standard/Express/Custom) set up seamlessly.

🛠 Tech Stack

Languages & Frameworks

Tools & Platforms

What I use day-to-day
  • Frontend: React 18, Next.js (App Router), Tailwind, Redux Toolkit
  • Backend: Node.js, Express, REST (with OpenAPI), JWT
  • DB & Infra: MongoDB (Mongoose), Vercel, CI/CD (GitHub Actions)
  • Quality: ESLint, Prettier, Vitest/Jest, Playwright

💳 Payments & Stripe

Stripe API Stripe Checkout Subscriptions Stripe Connect

  • Subscriptions: products/prices, free trials, proration, metered billing, customer portal.
  • One‑time payments: Checkout, Payment Element, promo codes, taxes, invoices.
  • Stripe Connect: Standard/Express/Custom, onboarding, payouts, destination/transfer charges.
  • Webhooks & Reliability: signature verification, idempotency keys, retry‑safe flows.
  • Compliance: SCA-ready, PCI‑compliant flows via Elements/Checkout.
Quick demo code (Node/Next.js)
// /app/api/checkout/route.ts – one-time payment
import Stripe from 'stripe';
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!, { apiVersion: '2024-06-20' });

export async function POST() {
  const session = await stripe.checkout.sessions.create({
    mode: 'payment',
    line_items: [{ price: process.env.STRIPE_PRICE_ONE_TIME!, quantity: 1 }],
    success_url: `${process.env.NEXT_PUBLIC_URL}/success?session_id={CHECKOUT_SESSION_ID}`,
    cancel_url: `${process.env.NEXT_PUBLIC_URL}/cancel`,
  });
  return Response.json({ url: session.url });
}
// /app/api/subscribe/route.ts – subscription
export async function POST() {
  const session = await stripe.checkout.sessions.create({
    mode: 'subscription',
    line_items: [{ price: process.env.STRIPE_PRICE_SUBSCRIPTION!, quantity: 1 }],
    allow_promotion_codes: true,
    success_url: `${process.env.NEXT_PUBLIC_URL}/dashboard`,
    cancel_url: `${process.env.NEXT_PUBLIC_URL}/pricing`,
  });
  return Response.json({ url: session.url });
}
// /app/api/connect/onboard/route.ts – Connect Express onboarding link
export async function GET() {
  const account = await stripe.accounts.create({ type: 'express' });
  const link = await stripe.accountLinks.create({
    account: account.id,
    refresh_url: `${process.env.NEXT_PUBLIC_URL}/onboarding/refresh`,
    return_url: `${process.env.NEXT_PUBLIC_URL}/onboarding/return`,
    type: 'account_onboarding',
  });
  return Response.json({ url: link.url });
}
// /app/api/webhooks/stripe/route.ts – webhook (Edge-disabled for crypto libs)
import { headers } from 'next/headers';
export async function POST(req: Request) {
  const sig = headers().get('stripe-signature')!;
  const raw = await req.text();
  let event;
  try {
    event = stripe.webhooks.constructEvent(raw, sig, process.env.STRIPE_WEBHOOK_SECRET!);
  } catch (err) {
    return new Response('Invalid signature', { status: 400 });
  }
  // handle event.type ...
  return new Response('ok');
}

📈 Live Stats & Charts

GitHub stats Contribution streak

Commits (YTD) Contributions (YTD, incl. private)

Top languages

Activity Graph

Profile details

Repos per language Most commit language

Stats card Productive time (UTC+6)

Metrics overview


🏆 Achievements & Fun

GitHub trophies

Snake animation


📝 Quote of the Day

Quote


📫 Connect


🚀 Let’s build, monetize, and scale with Stripe & Next.js!

Pinned Loading

  1. mobiShop-client-app mobiShop-client-app Public

    Used product selling website

    JavaScript

  2. mobiShop-server mobiShop-server Public

    JavaScript

  3. tap-skills-client tap-skills-client Public

    JavaScript

  4. tap-skills-server tap-skills-server Public

    JavaScript

  5. jacks-photography-client jacks-photography-client Public

    JavaScript

  6. jacks-photography-server jacks-photography-server Public

    JavaScript