Simon-Pierre Boucher
All apps & projects
Web Platform
TypeScript

spboucher.ai

Where research meets shipped software

The personal site of Simon-Pierre Boucher — financial econometrics researcher and macOS/AI developer — presenting his research, teaching, and the six-app Zyquo suite.

6

Zyquo macOS apps showcased

5

content sections

16

Next.js version

100%

static prerendering

Overview

spboucher.ai is the academic and developer home of Simon-Pierre Boucher, Professor in the Department of Administrative Sciences at Université du Québec en Outaouais. The site presents his research in financial econometrics — commodity markets, monetary policy announcements, high-frequency finance, volatility modelling — alongside his teaching record and a portfolio of native macOS applications.

Built on Next.js 16 with the App Router, the site uses server components everywhere with static prerendering on every page. Tailwind CSS v4 and shadcn/ui-style components deliver a clean academic aesthetic with a developer edge; Framer Motion adds subtle scroll reveals that respect prefers-reduced-motion and degrade gracefully without JavaScript.

The site is self-hosted with character: it runs on a Mac Studio node of the author's personal cluster under PM2 process management, tunneled to the world through ngrok on the custom domain — production build only, with a JSON health endpoint for uptime monitoring.

Key Features

Server components everywhere

Next.js 16 App Router with static prerendering on every page; client components only where interactivity genuinely requires them.

System-aware dark mode

Dark mode follows the system with a manual toggle and no flash on load, themed through Tailwind v4 design tokens.

Motion with restraint

Framer Motion scroll reveals honor prefers-reduced-motion and fall back cleanly when JavaScript is disabled.

Zyquo app portfolio

Six native macOS AI apps — Cloud, Local, Agent, Atlas, MLX, Router — each with icon, description, and Repo/Release/DMG download links.

Full academic profile

Research publications, working papers, conference presentations, and courses taught at Université Laval, in dedicated sections.

Accessible by design

Semantic HTML, alt text on all app icons, keyboard-friendly navigation, and a mobile-first responsive 1/2/3-column grid.

Self-hosted on a Mac

Runs on a personal cluster node under PM2 with auto-restart, exposed through an ngrok tunnel bound to the custom domain.

Health monitoring

A dedicated GET /api/health JSON endpoint enables uptime monitoring of the production deployment.

How It Works

  1. App Router pages

    Five routes — home, research, teaching, apps, CV — rendered as server components with static prerendering, plus a JSON health API route.

  2. Single source of truth for apps

    The Zyquo suite data lives in one lib/apps.ts module that drives the app cards — icons, descriptions, and the three canonical links per app.

  3. Production deployment

    The production build runs under PM2 on cluster node m2u64, port 3100, with a second PM2 process holding the ngrok tunnel to www.spboucher.ai.

Tech Stack

Framework

Next.js 16 (App Router)
React 19
TypeScript 5

UI

Tailwind CSS 4
shadcn/ui-style components
Framer Motion 12

Operations

PM2
ngrok
Health endpoint

Highlights

  • Served from a Mac, tunneled to the world: the site runs on the author's personal Apple Silicon cluster, not a commercial cloud.
  • Showcases the Zyquo suite — six native Swift/SwiftUI macOS apps for AI and local LLMs, each with direct DMG downloads.
  • Every source file carries a mandatory author header, enforced as a project convention.
  • Framer Motion animations degrade gracefully: prefers-reduced-motion respected and no-JS fallbacks in place.
  • Both processes — app and tunnel — run under PM2 with save/restore, making the deployment survive reboots.

Explore spboucher.ai

This website — the full source is on GitHub.