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.
/{language}/{airport_code}.cms-rendereri poolt.curl -fsSL https://bun.sh/install | bashgh) ja GitHubiga ĂŒhendatud Verceli konto.language) on sisseehitatud.cms-renderer SDK kaudu, kasutades lugemistaseme API vĂ”tit.LĂ”ppseis: ~50 lennujaama CMS-is, rakendus on ĂŒhendatud nende lugemiseks ja disainisĂŒsteem on paigas.
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.
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.
airportAdministraatoris 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.
bun run generate-schemas
See kirjutab airportSchema (Zod) ja Airport (tĂŒĂŒp) faili generated/cms-schemas.ts ning kinnitab, et sinu mandaadid töötavad.
Ă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.
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.
Ehita renderduskiht: UI elemendid, Reacti komponendid, marsruut, CEL sidumised ja tÔlkimine.
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 â brandheadline â title, subtitlebody â code, city, country, latitude (Number), longitude (Number)footer â textbody.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.
bun run generate-schemas
KĂŒsi Claudeâilt:
Ehita neli Reacti komponenti â nav, headline, body, footer â kausta
components/. IgaĂŒks vĂ”tab ĂŒhe propâicontent, mille tĂŒĂŒp onBlockComponentProps<T>pĂ€ritcms-renderer/lib/types-ist, kusTon elemendi genereeritud tĂŒĂŒp, ja loeb vĂ€ljadcontent-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 alapealkiricode · 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.
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.
UI elemendi lisamine lehele, valides selle vahekaardilt Custom.
Neli UI elementi lisatud Page Builderis JFK sidumisele.
Vali JFK sidumine â Add UI Element â vahekaart Custom â lisa nav, headline, body, footer selles jĂ€rjekorras. Profound kopeerib sama komplekti iga lennujaama sidumisele.
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Àli | CEL vÀÀrtus |
|---|---|
headline.title | documents.get("airport", meta.params.airport_code).name |
headline.subtitle | documents.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.country | documents.get("airport", meta.params.airport_code).<field> |
body.latitude / body.longitude | documents.get("airport", meta.params.airport_code).latitude (ja .longitude) |
nav.brand, footer.text | staatilised stringid |
Avalda leht (ĂŒleval paremal).
Ava localhost:3000/JFK, seejĂ€rel /SFO, /LAX â sama mall, erinev lennujaam.
LÔplik leht, mis renderdab JFK andmeid inglise keeles.
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.
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.
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Àli | TÔlgitud CEL |
|---|---|
headline.title | documents.translated("airport", meta.params.airport_code, meta.params.language).name |
headline.subtitle | documents.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.country | documents.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.
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.
MÔlemad tulevad skafoldiga kaasa.
layout.tsx failis olev <Refresher> vĂ€rskendab vaadeldavat lehte kohe, kui adminis midagi muutad ja salvestad â redeployât pole vaja.?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.
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.