shiner.app

shinersolutions.com

Front door for Shiner Solutions — bespoke software for local mom-and-pop businesses.

  • Next.js
  • React 19
  • TypeScript
  • Tailwind v4
  • shadcn/ui
  • Cloudflare Pages
  • Resend

Features

  • Fully static export — nothing to keep warm
  • Contact form → Resend, verified end to end
  • No accounts, no tracking
  • Auto-deploy via GitHub Actions
Screenshot of shinersolutions.com

The brief

Shiner Solutions needed a front door: a site that establishes credibility for bespoke software work and gets a local business owner to send a message. No accounts, no public pricing, no blog — a credibility-and-close brochure.

How it was built

  • Static export, deliberately. Next.js with output: 'export' — the whole site is prerendered HTML on Cloudflare Pages. There is nothing to keep warm, nothing to go down.
  • The contact form is the only moving part. A Cloudflare Pages Function receives the POST and relays it through Resend. Verified end to end the day it shipped.
  • Deploys via GitHub Actions — push to main, wrangler pages deploy uploads the export. A second manual workflow syncs the Resend API key into Pages secrets.

Stack notes

Next.js (App Router, static export), React 19, TypeScript strict, Tailwind v4, shadcn/ui. Apex + www on Cloudflare, domain at Cloudflare Registrar.