Skip to content

Latest commit

 

History

262 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Parametric Memory — Website

Commercial website, documentation, and developer portal for Parametric Memory.

Stack

  • Framework: Next.js 16 (App Router, TypeScript)
  • Styling: Tailwind CSS + Framer Motion
  • Payments: Stripe Checkout
  • Docs: MDX, auto-generated from MMPM source
  • Hosting: Docker + Nginx on DigitalOcean (SSH hardened, key-only access)

Development

npm install
cp .env.example .env.local
# Fill in your keys in .env.local
npm run dev

Scripts

Command Description
npm run dev Start development server
npm run build Production build
npm run lint ESLint check
npm run typecheck TypeScript check
npm run test Run tests (Vitest)
npm run format Auto-fix formatting with Prettier
npm run format:check Check formatting without fixing
npm run preflight Run all CI checks locally before pushing
npm run generate-docs Regenerate docs from MMPM source

Deployment

Pushes to main trigger automatic deployment via GitHub Actions.

The pipeline: CI (Lint → Typecheck → Format Check → Test → Build) → Deploy (SSH to droplet → Docker build → Health check)

The Deploy workflow only runs after CI passes. If the health check fails, container logs are dumped for debugging.

Before Pushing

Always run preflight locally first to catch issues before they hit CI:

npm run preflight

VS Code is configured to auto-format on save (Prettier + ESLint).

Infrastructure

The production droplet is SSH-hardened: root login disabled, password authentication disabled, access restricted to deploy and recover users only (key-based). CI/CD deploys via the deploy user. The recover user exists as an emergency fallback with sudo access.

Project Structure

src/
├── app/           # Next.js App Router pages and API routes
├── components/    # Reusable UI and feature components
├── lib/           # Shared utilities (Stripe, email, analytics)
└── test/          # Test setup and helpers
content/
├── docs/          # MDX documentation (auto-generated + manual)
└── blog/          # Blog posts (MDX)
scripts/
└── generate-docs.ts  # Extracts API docs from MMPM source

Accessibility & automation

This site is dual-accessibility by design — both humans and AI agents (Claude-in-Chrome, Gemini, OpenAI Operator/Atlas, Playwright) must be able to operate every button. See docs/DUAL-ACCESSIBILITY.md for the data-testid + aria-* convention. Interactive elements without a stable testid or accessible name fail CI (see scripts/check-testids.mjs, shipping in sprint 2026-W18 item A6).

License

This software is proprietary. All rights reserved.

Copyright (c) 2025-2026 G. Osborne. Licensed to Parametric Memory Limited (New Zealand) under a separate written agreement; the author retains all underlying rights, title and interest.

See LICENSE for the full proprietary licence terms, authorship statement and New Zealand jurisdiction clause.

Unauthorised use, reproduction, modification or distribution is prohibited. Licensing enquiries: entityone22@gmail.com

About

Landing page for parametric-memory.dev — hosted on GitHub Pages

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages