This is my personal portfolio/website
Samuel, Doghor - website
Blog Admin Page - website
Blog Admin Repo - repo
Built with Vite-React, TailwindCSS and hosted frontend, backend & Database with Vercel.
Marketplace files are kept in a private S3 bucket and are never placed in public/, Git, or the browser bundle. The included Vercel functions verify Paystack payments and return a presigned S3 URL that expires after 15 minutes.
Set the variables in .env.example in the Vercel project settings. Use a dedicated AWS IAM user or role with only s3:HeadObject and s3:GetObject access to the marketplace bucket. Keep PAYSTACK_SECRET_KEY, AWS credentials, and S3 object keys server-side; do not prefix them with VITE_.
Upload each product as one protected bundle, for example:
marketplace/wellhead-model/v1/wellhead-model.zip
The bundle can contain multiple formats such as .sldprt, .step, .nwd, .dwg, .dxf, and documentation. Add the product to src/marketplaceProducts.js, then configure its matching PRODUCT_<ID>_S3_KEY environment variable.
Inspired by Segun Adebayo
