Web Development, Blockchain & Design Studio - A crew that operates together. Production-ready Next.js 15 landing page with enterprise-grade security, email integration, and performance optimization.
pnpm install
cp .env.example .env.local
pnpm dev- Framework: Next.js 15.5.9 (App Router)
- Runtime: React 19
- Language: TypeScript 5 (Strict mode)
- Styling: Tailwind CSS 3.4.1
- Animations: Framer Motion 11.15.0
- Email: Resend 6.8.0
- Security: Custom server-side sanitization
- Validation: Zod 3.24.1
- Forms: react-hook-form 7.54.2
- Email Service Integration - Resend API with beautiful HTML emails
- Input Sanitization - DOMPurify prevents XSS attacks
- Security Headers - CSP, HSTS, X-Frame-Options, and more
- ARIA Accessibility - Live regions for screen readers
- Structured Data - JSON-LD schema for SEO
- Responsive Design - Mobile-first with desktop enhancements
- Performance Optimized - GPU acceleration, lazy loading, reduced motion support
- Framer Motion animations with
prefers-reduced-motionsupport - Dark glass morphism design system
- Sticky scroll experiences
- Mobile carousels with swipe gestures
- Form validation with Zod & React Hook Form
- Ultra-dark aesthetic with subtle opacity design
cp .env.example .env.local- Sign up at resend.com
- Verify your domain or use
onboarding@resend.devfor testing - Create an API key
- Add to
.env.local:RESEND_API_KEY=re_your_api_key_here CONTACT_EMAIL=hello@jointops.dev
Cost: Free (100 emails/day)
NEXT_PUBLIC_SITE_URL=http://localhost:3000
NODE_ENV=development/app
/api/contact # Contact form API endpoint
layout.tsx # Root layout with metadata
page.tsx # Homepage
sitemap.ts # SEO sitemap
robots.ts # Robots.txt
/components
/sections # Page sections (Hero, Services, Contact, etc.)
/ui # Reusable UI components
/icons # SVG icon components
/layout # Header, Footer, Menu
StructuredData.tsx # JSON-LD schema
/lib
/content # Content configuration (site-content, services, team)
/context # React contexts (service-focus for URL targeting)
/hooks # Custom hooks for targeted content
animations.ts # Framer Motion variants
fonts.ts # Font configuration
performance.ts # Device tier detection
utils.ts # Utility functions
validations.ts # Zod schemas
/hooks # Custom React hooks
/constants # Static data (services, metrics, etc.)
/types # TypeScript type definitions
pnpm devpnpm buildpnpm startpnpm lintSubmit a contact form message.
Request:
{
"name": "John Doe",
"email": "john@example.com",
"message": "I need help building a DeFi protocol..."
}Response (200 OK):
{
"success": true
}Errors:
400- Validation error415- Invalid Content-Type500- Server error
- Input Sanitization - Server-side HTML stripping
- Content-Type Validation - Rejects non-JSON requests
- Zod Schema Validation - Type-safe form validation
- Security Headers:
- Content-Security-Policy
- Strict-Transport-Security (HSTS)
- X-Frame-Options: DENY
- X-Content-Type-Options: nosniff
- Referrer-Policy: origin-when-cross-origin
- Permissions-Policy
- CSRF Protection (no cookies/sessions)
- Authentication (public landing page)
- Database (emails sent directly)
- LCP (Largest Contentful Paint): < 2.5s
- FID (First Input Delay): < 100ms
- CLS (Cumulative Layout Shift): < 0.1
- Server-side rendering (SSR)
- Static generation where possible
- GPU-accelerated animations
- Lazy loading with viewport detection
- Font display swap
- Minimal JavaScript (336 KB First Load JS)
- WCAG 2.1 AA Compliant
- ARIA live regions for form status
- Keyboard navigation support
- Skip to content link
- Focus management
- Screen reader friendly
prefers-reduced-motionsupport- 44px+ touch targets
- Ultra-subtle borders:
white/[0.06]towhite/[0.12] - Frosted glass effects:
backdrop-blur-xl,bg-white/[0.02] - Minimal text opacity:
white/30,white/40,white/60 - Slow transitions: 500ms for premium feel
- Pulsing rings with scale and opacity transforms
- Rotating gradients (360 shimmer effects)
- Bouncing elements with y-axis animation
- Entrance/exit with rotation and scale
- Custom cubic-bezier easing:
[0.16, 1, 0.3, 1]
-
Install Vercel CLI:
npm i -g vercel
-
Login:
vercel login
-
Deploy:
vercel --prod
-
Set environment variables in Vercel Dashboard:
- Project Settings > Environment Variables
- Add all variables from
.env.local
- All environment variables configured
- Resend domain verified
- Local build passes:
pnpm build - Contact form tested
- Homepage Loads - Visit https://jointops.dev
- Contact Form - Submit test message, check email
- Security Headers - Run
curl -I https://jointops.dev - SEO - Visit https://jointops.dev/sitemap.xml
- Structured Data - Test at https://search.google.com/test/rich-results
- Check
RESEND_API_KEYis set - Verify domain in Resend dashboard
- Check console for error messages
- Use
onboarding@resend.devfor testing
rm -rf .next
rm -rf node_modules pnpm-lock.yaml
pnpm install
pnpm buildUpdate CSP in next.config.js:
"connect-src 'self' https://your-domain.com"- Contact form submission (happy path)
- Contact form validation errors
- Email delivery (check inbox and spam)
- Mobile responsiveness
- Keyboard navigation
- Screen reader (VoiceOver/NVDA)
- Reduced motion preference
| Service | Free Tier | Paid Tier | Monthly Cost |
|---|---|---|---|
| Vercel | 100GB bandwidth | Pro: Unlimited | $20/month |
| Resend | 100 emails/day | 10K emails/month | $20/month |
Total: $0/month (free tiers) or $40/month (paid tiers)
- Review contact form submissions
- Monitor performance (Vercel Analytics)
- Update dependencies:
pnpm update --interactive - Review security headers
- Run PageSpeed audit
- Check SSL certificate expiry
Proprietary - All rights reserved by JointOps
For issues or questions:
- Email: hello@jointops.dev
- Website: https://jointops.dev
JointOps — A crew that operates together.