Skip to content

spencerlepine/swagsticker.com

Repository files navigation

SwagSticker.com Repo Status Badge

Full-stack e-commerce store for developer laptop stickers. Automated with dropshipping

SwagSticker.Demo.Final.mp4

🎯 Project Overview

  • Developed an autonomous, full-stack e-commerce store using Next.js and TypeScript, supporting automated dropshipping via Printify SDK
  • Implemented passwordless authentication using JSON Web Tokens (JWT) for a secure, seamless checkout experience
  • Integrated Stripe SDK with embedded payment forms and Webhooks for secure, automated payment processing, including bot detection for fraud prevention
  • Enhanced page load speed and SEO with server-side rendering, achieving sub-2.5s initial load times
  • Scaled to handle 1,500+ monthly active users, supporting up to 50 requests per second during peak traffic
  • Conducted load tests to validate system reliability, achieving a >95% success rate with P90 response times between under 300 ms

πŸ› οΈ Built With

  • Framework: Next.js (React), TailwindCSS
  • Language: TypeScript
  • Third-Party: Stripe SDK (payments), Printify SDK (dropshipping)
  • Hosting: Vercel, Amazon Route53

⭐️ Features

Onboarding Feature Authenticate with convenient and secure email-only login.

Catalog Feature Browse the catalog, filter by category, and sort.

View Product FeatureAdd item to cart, proceed to checkout.

Checkout Feature Place order and checkout with secure embedded Stripe form, optimized for conversions.

Account Page Feature View orders, download receipts, and track shipping status.

πŸ—οΈ System Diagram

SwagSticker.com system diagram

πŸ’» Local Development

Prerequisites

  • Node.js installed on your machine (download here)
  • Stripe developer account (+ API keys)
  • stripe-cli ($ brew install stripe/stripe-cli/stripe)
  • Whitelisted endpoints for Stripe webhook (https://website.com/api/v1/webhook/checkout)
  • Printify developer account (+ API keys)

Installation

git clone https://github.com/spencerlepine/swagsticker.com
cd swagsticker.com
cp .env.template .env.development
npm install

Run Locally

stripe login
stripe listen --forward-to localhost:3000/api/v1/webhook/checkout
# *open separate terminal*

npm run dev
# visit http://locahost:3000

πŸ‹ Docker

Local Docker Container

stripe login
stripe listen --forward-to localhost:3000/api/v1/webhook/checkout
# *open separate terminal*

cp .env.template .env.production
docker-compose -f ./docker/docker-compose.dev.yml --env-file .env.production up --build
# visit http://locahost:3000

Production Docker Build

cp .env.template .env.production
docker-compose -f ./docker/docker-compose.prod.yml --env-file .env.production up --build
# visit http://localhost

License

GNU General Public License v3.0 or later

See COPYING to see the full text.

About

E-commerce store for developer laptop stickers πŸ›’ πŸ’»

Topics

Resources

License

Stars

Watchers

Forks

Languages