one project. one address.

Your article sits at /article/my-first-article, one of many in a list. A project page is different: it gets a short address of its own, like /my-project, that you can print on a card or put in your bio. On unparty, every project has one. This step gives your first project its page, built from the article you wrote in the last step.

WhatThe page
Wheresrc/app/my-project/page.tsx
Who writes itThe command
WhatWhat it shows
WhereYour article (and its cover)
Who writes itYou, in the last step
WhatThe sitemap entry
Wheresrc/lib/site-routes.ts
Who writes itThe command, so search engines find it
BUILD.

✓ Success: your project has its own address.

this is a work in progress

1️⃣ Pick the Address

The page name becomes the address: my-project becomes yourname.com/my-project. Choose it like you would a street name, because changing it later breaks every link people have shared:

  • Short and lowercase — letters and numbers, with dashes between words: bakery, spring-menu, studio-2026
  • Named after the project, not the page — bakery, not bakery-page
  • Not already taken — your copy already uses names like article, covers, founders and admin. The command tells you if yours is
  • Not starting with theunparty — those names belong to the projects that came with your copy

2️⃣ Create the Page

Like ./create-article, this is a small program that asks questions and writes the file. On a Mac, run it in Terminal inside your copy. On Windows, use Git Bash:

bash
# Answer the two questions it asks
./create-page
It asksPage name
Answer withThe address you picked, like my-project
It asksArticle to show
Answer withYour article's name in capitals, like MY_FIRST_ARTICLE. It is the name ./create-article printed

It prints the file it made and a Sitemap line. The page takes everything from your article: its title, its description, its cover, and its link preview. There is nothing to fill in. Edit the article later, and the page changes with it.

No picture at the top? Your article has no coverImage. Add the line from Your first article, and the page picks it up.

3️⃣ Check It and Ship It

bash
# Check the whole project (no output means it is fine)
npx tsc --noEmit

# Start your site
npm run dev
  1. localhost:3000/my-project shows your article, with its cover
  2. The browser tab shows your article's title
  3. localhost:3000/sitemap.xml lists /my-project. Search engines will find it
  4. A private window opens it too. Project pages are public, like articles

In GitHub Desktop, the Changes list should hold two files: your new page.tsx and site-routes.ts. Write a summary like "Add my first project page", click Commit to main, then Push origin. A few minutes later, yourname.com/my-project is live.

“An address you can say out loud. That is a project page.”

— unparty-app

⚠️ Good to Know

  • Your article stays where it was — it now lives at two addresses: in the article list and on the project page. That is expected
  • unparty's project pages show more — effort charts, repository stats, onboarding steps. Those read data about unparty's own projects, so yours starts with just the article
  • Renaming means a new page — to change the address, run ./create-page again with the new name, then delete the old folder and its line in site-routes.ts. Old links stop working
  • Your founder page is its own step — the page about you, at /founders, is filled in during Make it yours: identity

🧯 If Something Is Off

  • "is not registered" — the article name does not match one in registry.ts. Copy it exactly from what ./create-article printed, capitals and all
  • "already exists" — pick another page name. Your copy uses that one
  • "use lowercase letters, numbers and dashes only" — no spaces or capitals in the page name
  • The page says 404 — the article is published: false. Project pages hide drafts, just like the article list. Set it to true
  • Windows says ./create-page is not recognized — you are in PowerShell. Use Git Bash for this one command

🤖 Ask Your LLM

prompt
I am making a web page for my project, [describe it]. Suggest five
short, lowercase addresses for it, like bakery or spring-menu, and
say which is easiest to remember.

(In Claude Code, inside your copy)
Run ./create-page with the page name [my-project] and the article
[MY_FIRST_ARTICLE], run npx tsc --noEmit, and tell me the address.

✅ You Are Done When

  • ./create-page printed your file and a Sitemap line
  • npx tsc --noEmit prints nothing
  • /my-project shows your article, with its cover, on your computer and on your live site
  • /sitemap.xml on your live site lists it

Your copy runs, it is live at your own address, it knows you own it, and it holds your cover, your story, your article, and your first project page. One required step remains, and it is the last: Make it yours: identity, where your founder page and your name replace unparty's everywhere. After that, the optional steps add payments, email, uploads and more, one at a time, whenever you need them.

“Everything here started as somebody else's. Now it is yours.”

— unparty-app
#Project Page#Pages#Next.js#Setup#Non-Technical Founders#Software You Own

🧗🏾‍♂️ in progress

THOUGHTS.

…