Built with Next.js (App Router) and TinaCMS for the /outdoors field notes.
Old highschool site: https://archive.thisisjackryan.com/ Current site: https://thisisjackryan.com/
npm install
npm run devThis boots Tina alongside Next.js. Open:
http://localhost:3000— the sitehttp://localhost:3000/admin/index.html— the Tina editor
In local dev, the editor works without any auth — anyone with the dev server running can edit. Auth only matters in production (see below).
- Visit
/admin/index.htmlon a deployed environment (or locally). - Sign in with the GitHub account that owns this repo. Tina Cloud blocks everyone else.
- Open Outdoor Adventures → Create New, fill in the fields, write the body in the rich editor, hit Save.
- Tina commits a new markdown file to
content/outdoors/on GitHub. Vercel auto-deploys it in ~30s.
One-time:
- Sign up at app.tina.io and create a project pointed at this GitHub repo.
- Restrict editor access to your GitHub account in the Tina project's collaborators settings — this is what enforces "only Jack can publish".
- Grab the Client ID and a read-only Token from Tina.
- Add these env vars in Vercel (Production + Preview):
NEXT_PUBLIC_TINA_CLIENT_ID— from TinaTINA_TOKEN— from Tina
- Redeploy. The build script (
tinacms build && next build) generates the admin UI at/admin/index.html.
Edit tina/config.ts and add a new entry under schema.collections. Each collection is a folder of markdown files plus a schema of fields (text, image, rich-text, etc.). See https://tina.io/docs/reference/collections.