profound-logoProfound CMS
⌘K
Admin
Theme
DocsTutorialBlogPhilosophy
DocsTutorialBlogPhilosophy

Tutorials

Build & Ship an Airport DirectoryDeploymentsBuild & Ship a Stripe Storefront

Satura pārvaldības sistēmas funkcijas

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

Praktisks ceļvedis: izveidojiet internacionālu lidostu direktoriju Profound CMS — viens parametrisks marÅ”ruts, kas atveido lapu katrai lidostai 35 valodās.

Izveidojiet Ä«stu, internacionālu lidostu direktoriju Profound CMS: viens URL paraugs, kas atveido lapu katrai lidostai 35 valodās. JÅ«s rakstāt Next.js kodu un manuāli veidojat CMS struktÅ«ru; Claude Code (caur Profound MCP) paveic trÄ«s darbus — Ä£enerē lidostu datus, pieslēdz dizaina sistēmu un izveido četrus React komponentus. TrÄ«s daļas: IestatīŔana, Izveide, Produkcija.

Noskatieties pilnu video pamācību.

Ko jūs izveidosit

  • ~50 lidostu ierakstu, katrs savā URL.
  • Viens parametrisks marÅ”ruts /{language}/{airport_code}.
  • Četri lietotāja saskarnes elementi — navigācija, virsraksts, pamatteksts, kājene — ko atveido cms-renderer.
  • TieÅ”raides CMS dati ar CEL sasaistēm.
  • Visas 35 valodas, iztulkotas ar vienu klikŔķi.
  • Izvietots Vercel ar tieÅ”saistes priekÅ”skatÄ«jumu un rediģēŔanu uz vietas.

PriekŔnoteikumi

  • Bun ≄ 1.3 — curl -fsSL https://bun.sh/install | bash
  • Claude Code ar pieslēgtu Profound MCP (1. daļa).
  • Profound CMS konts.
    1. daļai: pieslēgts GitHub CLI (gh) un Vercel konts, kas savienots ar GitHub.

Kā tas viss darbojas kopā

  • Komponenti nosaka satura struktÅ«ru. Route Slug lauks padara komponentu marÅ”rējam, UI Element tags ļauj to novietot lapā; System komponenti (piemēram, language) ir iebÅ«vēti.
  • Variants ir saturs (JFK, SFO, LAX…).
  • Lietotāja saskarnes elementi ir lapas sadaļas, kuras aizpilda CEL — Profound veidņu skriptēŔana, kas tiek izpildÄ«ta atveidoÅ”anas brÄ«dÄ«.
  • Paraparametrais marÅ”ruts sasaista URL ar variantu un UI elementu kopu.
  • JÅ«su Next.js lietotne visu atveido, izmantojot cms-renderer SDK ar lasīŔanas lÄ«meņa API atslēgu.

1. daļa — IestatīŔana

Gala rezultāts: ~50 lidostas CMS vidē, lietotne pieslēgta to nolasīŔanai un vietā esoÅ”a dizaina sistēma.

1. Izveidojiet tīmekļa vietni

ReÄ£istrējieties Profound (WorkOS autentifikācija) un izveidojiet vietni ar nosaukumu airports. Nokopējiet divas lietas: vietnes ID (UUID administrācijas URL) un lasīŔanas lÄ«meņa API atslēgu sadaļā Deployments → Create API key. Lietotne tikai lasa, tāpēc pietiek ar lasīŔanas atslēgu.

2. Ģenerējiet karkasu un pieslēdziet lietotni

bunx create-profound-next airports
cd airports

Pievienojiet akreditācijas datus .env.local failā:

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

Palaidiet bun dev un atveriet localhost:3000, lai pārliecinātos, ka savienojums darbojas.

3. Izveidojiet komponentu airport

Administrācijā dodieties uz Components → Create new component un nosauciet to par airport. Pievienojiet seÅ”us laukus: code, name, city, country (Text) un latitude, longitude (Number). AtzÄ«mējiet code kā Route Slug lauku un iestatiet statusu uz Active. Atstājiet visus laukus neobligātus, UI Element tagu nepievienojiet.

Komponents airport — seÅ”i lauki, ar code, kas iestatÄ«ts kā Route Slug.

4. Ielasiet komponentu tipos

bun run generate-schemas

Tas saglabā airportSchema (Zod) un Airport (tipu) failā generated/cms-schemas.ts un apstiprina, ka jūsu akreditācijas dati darbojas.

5. Ievelciet datus, izmantojot MCP

Pieslēdziet MCP un autentificējieties:

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

Serveris autentificējas ar OAuth (WorkOS). Claude Code ievadiet /mcp, izvēlieties Profound un pabeidziet pierakstīŔanos pārlÅ«kā — Claude Code jÅ«s arÄ« automātiski aicina to darÄ«t, kad pirmoreiz tiek izsaukts Profound rÄ«ks. Kad /mcp rāda, ka Profound ir connected, uzdodiet Claude pieprasÄ«jumu:

Ä¢enerē piecdesmit reālas lidostas — pareizi IATA kodi, nosaukumi, pilsētas, valstis un koordinātas. Saglabā tās kā JSON mapē data, validē pēc mÅ«su airport komponenta un pēc tam izveido katru kā publicētu dokumentu, izmantojot Profound MCP, paralēli.

Atveriet airport → Variants, lai pārliecinātos, ka ir ~50 publicētas lidostas. Lietotne lasa ar API atslēgu, MCP raksta ar savu WorkOS sesiju.

Apmēram 50 lidostas, ielādētas kā publicēti varianti.

6. Pievienojiet dizaina sistēmu

Karkass tiek piegādāts bez stiliem. Novietojiet DESIGN.md (Tailwind v4 @theme bloks ar tokeniem) projekta saknē — savu vai lejupielādētu no refero.design. Pēc tam dodiet Claude uzdevumu:

Izlasi DESIGN.md. Uzstādi Tailwind v4 un pieslēdz tēmu un fontus. Izmanto next/font, nevis Google fontu ielādi izpildlaikā. Tikai stili — ne lapas un ne komponenti.

Pārliecinieties, ka src/app/globals.css satur @import "tailwindcss"; un @theme bloku, kā arī ka localhost:3000 attēlo tokenus.

2. daļa — Izveide

Izveidojiet atveidoŔanas slāni: UI elementus, React komponentus, marŔrutu, CEL sasaistes un tulkojumu.

1. Definējiet četrus UI elementu komponentus

Administrācijā četras reizes izvēlieties Create new component (bez Route Slug). Katram pievienojiet laukus kā Text, ja nav norādÄ«ts citādi, iestatiet statusu uz Active un pievienojiet tagu UI Element sadaļā Settings → Tags:

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

body.latitude un body.longitude jābūt Number, lai atbilstu airport komponentam.

Katrs UI elements ir atseviŔķs komponents — Å”eit body, iestatÄ«ts Active ar tagu UI Element.

Visi četri UI elementi blakus komponentam airport.

2. Ģenerējiet tipus no jauna

bun run generate-schemas

3. Izveidojiet React komponentus un reģistrējiet tos

Dodiet Claude norādi:

Uztaisi četrus React komponentus — nav, headline, body, footer — mapē components/. Katrā ir viens content props ar tipu BlockComponentProps<T> no cms-renderer/lib/types, kur T ir elementa Ä£enerētais tips, un lauki tiek lasÄ«ti no content. ReÄ£istrē visus četrus kopÄ«gajā marÅ”ruta reÄ£istrā pēc komponenta nosaukuma. Stilē tos ar mÅ«su dizaina sistēmu, bet kā mÅ«su paÅ”u komponentus — nekopē avota vietnes izkārtojumu. Navigācija: zÄ«mols pa kreisi. Virsraksts: lidostas nosaukums ar apakÅ”virsrakstu code Ā· city, country. Body: detaļu panelis ar kodu, pilsētu, valsti un koordinātēm. Footer: viena statiska rindiņa. Tikai izkārtojums un stili.

Claude izveido četrus komponentus un aizpilda reģistru failā src/app/[...slug]/page.tsx:

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

Divi noteikumi: katrs komponents savus laukus lasa no content (nevis kā atseviŔķus rekvizÄ«tus), un reÄ£istra atslēgām precÄ«zi jāsakrÄ«t ar CMS komponenÅ”u nosaukumiem — neatbilstÄ«bas gadÄ«jumā nekas netiks atveidots.

4. Izveidojiet parametrisko marŔrutu

Administrācijā dodieties uz Pages → Create page un iestatiet paraugu /{airport_code}. Sadaļā Dynamic Segment Mappings sasaistiet airport_code ar komponentu airport, slug lauku code. Saglabājiet — nonāksiet Page Builder. Pārbaudiet, ka /JFK strādā.

5. Pievienojiet UI elementus, pieslēdziet CEL un publicējiet

UI elementa pievienoŔana lapai no cilnes Custom.

Četri UI elementi, pievienoti JFK sasaistē Page Builder vidē.

  1. Izvēlieties sasaisti JFK → Add UI Element → cilne Custom → pievienojiet nav, headline, body, footer Ŕādā secÄ«bā. Profound piemēro Å”o komplektu katrai lidostas sasaistē.

  2. Aizpildiet laukus. Statiskās vērtÄ«bas (navigācijas zÄ«mols, kājenes teksts): ierakstiet tās tieÅ”i. Dinamiskās vērtÄ«bas: pārslēdziet uz dinamisko režīmu un rakstiet CEL. Koplietojamā meklēŔana ir documents.get("airport", meta.params.airport_code).

    LauksCEL vērtība
    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 (un .longitude)
    nav.brand, footer.textstatiskas virknes
  3. Publicējiet lapu (augŔējā labajā stÅ«rÄ«).

6. Pārbaudiet angļu valodā

Atveriet localhost:3000/JFK, pēc tam /SFO, /LAX — viens un tas pats veidnes izkārtojums, bet cita lidosta.

Pabeigtā lapa ar JFK datiem angļu valodā.

7. InternacionālēŔana

  1. Vispirms iztulkojiet komponentus. Administrācijā atveriet katru komponentu (jebkuru — nav jābÅ«t UI elementam) un noklikŔķiniet Translate → Submit. Profound pārtulko saturu visās 35 valodās vienlaikus, ieskaitot statiskos laukus. Dariet to pirms marÅ”ruta rediģēŔanas vai jebkādas CEL izmaiņas.

    Translate → Submit nosÅ«ta komponentu tulkoÅ”anai visās 35 valodās reizē.

  2. Pievienojiet valodas dimensiju. Sadaļā Pages mainiet paraugu uz /{language}/{airport_code}. Pievienojiet Dynamic Segment Mapping vērtÄ«bai language → iebÅ«vētajam language System komponentam, slug lauks code. Saglabājiet un pārbaudiet, ka /en/JFK darbojas.

    MarŔrutam pievienots segments {language}.

  3. Pāradresējiet katru tulkojamo lauku uz tulkoto izgūŔanu. Lapai jābÅ«t pilnÄ«bā internacionālai, tāpēc katru no valodas atkarÄ«go lauku — ne tikai virsrakstu — nomainiet no documents.get(...) uz documents.translated("airport", meta.params.airport_code, meta.params.language):

    LauksTulkotā 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 (un .country)

    IATA code un koordinātes atstājiet ar documents.get — tās visās valodās ir identiskas. nav.brand un footer.text jau aptverti, tulkojot komponentu 1. solÄ«.

Kad visi trīs soļi ir paveikti, /fr/SFO, /de/SFO u.c. lapas būs pilnībā iztulkotas.

3. daļa — Produkcija

1. IzvietoÅ”ana: GitHub, pēc tam Vercel

AugÅ”upielādējiet GitHub:

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

Importējiet Vercel: Add New → Project → importējiet repozitoriju airports. Pievienojiet vides mainÄ«gos — PROFOUND_API_KEY, NEXT_PUBLIC_PROFOUND_WEBSITE_ID, NEXT_PUBLIC_CMS_API_URL un, ja nepiecieÅ”ams, NEXT_PUBLIC_BUNNY_CDN_URL — pēc tam izvēlieties Deploy. Apmeklējiet /en/JFK un /fr/SFO. Katrs turpmākais git push palaidÄ«s jaunu izvietoÅ”anu.

2. TieÅ”saistes priekÅ”skatÄ«jums un rediģēŔana uz vietas

Abi ir iekļauti karkasā.

  • TieÅ”saistes priekÅ”skatÄ«jums: <Refresher> failā layout.tsx atjauno lapu, kuru priekÅ”skatāt, tiklÄ«dz administrācijā saglabājat izmaiņas — izvietoÅ”ana nav nepiecieÅ”ama.
  • RediģēŔana uz vietas: pievienojiet ?edit_mode=true jebkuram URL (piemēram, …/en/JFK?edit_mode=true), lai redzētu redaktora pārklājumus. Publiskie apmeklētāji joprojām redz tÄ«ru lapu.

?edit_mode=true pārklāj tieŔsaistes lapu ar redaktora elementiem.

Tas ir viss par izstrādi

Piecdesmit lidostas, 35 valodas, tieÅ”saistes režīms — aprakstÄ«ts vienreiz un aizpildÄ«ts ar datiem: viens marÅ”ruts, četri React komponenti un pāris CEL sasaistes. CMS glabā saturu, jÅ«su kods to atveido, un CEL visu savieno kopā.

Continue Reading
NextDeployments›