Back to Work
Reilly Design Studio homepage
Full-Stack PlatformNext.js 16TypeScriptTailwind CSSPrismaStripeAWS AmplifyNeon PostgreSQL

ReillyDesignStudio.com

The platform you're standing on — a full-stack business hub built from scratch in a week. Design, AI, embedded systems, and cybersecurity services under one roof.

Visit ReillyDesignStudio.com

The Story

After two decades of building embedded systems, AI platforms, and software for defense and commercial clients, it was time to hang a shingle. Reilly Design Studio LLC needed a home — not a Squarespace template with stock photos, but a real platform that could handle quotes, invoices, payments, a portfolio, a blog, a shop, and four distinct service verticals.

So I built one. In a week. With an AI assistant named Hunter helping at every step — from scaffolding the Next.js app to configuring Stripe webhooks to entering transactions in Wave.

The result is a production business platform that does everything a small studio needs: attract clients, showcase work, accept payments, and manage the back office.

Services page showing all four service verticals

Design Philosophy

Dark-first, content-forward. The zinc-950 background puts the focus on content, not chrome. Violet accents (#a78bfa) provide warmth without competing with portfolio images or service cards.

Professional but not corporate. This isn't a Fortune 500 website. It's a one-person studio that builds things — the design should feel like talking to an engineer who cares about craft, not a marketing department.

Print-ready PDFs. Quotes and invoices use a light theme — white background, dark text, violet accents — because they get emailed and printed. The @react-pdf/renderer pipeline generates branded documents server-side.

Mobile Safari first. The admin panel uses JWT sessions with plain cookie names specifically to survive Safari's Intelligent Tracking Prevention during OAuth redirects. This was a hard-won lesson.

What It Does

Four Service Verticals

Design, AI & Automation, Embedded Systems, and Cybersecurity — each with a dedicated explainer page, pricing, and Book Now buttons.

Stripe Payments

Full quote → payment → invoice flow. Customers request quotes, admin reviews and sets pricing, Stripe Checkout handles payment, webhooks update order status.

Branded PDF Generation

Server-side quote and invoice PDFs via @react-pdf/renderer. Branded with logo, tagline, and violet accents. Download from admin panel.

Portfolio & Case Studies

Featured work with real screenshots, dedicated case study pages, and a blog with technical deep-dives and thought leadership.

Google OAuth Admin

Admin panel at /admin secured with NextAuth + Google OAuth. JWT sessions with plain cookie names for mobile Safari compatibility.

Physical & Digital Shop

E-commerce ready with product listings, Stripe checkout, and S3-backed asset storage for digital downloads.

Blog Engine

In-app blog with syntax-highlighted code, tag filtering (AI, Embedded, Design), and Tailwind Typography prose styling.

Wave Bookkeeping Integration

Chart of accounts mapped to all service lines. Income and expense tracking for every revenue stream and business cost.

Tech Stack

FrameworkNext.js 16 (App Router, Server Components)
LanguageTypeScript (strict mode)
StylingTailwind CSS v4
DatabasePostgreSQL on Neon (serverless)
ORMPrisma 5
AuthNextAuth.js (Google OAuth, JWT sessions)
PaymentsStripe (Checkout, Webhooks, Invoices API)
PDF Engine@react-pdf/renderer (server-side)
StorageAWS S3 (signed URLs, private bucket)
HostingAWS Amplify (SSR, auto-deploy on push)
DNS & SSLCloudflare
EmailZoho Mail (SPF + DKIM + DMARC)
BookkeepingWave (PRO, 12 income + 36 expense accounts)
Source ControlGitHub (private repo)
CI/CDAmplify auto-build on git push (~4 min)

Site Structure

reillydesignstudio.com/
├── /                          → Homepage (hero, featured work, services, blog)
├── /portfolio                 → Work gallery
│   ├── /lucian-and-gideon     → Case study: kids coloring site
│   └── /reilly-design-studio  → Case study: this platform
├── /shop
│   ├── /services              → All 14 services + quote form
│   │   ├── /ai                → AI & Automation explainer
│   │   ├── /embedded          → Embedded Systems explainer
│   │   └── /cybersecurity     → Cybersecurity explainer
│   ├── /physical              → Physical product shop
│   └── /digital               → Digital downloads
├── /blog                      → All posts
│   ├── /embedded-board-bring-up
│   ├── /what-is-openclaw
│   └── /... (6 posts total)
├── /admin                     → Admin panel (OAuth protected)
│   ├── /quotes                → Quote management + PDF download
│   └── /invoices              → Invoice management + PDF download
├── /api
│   ├── /auth/[...nextauth]    → Google OAuth endpoints
│   ├── /quotes/[id]/pdf       → Quote PDF generation
│   ├── /invoices/[id]/pdf     → Invoice PDF generation
│   ├── /checkout              → Stripe Checkout session
│   └── /stripe/webhook        → Stripe event handler
└── /samples
    ├── sample-quote.pdf       → Example branded quote
    └── sample-invoice.pdf     → Example branded invoice

Key Architecture Decisions

App Router over Pages Router. Server Components by default means less client-side JavaScript and faster page loads. Client components are used surgically — only for forms, interactive elements, and Stripe checkout flows.

Neon PostgreSQL over SQLite. Serverless Postgres gives us real connection pooling, branching for development, and zero-downtime migrations. Prisma handles the ORM layer with type-safe queries.

JWT sessions over database sessions. Required for mobile Safari — ITP (Intelligent Tracking Prevention) blocks prefixed cookies during cross-origin OAuth redirects. Plain cookie names + JWT strategy solved this cleanly.

Amplify SSR over static export. Server-side rendering enables dynamic API routes, Stripe webhooks, and PDF generation. The tradeoff: environment variables must be written to .env.production during the build phase because Amplify's Lambda runtime doesn't propagate app-level config.

Stripe API for invoices. No local invoice model — invoices are pulled directly from Stripe's API. This keeps Stripe as the single source of truth for all payment data and avoids sync issues.

The Business Behind the Code

This isn't just a portfolio site — it's the operational backbone of a real LLC:

  • Virginia LLC — formed February 2026 (SCC Entity #11973922)
  • EIN obtained — IRS Letter 147C on file
  • Mercury Business Banking — checking and savings
  • Stripe Live — accepting real payments
  • Wave PRO Bookkeeping — 12 income accounts across 4 service verticals
  • Fairfax County BPOL — business license filed
  • Zoho Mail — professional email with SPF/DKIM/DMARC
  • Cloudflare DNS — domain management and SSL

Total setup cost: $203.91 (LLC filing + domain + email + BPOL + Wave Pro + Anthropic API)

Want a platform like this for your business?

Get a Quote