profound-logoProfound CMS
⌘K
Admin
Theme
DocsTutorialBlogPhilosophy
DocsTutorialBlogPhilosophy

Tutorials

Build & Ship an Airport DirectoryJuurutusedBuild & Ship a Stripe Storefront

CMS-i funktsioonid

Documentation Site TemplateFeature Template BuilderTranslation ServiceOrganizations & Website HeirarchyConnect Profound CMS to your AI clientSettings IntegrationsSettings API KeysSettings UsageSettings Websites
All Systems Operational
Powered Byprofound-logo
Theme

Build & Ship an Airport Directory

Praktiline juhend: ehita Profound CMS-i rahvusvahelistatud lennujaamade kataloog — ĂŒks parametriline marsruut, mis renderdab iga lennujaama lehe 35 keeles.

Ehita Profound CMS-is tĂ”eline, rahvusvahelistatud lennujaamade kataloog: ĂŒks URL-i muster, mis renderdab iga lennujaama jaoks lehe 35 keeles. Sina kirjutad Next.js koodi ja ehitad CMS-i struktuuri kĂ€sitsi; Claude Code (lĂ€bi Profound MCP) teeb kolm tööd — loob lennujaama andmed, ĂŒhendab disainisĂŒsteemi ja genereerib neli Reacti komponenti. Kolm osa: Seadistus, Ehitus, Tootmine.

Vaata tĂ€ispikka videoĂŒlevaadet.

Mida sa ehitad

  • ~50 lennujaama kirjet, igaĂŒks oma URL-il.
  • Üks parametriline marsruut /{language}/{airport_code}.
  • Neli kasutajaliidese elementi — nav, headline, body, footer — renderdatud cms-rendereri poolt.
  • Reaalajas CMS-i andmed CEL-i sidumiste kaudu.
  • KĂ”ik 35 keelt, tĂ”lgitud ĂŒhe klikiga.
  • Paigaldatud Vercelisse koos reaalajas eelvaate ja kohapealse muutmisega.

Eeldused

  • Bun ≄ 1.3 — curl -fsSL https://bun.sh/install | bash
  • Claude Code, mis on ĂŒhendatud Profound MCP-ga (osa 1).
  • Profound CMS-i konto.
  • Osa 3 jaoks: sisselogitud GitHub CLI (gh) ja GitHubiga ĂŒhendatud Verceli konto.

Kuidas see kokku sobitub

  • Komponendid mÀÀravad sisu kuju. Route Slug vĂ€li muudab komponendi marsruuditavaks; UI Element silt teeb selle lehel paigutatavaks; SĂŒsteemi komponendid (nĂ€iteks language) on sisseehitatud.
  • Variandid on sisu (JFK, SFO, LAX
).
  • Kasutajaliidese elemendid on lehe jaotised, mis tĂ€idetakse CEL-iga — Profoundi mallipĂ”hine skriptimine, mida hinnatakse renderdamisel.
  • Parametriline marsruut seob URL-i variandi ja valiku UI elementidega.
  • Sinu Next.js rakendus renderdab kĂ”ik cms-renderer SDK kaudu, kasutades lugemistaseme API vĂ”tit.

Osa 1 — Seadistus

LĂ”ppseis: ~50 lennujaama CMS-is, rakendus on ĂŒhendatud nende lugemiseks ja disainisĂŒsteem on paigas.

1. Loo veebisait

Registreeru Profoundis (WorkOS autentimine) ja loo veebisait nimega airports. Kopeeri kaks asja: veebisaidi ID (administraatori URL-is olev UUID) ja lugemistaseme API vĂ”ti menĂŒĂŒst Deployments → Create API key. Rakendus ainult loeb, seega piisab lugemisvĂ”tmest.

2. Skafoldeeri ja ĂŒhenda rakendus

bunx create-profound-next airports
cd airports

Lisa oma mandaadid faili .env.local:

PROFOUND_API_KEY=<your read key>
NEXT_PUBLIC_PROFOUND_WEBSITE_ID=<your website id>
NEXT_PUBLIC_CMS_API_URL=https://cms.dev.tryprofound.com
NEXT_PUBLIC_BUNNY_CDN_URL=https://cms-profound.b-cdn.net

KĂ€ivita bun dev ja ava localhost:3000, et kinnitada ĂŒhendust.

3. Loo komponent airport

Administraatoris mine Components → Create new component ja nimeta see airport. Lisa kuus vĂ€lja: code, name, city, country (Text) ja latitude, longitude (Number). MÀÀra code Route Slug vĂ€ljaks ja sea staatus Active. JĂ€ta kĂ”ik vĂ€ljad valikuliseks; Ă€ra lisa UI Element silti.

Komponent airport — kuus vĂ€lja, code mÀÀratud Route Slug’iks.

4. TĂ”mba komponent tĂŒĂŒpidesse

bun run generate-schemas

See kirjutab airportSchema (Zod) ja Airport (tĂŒĂŒp) faili generated/cms-schemas.ts ning kinnitab, et sinu mandaadid töötavad.

5. KĂŒlva andmed MCP kaudu

Ühenda MCP ja autentige:

claude mcp add --transport http Profound http://107.21.107.99:8081/mcp

Server autentib OAuthi (WorkOS) kaudu. KĂ€ivita Claude Code’is kĂ€sk /mcp, vali Profound ja lĂ”peta sisselogimine brauseris — Claude Code soovitab seda automaatselt ka esimesel Profoundi tööriista kutsel. Kui /mcp nĂ€itab Profoundi staatust connected, kĂŒsi Claude’ilt:

Genereeri viiskĂŒmmend pĂ€ris lennujaama — Ă”iged IATA koodid, nimed, linnad, riigid ja koordinaadid. Salvesta need JSON-ina kausta data, valideeri meie lennujaama komponendi vastu ning loo seejĂ€rel igaĂŒks avaldatud dokumendina Profound MCP kaudu, paralleelselt.

Ava airport → Variants, et kinnitada ~50 avaldatud lennujaama. Rakendus loeb API vĂ”tmega; MCP kirjutab oma WorkOS seansi abil.

Umbes 50 lennujaama, kĂŒlvatud avaldatud variantidena.

6. Lisa disainisĂŒsteem

Skafold on vaikimisi stiilita. Aseta projekti juurkausta fail DESIGN.md (Tailwind v4 @theme plokk koos tokenitega) — sinu enda vĂ”i laadi alla refero.design lehelt. SeejĂ€rel kĂŒsi Claude’ilt:

Loe faili DESIGN.md. Sea ĂŒles Tailwind v4 ja ĂŒhenda teema ning fondid. Kasuta fontide jaoks next/fonti, mitte kĂ€itusajal toimuvat Google’i importi. Ainult stiilid — ei mingeid lehti ega komponente.

Veendu, et failis src/app/globals.css oleks @import "tailwindcss"; ja @theme plokk ning et localhost:3000 kuvaks tokeneid.

Osa 2 — Ehitus

Ehita renderduskiht: UI elemendid, Reacti komponendid, marsruut, CEL sidumised ja tÔlkimine.

1. MÀÀra neli kasutajaliidese komponenti

Administraatoris loo uus komponent neli korda (ilma Route Slug’ita). IgaĂŒhel lisa vĂ€ljad Text-tĂŒĂŒbina, kui pole teisiti mĂ€rgitud, sea staatus Active ja lisa UI Element silt menĂŒĂŒs Settings → Tags:

  • nav → brand
  • headline → title, subtitle
  • body → code, city, country, latitude (Number), longitude (Number)
  • footer → text

body.latitude ja body.longitude peavad olema Number, et need ĂŒhtiksid lennujaama komponendiga.

Iga UI element on oma komponent — siin body, seatud staatusega Active ja sildiga UI Element.

KÔik neli UI elementi koos komponendiga airport.

2. Regenereri tĂŒĂŒbid

bun run generate-schemas

3. Genereeri Reacti komponendid ja registreeri need

KĂŒsi Claude’ilt:

Ehita neli Reacti komponenti — nav, headline, body, footer — kausta components/. IgaĂŒks vĂ”tab ĂŒhe prop’i content, mille tĂŒĂŒp on BlockComponentProps<T> pĂ€rit cms-renderer/lib/types-ist, kus T on elemendi genereeritud tĂŒĂŒp, ja loeb vĂ€ljad content-ist. Registreeri kĂ”ik neli kĂ”iki hĂ”lmavas marsruudis registrisse komponendi nime jĂ€rgi. Stiliseeri need meie disainisĂŒsteemi alusel, aga oma komponentidena — Ă€ra kopeeri lĂ€htelehe paigutust. Nav: brĂ€nd vasakul. Headline: lennujaama nimi, mille all on alapealkiri code · city, country. Body: detailide paneel koodi, linna, riigi ja koordinaatidega. Footer: ĂŒks staatiline rida. Ainult paigutus ja stiil.

Claude loob neli komponenti ja tÀidab registri failis src/app/[...slug]/page.tsx:

const registry = { nav: Nav, headline: Headline, body: Body, footer: Footer };

Kaks reeglit: iga komponent loeb oma vĂ€ljad content-ist (mitte eraldi proppidena) ja registri vĂ”tmed peavad tĂ€pselt ĂŒhtima CMS-i komponentide nimedega — mittevastavus jĂ€tab renderduse tĂŒhjaks.

4. Loo parametriline marsruut

Administraatoris mine Pages → Create page ja mÀÀra mustriks /{airport_code}. Jaotises Dynamic Segment Mappings seo airport_code → komponent airport, slug-vĂ€li code. Salvesta — jĂ”uad Page Builderisse. Kontrolli, et /JFK avaneks.

5. Lisa UI elemendid, seo CEL ja avalda

UI elemendi lisamine lehele, valides selle vahekaardilt Custom.

Neli UI elementi lisatud Page Builderis JFK sidumisele.

  1. Vali JFK sidumine → Add UI Element → vahekaart Custom → lisa nav, headline, body, footer selles jĂ€rjekorras. Profound kopeerib sama komplekti iga lennujaama sidumisele.

  2. TĂ€ida iga vĂ€li. Statiilised vÀÀrtused (navigatsiooni brĂ€nd, jaluse tekst): kirjuta need otse. DĂŒnaamiliste vÀÀrtuste puhul lĂŒlitu dĂŒnaamilisele reĆŸiimile ja kirjuta CEL. Jagatud pĂ€ring on documents.get("airport", meta.params.airport_code).

    VÀliCEL vÀÀrtus
    headline.titledocuments.get("airport", meta.params.airport_code).name
    headline.subtitledocuments.get("airport", meta.params.airport_code).code + " · " + documents.get("airport", meta.params.airport_code).city + ", " + documents.get("airport", meta.params.airport_code).country
    body.code / body.city / body.countrydocuments.get("airport", meta.params.airport_code).<field>
    body.latitude / body.longitudedocuments.get("airport", meta.params.airport_code).latitude (ja .longitude)
    nav.brand, footer.textstaatilised stringid
  3. Avalda leht (ĂŒleval paremal).

6. Kontrolli inglise keeles

Ava localhost:3000/JFK, seejĂ€rel /SFO, /LAX — sama mall, erinev lennujaam.

LÔplik leht, mis renderdab JFK andmeid inglise keeles.

7. Rahvusvaheliseks muutmine

  1. TĂ”lgi kĂ”igepealt komponendid. Administraatoris ava iga komponent (ĂŒkskĂ”ik milline — see ei pea olema UI element) ja klĂ”psa Translate → Submit. Profound tĂ”lgib sisu korraga kĂ”igisse 35 keelde, kaasa arvatud statiilised vĂ€ljatekstid. Tee seda enne, kui muudad marsruuti vĂ”i puudutad CEL-i.

    Translate → Submit saadab komponendi korraga kĂ”igisse 35 keelde.

  2. Lisa keelemÔÔde. MenĂŒĂŒ Pages all muuda mustriks /{language}/{airport_code}. Lisa Dynamic Segment Mapping vÀÀrtusele language → sisseehitatud sĂŒsteemikomponent language, slug-vĂ€li code. Salvesta ja veendu, et /en/JFK avaneb.

    {language} segmendi lisamine marsruudile.

  3. Suuna iga tĂ”lgitav vĂ€li tĂ”lgitud pĂ€ringule. Lehe rahvusvaheliseks muutmine tĂ€hendab, et kĂ”ik keelepĂ”hised vĂ€ljad — mitte ainult pealkiri — tuleb viia pĂ€ringule documents.translated("airport", meta.params.airport_code, meta.params.language):

    VÀliTÔlgitud CEL
    headline.titledocuments.translated("airport", meta.params.airport_code, meta.params.language).name
    headline.subtitledocuments.get("airport", meta.params.airport_code).code + " · " + documents.translated("airport", meta.params.airport_code, meta.params.language).city + ", " + documents.translated("airport", meta.params.airport_code, meta.params.language).country
    body.city / body.countrydocuments.translated("airport", meta.params.airport_code, meta.params.language).city (ja .country)

    JĂ€ta IATA code ja koordinaadid pĂ€ringule documents.get — need on igas keeles samad. nav.brand ja footer.text on juba kaetud komponendi tĂ”lkimisega 1. sammus.

Kui kÔik kolm sammu on tehtud, avanevad /fr/SFO, /de/SFO jne tÀielikult tÔlgituna.

Osa 3 — Tootmine

1. Paigaldamine: GitHub, seejÀrel Vercel

LĂŒkka GitHubi:

git init
git add -A
git commit -m "Airport directory"
gh repo create airports --public --source=. --push

Impordi Vercelisse: Add New → Project → impordi repo airports. Lisa keskkonnamuutujad — PROFOUND_API_KEY, NEXT_PUBLIC_PROFOUND_WEBSITE_ID, NEXT_PUBLIC_CMS_API_URL ja soovi korral NEXT_PUBLIC_BUNNY_CDN_URL — ning klĂ”psa Deploy. KĂŒlasta /en/JFK ja /fr/SFO. Iga jĂ€rgmine git push kĂ€ivitab uue deploy.

2. Reaalajas eelvaade ja kohapealne muutmine

MÔlemad tulevad skafoldiga kaasa.

  • Reaalajas eelvaade: layout.tsx failis olev <Refresher> vĂ€rskendab vaadeldavat lehte kohe, kui adminis midagi muutad ja salvestad — redeploy’t pole vaja.
  • Kohapealne muutmine: lisa ĂŒkskĂ”ik millisele URL-ile ?edit_mode=true (nt 
/en/JFK?edit_mode=true), et kuvada redigeerimise ĂŒlekatteid. Avalikud kĂŒlastajad nĂ€evad endiselt puhast lehte.

?edit_mode=true kuvab redaktori reaalajas lehel.

See ongi ehitus

ViiskĂŒmmend lennujaama, 35 keelt, reaalajas — kirjeldatud korra ja tĂ€idetud andmetega: ĂŒks marsruut, neli Reacti komponenti ja peotĂ€is CEL sidumisi. CMS hoiab sisu, sinu kood renderdab selle ja CEL ĂŒhendab need.

Continue Reading
NextJuurutusedâ€ș