profound-logoProfound CMS
⌘K
Admin
Theme
DocsTutorialBlogPhilosophy
DocsTutorialBlogPhilosophy

Tutorials

Build & Ship an Airport DirectoryDeploymentsBuild & Ship a Stripe Storefront

CMS-funkciĂłk

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

Gyakorlati ĂștmutatĂł: kĂ©szĂ­ts nemzetköziesĂ­tett repĂŒlƑtĂ©r-katalĂłgust a Profound CMS-ben — egy paramĂ©terezett Ăștvonal, amely minden repĂŒlƑtĂ©rhez oldalt renderel, 35 nyelven.

KĂ©szĂ­ts egy valĂłdi, nemzetköziesĂ­tett repĂŒlƑtĂ©r-katalĂłgust a Profound CMS-ben: egyetlen URL-minta, amely minden repĂŒlƑtĂ©rhez kĂŒlön oldalt renderel, 35 nyelven. Te Ă­rod a Next.js kĂłdot Ă©s kĂ©zzel Ă©pĂ­ted fel a CMS-struktĂșrĂĄt; a Claude Code (a Profound MCP-n keresztĂŒl) hĂĄrom feladatot vĂ©gez el — lĂ©trehozza a repĂŒlƑtĂ©ri adatokat, beköti a dizĂĄjnrendszert Ă©s legenerĂĄlja a nĂ©gy React komponenst. HĂĄrom rĂ©sz: BeĂĄllĂ­tĂĄs, FelĂ©pĂ­tĂ©s, ÉlesĂ­tĂ©s.

Nézd meg a teljes videós bemutatót.

Mit fogsz elkészíteni

  • KörĂŒlbelĂŒl 50 repĂŒlƑtĂ©ri rekord, mindegyik sajĂĄt URL-en.
  • Egy paramĂ©terezett Ăștvonal /{language}/{airport_code}.
  • NĂ©gy UI-elem — navigĂĄciĂł, fƑcĂ­m, törzsszöveg, lĂĄblĂ©c — amelyet a cms-renderer renderel.
  • ÉlƑ CMS-adatok CEL kötĂ©seken keresztĂŒl.
  • Mind a 35 nyelv, egyetlen kattintĂĄssal lefordĂ­tva.
  • TelepĂ­tve a Vercelre Ă©lƑ elƑnĂ©zettel Ă©s helyben szerkesztĂ©ssel.

ElƑfeltĂ©telek

  • Bun ≄ 1.3 — curl -fsSL https://bun.sh/install | bash
  • Claude Code csatlakoztatott Profound MCP-vel (1. rĂ©sz).
  • Egy Profound CMS fiĂłk.
  • A 3. rĂ©szhez: bejelentkezett GitHub CLI (gh), valamint egy GitHubhoz kapcsolt Vercel fiĂłk.

Hogyan åll össze

  • A Komponensek hatĂĄrozzĂĄk meg a tartalom szerkezetĂ©t. A Route Slug mezƑ teszi egy komponenst Ăștvonalon elĂ©rhetƑvĂ©; a UI Element cĂ­mke teheti elhelyezhetƑvĂ© az oldalon; a System komponensek (pĂ©ldĂĄul a language) beĂ©pĂ­tve Ă©rkeznek.
  • A VĂĄltozatok maguk a tartalmak (JFK, SFO, LAX
).
  • A UI-elemek az oldalszekciĂłk, amelyeket CEL tölt ki — a Profound sablonon belĂŒli szkriptje, amely renderelĂ©skor fut.
  • A paramĂ©terezett Ăștvonal az URL-t egy vĂĄltozatra Ă©s egy UI-elem kĂ©szletre kĂ©pezi le.
  • A Next.js alkalmazĂĄsod mindezt a cms-renderer SDK-val rendereli egy olvasĂĄsi szintƱ API-kulccsal.

1. rĂ©sz — BeĂĄllĂ­tĂĄs

VĂ©gĂĄllapot: kb. 50 repĂŒlƑtĂ©r a CMS-ben, az alkalmazĂĄs összekötve velĂŒk, Ă©s a dizĂĄjnrendszer bekötve.

1. Hozd létre a webhelyet

RegisztrĂĄlj a ProfoundnĂĄl (WorkOS hitelesĂ­tĂ©s), Ă©s hozz lĂ©tre egy airports nevƱ webhelyet. MĂĄsolj ki kĂ©t dolgot: a webhelyazonosĂ­tĂłt (a UUID-t az admin URL-jĂ©ben) Ă©s egy olvasĂĄsi szintƱ API-kulcsot a Deployments → Create API key menĂŒpontbĂłl. Az alkalmazĂĄs csak olvas, ezĂ©rt elĂ©g egy olvasĂĄsi kulcs.

2. Generåld és csatlakoztasd az alkalmazåst

bunx create-profound-next airports
cd airports

Add hozzá a hitelesítƑ adataidat a .env.local fájlhoz:

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

bun dev futtatása után nyisd meg a localhost:3000-et, hogy ellenƑrizd a kapcsolatot.

3. Hozd létre az airport komponenst

Az adminban menj a Components → Create new component menĂŒpontra, Ă©s nevezd el airport-nak. Adj hozzĂĄ hat mezƑt: code, name, city, country (Text) Ă©s latitude, longitude (Number). Jelöld meg a code mezƑt Route Slug mezƑkĂ©nt, majd ĂĄllĂ­tsd a stĂĄtuszt Active-ra. Hagyd mindegyik mezƑt opcionĂĄlisnak; ne adj hozzĂĄ UI Element cĂ­mkĂ©t.

Az airport komponens — hat mezƑ, a code Route SlugkĂ©nt beĂĄllĂ­tva.

4. HĂșzd be a komponenst a tĂ­pusok közĂ©

bun run generate-schemas

Ez lĂ©trehozza az airportSchema (Zod) sĂ©mĂĄt Ă©s az Airport tĂ­pust a generated/cms-schemas.ts fĂĄjlban, Ă©s megerƑsĂ­ti, hogy a hitelesĂ­tƑ adataid mƱködnek.

5. Töltsd fel az adatokat az MCP-n keresztĂŒl

Csatlakoztasd az MCP-t és hitelesíts:

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

A szerver OAuth-on (WorkOS) keresztĂŒl hitelesĂ­t. A Claude Code-ban futtasd a /mcp parancsot, vĂĄlaszd a Profound opciĂłt, Ă©s fejezd be a bejelentkezĂ©st a böngĂ©szƑdben — a Claude Code automatikusan is rĂĄkĂ©rdez, amikor elƑször hĂ­vsz meg egy Profound eszközt. MiutĂĄn a /mcp connected ĂĄllapotot mutat a ProfoundnĂĄl, Ă­rd be Claude-nak:

GenerĂĄlj ötven valĂłs repĂŒlƑteret — valĂłs IATA-kĂłdokkal, nevekkel, vĂĄrosokkal, orszĂĄgokkal Ă©s koordinĂĄtĂĄkkal. Mentsd el JSON-kĂ©nt egy data mappĂĄba, validĂĄld az airport komponensĂŒnk ellen, majd hozd lĂ©tre mindet publikĂĄlt dokumentumkĂ©nt a Profound MCP-n keresztĂŒl, pĂĄrhuzamosan.

Nyisd meg az airport → Variants nĂ©zetet, hogy lĂĄsd a közel 50 publikĂĄlt repĂŒlƑteret. Az alkalmazĂĄs az API-kulccsal olvas, az MCP pedig a sajĂĄt WorkOS munkamenetĂ©vel Ă­r.

KörĂŒlbelĂŒl 50 repĂŒlƑtĂ©r, publikĂĄlt vĂĄltozatkĂ©nt feltöltve.

6. Adj hozzĂĄ egy dizĂĄjnrendszert

A sablon stĂ­lus nĂ©lkĂŒl Ă©rkezik. Helyezz el egy DESIGN.md fĂĄjlt (egy Tailwind v4 @theme blokkot plusz tokeneket) a projekt gyökerĂ©be — lehet sajĂĄt, vagy letöltheted a refero.design oldalrĂłl. EzutĂĄn Ă­rd meg Claude-nak:

Olvasd be a DESIGN.md-t. ÁllĂ­tsd be a Tailwind v4-et, Ă©s kösd be a tĂ©mĂĄt Ă©s a fontokat. HasznĂĄld a next/font megoldĂĄst a betƱtĂ­pusokhoz, ne runtime Google importot. Csak a stĂ­lusra fĂłkuszĂĄlj — mĂ©g nincsenek oldalak vagy komponensek.

EllenƑrizd, hogy a src/app/globals.css tartalmazza az @import "tailwindcss"; sort Ă©s az @theme blokkot, valamint hogy a localhost:3000 megjelenĂ­ti a tokeneket.

2. rĂ©sz — FelĂ©pĂ­tĂ©s

ÉpĂ­tsd fel a renderelĂ©si rĂ©teget: a UI-elemeket, a React komponenseket, az Ăștvonalat, a CEL kötĂ©seket Ă©s a fordĂ­tĂĄst.

1. Hatårozd meg a négy UI-elem komponenst

Az adminban hozz lĂ©tre Ășj komponenst nĂ©gyszer (Route Slug nĂ©lkĂŒl). Mindegyikhez add hozzĂĄ a mezƑket Text tĂ­pussal, hacsak nincs jelezve mĂĄshogy, ĂĄllĂ­tsd a stĂĄtuszt Active-ra, Ă©s add hozzĂĄ a UI Element cĂ­mkĂ©t a Settings → Tags menĂŒpontban:

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

A body.latitude Ă©s body.longitude mezƑk legyenek Number tĂ­pusĂșak, hogy illeszkedjenek az airport komponenshez.

Minden UI-elem kĂŒlön komponens — itt a body, Active stĂĄtusszal Ă©s UI Element cĂ­mkĂ©vel.

Mind a négy UI-elem az airport komponens mellett.

2. GenerĂĄld Ășjra a tĂ­pusokat

bun run generate-schemas

3. GenerĂĄld le a React komponenseket Ă©s regisztrĂĄld Ƒket

Írd meg Claude-nak:

KĂ©szĂ­ts nĂ©gy React komponenst — nav, headline, body, footer — a components/ mappĂĄban. Mindegyik egyetlen content propot kap, amely a cms-renderer/lib/types könyvtĂĄr BlockComponentProps<T> tĂ­pusa, ahol T az elem generĂĄlt tĂ­pusa, Ă©s a mezƑket a content-rƑl olvassa. RegisztrĂĄld mind a nĂ©gyet a fogadĂł Ăștvonal registryjĂ©ben komponensnĂ©v szerint. StĂ­lusold Ƒket a dizĂĄjnrendszerĂŒnkkel, de sajĂĄt komponenskĂ©nt — ne mĂĄsold az eredeti oldal elrendezĂ©sĂ©t. Nav: brand bal oldalon. Headline: repĂŒlƑtĂ©r neve code · city, country alcĂ­mmel. Body: adatlapon jelenjen meg a kĂłd, vĂĄros, orszĂĄg Ă©s koordinĂĄtĂĄk. Footer: egy statikus sor. Csak elrendezĂ©s Ă©s stĂ­lus.

Claude létrehozza a négy komponenst és kitölti a registryt a src/app/[...slug]/page.tsx fåjlban:

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

KĂ©t szabĂĄly: minden komponens a mezƑket a content-rƑl olvassa (nem kĂŒlön propkĂ©nt), Ă©s a registry kulcsainak pontosan egyezniĂŒk kell a CMS-ben lĂ©vƑ komponensnevekkel — ha nem egyeznek, ĂŒresen renderelƑdnek.

4. Hozd lĂ©tre a paramĂ©terezett Ăștvonalat

Az adminban menj a Pages → Create page oldalra, Ă©s ĂĄllĂ­tsd be a mintĂĄt /{airport_code}-ra. A Dynamic Segment Mappings rĂ©sznĂ©l rendeld a airport_code szegmenst az airport komponenshez, slug mezƑnek a code-ot megadva. Mentsd el — a Page Builder felĂŒletre kerĂŒlsz. EllenƑrizd, hogy a /JFK elĂ©rhetƑ.

5. Add hozzå a UI-elemeket, kösd be a CEL-t, és publikålj

UI-elem hozzĂĄadĂĄsa az oldalhoz a Custom fĂŒlrƑl.

A négy UI-elem hozzåadva a JFK bindinghoz a Page Builderben.

  1. VĂĄlaszd ki a JFK bindingot → Add UI Element → Custom fĂŒl → add hozzĂĄ a nav, headline, body, footer elemeket ebben a sorrendben. A Profound ezt a kĂ©szletet minden repĂŒlƑtĂ©ri bindingra propagĂĄlja.

  2. Töltsd ki a mezƑket. A statikus Ă©rtĂ©keket (nav brand, footer szöveg) közvetlenĂŒl beĂ­rhatod. A dinamikus Ă©rtĂ©kekhez vĂĄlts dinamikus mĂłdra, Ă©s Ă­rj CEL-t. A közös lekĂ©rdezĂ©s: documents.get("airport", meta.params.airport_code).

    MezƑCEL Ă©rtĂ©k
    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 (és .longitude)
    nav.brand, footer.textstatikus karakterlĂĄncok
  3. Publikáld az oldalt (jobb felsƑ sarok).

6. EllenƑrzĂ©s angolul

Nyisd meg a localhost:3000/JFK, majd a /SFO, /LAX Ăștvonalakat — azonos sablon, eltĂ©rƑ repĂŒlƑtĂ©r.

Az elkĂ©szĂŒlt oldal JFK adataival, angol nyelven.

7. Nemzetköziesítés

  1. ElƑször fordĂ­tsd le a komponenseket. Az adminban nyisd meg az egyes komponenseket (bĂĄrmelyiket — nem kell, hogy UI-elem legyen), majd kattints a Translate → Submit gombra. A Profound egyszerre fordĂ­tja le a tartalmĂĄt mind a 35 nyelvre, beleĂ©rtve a statikus mezƑket is. Ezt tedd meg mielƑtt mĂłdosĂ­tanĂĄd az Ăștvonalat vagy bĂĄrmilyen CEL-t.

    A Translate → Submit egyszerre kĂŒldi be a komponenst mind a 35 nyelvre.

  2. Add hozzĂĄ a nyelvi dimenziĂłt. A Pages alatt vĂĄltoztasd meg a mintĂĄt /{language}/{airport_code} formĂĄra. Adj hozzĂĄ egy Dynamic Segment Mapping bejegyzĂ©st a language szegmenshez → a beĂ©pĂ­tett language rendszerkomponenshez, slug mezƑnek a code-ot megadva. Mentsd el, Ă©s ellenƑrizd, hogy /en/JFK betöltƑdik.

    A {language} szegmens hozzĂĄadĂĄsa az Ăștvonalhoz.

  3. Minden fordĂ­thatĂł mezƑt irĂĄnyĂ­ts a fordĂ­tott lekĂ©rĂ©sre. A nemzetköziesĂ­tett oldalhoz minden nyelvfĂŒggƑ mezƑt — nem csak a fƑcĂ­met — ĂĄt kell ĂĄllĂ­tani a documents.get(...) hĂ­vĂĄsrĂłl a documents.translated("airport", meta.params.airport_code, meta.params.language) hĂ­vĂĄsra:

    MezƑFordított 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 (és .country)

    Hagyd az IATA code mezƑt Ă©s a koordinĂĄtĂĄkat a documents.get hĂ­vĂĄson — ezek minden nyelven azonosak. A nav.brand Ă©s a footer.text mĂĄr lefedett az 1. lĂ©pĂ©sben lefuttatott fordĂ­tĂĄssal.

Amint mindhĂĄrom lĂ©pĂ©s kĂ©sz, a /fr/SFO, /de/SFO stb. oldalak teljesen lefordĂ­tva töltƑdnek be.

3. rĂ©sz — ÉlesĂ­tĂ©s

1. Telepítés: GitHub, majd Vercel

Töltsd fel GitHubra:

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

ImportĂĄld a projektet a Vercelbe: Add New → Project → importĂĄld az airports repĂłt. Add hozzĂĄ a környezeti vĂĄltozĂłkat — PROFOUND_API_KEY, NEXT_PUBLIC_PROFOUND_WEBSITE_ID, NEXT_PUBLIC_CMS_API_URL, Ă©s opcionĂĄlisan NEXT_PUBLIC_BUNNY_CDN_URL — majd kattints a Deploy gombra. LĂĄtogasd meg a /en/JFK Ă©s /fr/SFO oldalakat. Minden tovĂĄbbi git push Ășjradeployt indĂ­t.

2. ÉlƑ elƑnĂ©zet Ă©s helyben szerkesztĂ©s

MindkettƑ a sablonnal Ă©rkezik.

  • ÉlƑ elƑnĂ©zet: a layout.tsx fĂĄjlban lĂ©vƑ <Refresher> frissĂ­ti az Ă©ppen elƑnĂ©zetben lĂ©vƑ oldalt, amikor az adminban szerkesztesz Ă©s mentesz — nincs szĂŒksĂ©g Ășj deployra.
  • Helyben szerkesztĂ©s: adj a URL vĂ©gĂ©hez ?edit_mode=true paramĂ©tert (pl. 
/en/JFK?edit_mode=true), hogy megjelenjenek a szerkesztƑ rĂ©tegek. A publikus lĂĄtogatĂłk tovĂĄbbra is a tiszta oldalt lĂĄtjĂĄk.

A ?edit_mode=true a szerkesztƑt rĂĄvetĂ­ti az Ă©lƑ oldalra.

Kész is a projekt

Ötven repĂŒlƑtĂ©r, 35 nyelven, Ă©lƑben — egyszer leĂ­rva Ă©s adatokkal feltöltve: egy Ăștvonal, nĂ©gy React komponens Ă©s nĂ©hĂĄny CEL-kötĂ©s. A CMS tĂĄrolja a tartalmat, a kĂłdod rendereli, a CEL pedig összeköti Ƒket.

Continue Reading
NextDeploymentsâ€ș