The family website of Nisham and Fazna (Ni + fa): essays, articles, blog posts, poems and photos, plus a portfolio page for each of us. Built with Next.js; everything you write is edited at /keystatic and saved as files in this repository.
npm install
npm run devOpen http://localhost:3000. The editor is at http://localhost:3000/keystatic. On your computer it saves straight into the content/ folder.
Two locks sit in front of the editor. First a family passphrase (FAMILY_PASSPHRASE): visiting /keystatic asks for it once per device and stores a signed cookie for 30 days. Then GitHub sign-in: only people with write access to this repository can save. In production the editor refuses to run at all until both FAMILY_PASSPHRASE and the GitHub variables are set, so there is no unprotected mode on the live site. Copy .env.example to .env.local for local work.
- Go to
/keystaticand choose Posts → Add. - Pick what it is (essay, article, blog post, poem, photos or note), who wrote it, and the language.
- Write it, add a cover or photos if you like, and press Save.
Poems keep the line breaks you type, and an empty line starts a new stanza. Tick Draft to save something without showing it on the site.
Family members → Add. The "Web address" becomes their page, so amina lives at /amina. Fill in what applies; empty sections are hidden. They can then be chosen as an author on posts and get their own "Work & projects" entries.
Each person picks their colour (cobalt, fern, ocean or amber) and their page tone (light or dark). Those carry through their tile on the home page, their profile and their CV, so every member's pages look like their own without changing any code. Write the About text in the first person; it's set as a short letter signed with their name.
Each person's page is made to be shared as a portfolio: wearnifa.com/nisham and wearnifa.com/fazna show a name-and-portrait card when pasted into WhatsApp, LinkedIn or iMessage, and /nisham/cv and /fazna/cv are plain one-page CVs with a Save as PDF button. The CV uses the profile, path, work, education, skills and certificates from the editor, plus the optional Email for the CV field.
| What | Where |
|---|---|
| Posts, members, projects, home page text | content/ |
| Pictures uploaded through the editor | public/media/ |
| Editor setup (fields and collections) | keystatic.config.ts |
| Pages | app/(site)/ |
| Colours, type and motion | app/(site)/globals.css |
Originals you want me to prepare for the site go in photos-inbox/ (not committed).
-
Import this repository in Vercel. Pushes to the
family-sitebranch get preview links; the main site followsmain. -
Set
SITE_URLto the real address (https://wearnifa.com) so link previews, canonical links and the sitemap use it, and setFAMILY_PASSPHRASEto a passphrase you share with the family. -
Connect the editor to GitHub, once:
- With the dev server running, set
NEXT_PUBLIC_KEYSTATIC_GITHUB_APP_SLUG=pendingin.env.local, restart, and open/keystatic. Keystatic walks you through creating a GitHub App and writes the real values into.env.local. - Copy
KEYSTATIC_GITHUB_CLIENT_ID,KEYSTATIC_GITHUB_CLIENT_SECRET,KEYSTATIC_SECRETandNEXT_PUBLIC_KEYSTATIC_GITHUB_APP_SLUGinto Vercel's environment variables and redeploy.
- With the dev server running, set
-
Anyone who should post needs a GitHub account with write access to this repository. Add them on GitHub under Settings → Collaborators → Add people (role: Write), or from a terminal:
gh api -X PUT repos/Proph8/love-story-selector-site-01/collaborators/THEIR_GITHUB_USERNAME -f permission=push
They accept the invitation email, then sign in at
yoursite/keystaticwith the family passphrase and their GitHub account. Every save becomes a commit, and Vercel republishes the site in about a minute.
Old invitation links (/bride/..., /groom/...) redirect to /fazna and /nisham.