OpenK Research Site
OpenK is my independent research on the shape of market uncertainty: the range of outcomes prices imply, not a single forecast. This is the website that publishes it.
Every page is prerendered, the charts are hand-written SVG and Canvas with no charting library, and the only code that runs per request is a contact form and a newsletter signup with strict input checks.

View the code (opens in a new tab)Read the README (opens in a new tab)Visit openkresearch.com (opens in a new tab)
The problem
Publish my options research so investors and researchers can read and explore it.
What I built
A Next.js site with prerendered pages, hand-written charts, an interactive exhibit of market-implied distributions, and contact and signup routes that reject anything unexpected.
What it produces
openkresearch.com, with security headers, a content security policy and unit tests.
Exhibit data is curated, downsampled and rounded. The research models are not part of the repository.
In pictures
How it works
- Content. Article text and small, pre-aggregated exhibit data.
- Components. Hand-written SVG and Canvas charts, with no UI or charting library.
- Routes. Prerendered pages, a sitemap and two hardened POST routes.
- Hosting. Vercel serves the pages and runs the two routes with strict headers.
Where to look in the code
README sections
- Overview (opens in a new tab) What the site is
- Static prerendering (opens in a new tab) Why almost nothing runs per request
- API routes (opens in a new tab) How the contact and signup routes are hardened
- Security headers and CSP (opens in a new tab) The content security policy
- Limitations (opens in a new tab) What it does not do
Files
- src/app (opens in a new tab) Pages and routes
- src/components (opens in a new tab) Charts and UI
- src/app/api/contact/route.ts (opens in a new tab) Hardened contact route
- tests (opens in a new tab) Test suite
- Automated checks (opens in a new tab) lint, type checks and tests on every push