├── .env.example ├── .github └── CODEOWNERS ├── .gitignore ├── .npmrc ├── .prettierignore ├── .prettierrc ├── README.md ├── catalog-info.yaml ├── contentful ├── export.json └── setup.js ├── package-lock.json ├── package.json ├── src ├── app.html ├── assets │ └── dell-7ZWVnVSaafY-unsplash.jpeg ├── lib │ ├── Callout.svelte │ ├── Footer.svelte │ ├── Header.svelte │ ├── Hero.svelte │ ├── Nav.svelte │ └── contentful-fetch.js └── routes │ ├── +error.svelte │ ├── +layout.svelte │ ├── +page.server.js │ ├── +page.svelte │ ├── global.css │ ├── offices │ ├── +page.server.js │ ├── +page.svelte │ ├── Card.svelte │ └── [slug] │ │ ├── +page.server.js │ │ └── +page.svelte │ └── starter.css ├── static └── favicon.png ├── svelte.config.js └── vite.config.js /.env.example: -------------------------------------------------------------------------------- 1 | CONTENTFUL_SPACE_ID = YOUR_SPACE_ID 2 | CONTENTFUL_ACCESS_TOKEN = YOUR_DELIVERY_TOKEN 3 | CONTENTFUL_MANAGEMENT_TOKEN = YOUR_MANAGEMENT_ACCESS_TOKEN -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @contentful/team-devrel -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /build 4 | /.svelte-kit 5 | /package 6 | .env 7 | .env.* 8 | !.env.example 9 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | engine-strict=true 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /build 4 | /.svelte-kit 5 | /package 6 | .env 7 | .env.* 8 | !.env.example 9 | 10 | # Ignore files for PNPM, NPM and YARN 11 | pnpm-lock.yaml 12 | package-lock.json 13 | yarn.lock 14 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "tabWidth": 2, 3 | "useTabs": false, 4 | "singleQuote": true, 5 | "trailingComma": "es5", 6 | "semi": false, 7 | "printWidth": 100 8 | } 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Contentful and Sveltekit starter 2 | 3 | [](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fcontentful%2Fsveltekit-starter) 4 | 5 | Everything you need to build a [SvelteKit](https://kit.svelte.dev/) project with Contentful. This starter shows you how to: 6 | 7 | - Fetch data from the Contentful GraphQL API 8 | - Create dynamic routes 9 | - Use the Svelte component Lifecycle 10 | - Display a map using Google Maps 11 | - Use [private Environment Variables](https://kit.svelte.dev/docs/modules#$env-static-private) server-side 12 | 13 | ## Quick Start 14 | 15 | ### Step 1. Get the source code and install dependencies 16 | 17 | Clone this repository 18 | 19 | ```bash 20 | git clone https://github.com/contentful/sveltekit-starter.git 21 | ``` 22 | 23 | Install dependencies. 24 | 25 | ```bash 26 | npm install 27 | ``` 28 | 29 | ### Step 2. Create an account and grab your secrets 30 | 31 | Create a Contentful account with an empty space. 32 | Go to your Contentful space and 33 | 34 | - Find your [Space ID](https://www.contentful.com/help/find-space-id/) 35 | - Create an access token for the [Content Delivery API](https://www.contentful.com/developers/docs/references/content-delivery-api/) 36 | - Create an access token for the [Content Management API](https://www.contentful.com/developers/docs/references/content-management-api/). 37 | 38 | ### Step 3. Create an environment file 39 | 40 | 1. Rename the `.env.example` at the root of your project to `.env` (so it is ignored by Git). 41 | 2. In the new `.env` file, replace `YOUR_SPACE_ID`, `YOUR_DELIVERY_TOKEN` and `YOUR_MANAGEMENT_ACCESS_TOKEN` with the values from the previous step. 42 | 43 | ### Step 4. Import our content model 44 | 45 | The project comes with a Contentful set up command that imports the required content model and adds sample content to your space. 46 | 47 | Run the following command to import the content model. 48 | 49 | ```bash 50 | npm run setup 51 | ``` 52 | 53 | ### Step 5. Run the project locally 54 | 55 | ```bash 56 | npm run dev 57 | ``` 58 | 59 | This will start the development server and open the app in a new browser tab. 60 | 61 | The page will reload when you make changes. 62 | 63 | ## Building 64 | 65 | To create a production version of your app: 66 | 67 | ```bash 68 | npm run build 69 | ``` 70 | 71 | You can preview the production build with `npm run preview`. 72 | 73 | > To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment. 74 | -------------------------------------------------------------------------------- /catalog-info.yaml: -------------------------------------------------------------------------------- 1 | # Backstage documentation 2 | # https://backstage.io/docs/features/software-catalog/descriptor-format/ 3 | 4 | # !!! WARNING !!! 5 | # This is a template file with a number of fields that need to be filled before merging this to the default branch 6 | apiVersion: backstage.io/v1alpha1 7 | # Component, API, Template, Group, User, Resource, System, Domain, Location 8 | kind: Component #this is the likely default, feel free to change to one of the above 9 | metadata: 10 | name: svelte-starter 11 | description: unknown 12 | annotations: 13 | github.com/project-slug: contentful/svelte-starter 14 | contentful.com/service-tier: "4" #1, 2, 3, 4 15 | # optional 16 | # https://contentful.roadie.so/catalog/default/component/ci-alerts/docs/ 17 | # to send CI alerts to your channel setup the integration using the docs above 18 | # and set the value below to your channel. 19 | contentful.com/ci-alert-slack: unknown # slack channel without the hashtag 20 | 21 | 22 | tags: 23 | - update-me 24 | #need to add sast.yaml to .github/workflows and enable it in polaris dashboard 25 | #once that is done this can be changed to sast-enabled 26 | - sast-disabled 27 | #make this match the value from service-tier above 28 | - tier-unknown 29 | spec: 30 | #cli, component, contentful.com/template, documentation, function, library, service, template, website 31 | type: unknown 32 | #deprecated, experimental, production, unknown 33 | lifecycle: unknown 34 | system: unknown #optional 35 | # your team name as it appears in github when tagging them for reviews 36 | owner: group:team-devrel 37 | -------------------------------------------------------------------------------- /contentful/export.json: -------------------------------------------------------------------------------- 1 | { 2 | "contentTypes": [ 3 | { 4 | "sys": { 5 | "space": { 6 | "sys": { 7 | "type": "Link", 8 | "linkType": "Space", 9 | "id": "jz4jyo63yjbd" 10 | } 11 | }, 12 | "id": "employee", 13 | "type": "ContentType", 14 | "createdAt": "2022-12-05T16:47:33.392Z", 15 | "updatedAt": "2022-12-05T16:48:52.846Z", 16 | "environment": { 17 | "sys": { 18 | "id": "master", 19 | "type": "Link", 20 | "linkType": "Environment" 21 | } 22 | }, 23 | "publishedVersion": 3, 24 | "publishedAt": "2022-12-05T16:48:52.846Z", 25 | "firstPublishedAt": "2022-12-05T16:47:34.456Z", 26 | "createdBy": { 27 | "sys": { 28 | "type": "Link", 29 | "linkType": "User", 30 | "id": "0q85kL9zVu8Vw90mCqd43K" 31 | } 32 | }, 33 | "updatedBy": { 34 | "sys": { 35 | "type": "Link", 36 | "linkType": "User", 37 | "id": "0q85kL9zVu8Vw90mCqd43K" 38 | } 39 | }, 40 | "publishedCounter": 2, 41 | "version": 4, 42 | "publishedBy": { 43 | "sys": { 44 | "type": "Link", 45 | "linkType": "User", 46 | "id": "0q85kL9zVu8Vw90mCqd43K" 47 | } 48 | } 49 | }, 50 | "displayField": "name", 51 | "name": "Employee", 52 | "description": "", 53 | "fields": [ 54 | { 55 | "id": "name", 56 | "name": "Name", 57 | "type": "Symbol", 58 | "localized": false, 59 | "required": false, 60 | "validations": [ 61 | ], 62 | "disabled": false, 63 | "omitted": false 64 | }, 65 | { 66 | "id": "photo", 67 | "name": "Photo", 68 | "type": "Link", 69 | "localized": false, 70 | "required": false, 71 | "validations": [ 72 | ], 73 | "disabled": false, 74 | "omitted": false, 75 | "linkType": "Asset" 76 | }, 77 | { 78 | "id": "startDate", 79 | "name": "Start Date", 80 | "type": "Date", 81 | "localized": false, 82 | "required": false, 83 | "validations": [ 84 | ], 85 | "disabled": false, 86 | "omitted": false 87 | }, 88 | { 89 | "id": "jobTitle", 90 | "name": "Job Title", 91 | "type": "Symbol", 92 | "localized": false, 93 | "required": false, 94 | "validations": [ 95 | ], 96 | "disabled": false, 97 | "omitted": false 98 | } 99 | ] 100 | }, 101 | { 102 | "sys": { 103 | "space": { 104 | "sys": { 105 | "type": "Link", 106 | "linkType": "Space", 107 | "id": "jz4jyo63yjbd" 108 | } 109 | }, 110 | "id": "office", 111 | "type": "ContentType", 112 | "createdAt": "2022-12-05T16:47:33.414Z", 113 | "updatedAt": "2022-12-05T16:48:52.231Z", 114 | "environment": { 115 | "sys": { 116 | "id": "master", 117 | "type": "Link", 118 | "linkType": "Environment" 119 | } 120 | }, 121 | "publishedVersion": 3, 122 | "publishedAt": "2022-12-05T16:48:52.231Z", 123 | "firstPublishedAt": "2022-12-05T16:47:33.914Z", 124 | "createdBy": { 125 | "sys": { 126 | "type": "Link", 127 | "linkType": "User", 128 | "id": "0q85kL9zVu8Vw90mCqd43K" 129 | } 130 | }, 131 | "updatedBy": { 132 | "sys": { 133 | "type": "Link", 134 | "linkType": "User", 135 | "id": "0q85kL9zVu8Vw90mCqd43K" 136 | } 137 | }, 138 | "publishedCounter": 2, 139 | "version": 4, 140 | "publishedBy": { 141 | "sys": { 142 | "type": "Link", 143 | "linkType": "User", 144 | "id": "0q85kL9zVu8Vw90mCqd43K" 145 | } 146 | } 147 | }, 148 | "displayField": "name", 149 | "name": "Office", 150 | "description": "", 151 | "fields": [ 152 | { 153 | "id": "name", 154 | "name": "Name", 155 | "type": "Symbol", 156 | "localized": false, 157 | "required": false, 158 | "validations": [ 159 | ], 160 | "disabled": false, 161 | "omitted": false 162 | }, 163 | { 164 | "id": "location", 165 | "name": "Location", 166 | "type": "Location", 167 | "localized": false, 168 | "required": false, 169 | "validations": [ 170 | ], 171 | "disabled": false, 172 | "omitted": false 173 | }, 174 | { 175 | "id": "photo", 176 | "name": "Photo", 177 | "type": "Link", 178 | "localized": false, 179 | "required": false, 180 | "validations": [ 181 | ], 182 | "disabled": false, 183 | "omitted": false, 184 | "linkType": "Asset" 185 | }, 186 | { 187 | "id": "slug", 188 | "name": "slug", 189 | "type": "Symbol", 190 | "localized": false, 191 | "required": false, 192 | "validations": [ 193 | ], 194 | "disabled": false, 195 | "omitted": false 196 | }, 197 | { 198 | "id": "description", 199 | "name": "description", 200 | "type": "RichText", 201 | "localized": false, 202 | "required": false, 203 | "validations": [ 204 | { 205 | "enabledNodeTypes": [ 206 | "heading-1", 207 | "heading-2", 208 | "heading-3", 209 | "heading-4", 210 | "heading-5", 211 | "heading-6", 212 | "ordered-list", 213 | "unordered-list", 214 | "hr", 215 | "blockquote", 216 | "embedded-entry-block", 217 | "embedded-asset-block", 218 | "table", 219 | "hyperlink", 220 | "entry-hyperlink", 221 | "asset-hyperlink", 222 | "embedded-entry-inline" 223 | ] 224 | }, 225 | { 226 | "enabledMarks": [ 227 | "bold", 228 | "italic", 229 | "underline", 230 | "code" 231 | ] 232 | } 233 | ], 234 | "disabled": false, 235 | "omitted": false 236 | } 237 | ] 238 | } 239 | ], 240 | "tags": [ 241 | ], 242 | "editorInterfaces": [ 243 | { 244 | "sys": { 245 | "id": "default", 246 | "type": "EditorInterface", 247 | "space": { 248 | "sys": { 249 | "id": "jz4jyo63yjbd", 250 | "type": "Link", 251 | "linkType": "Space" 252 | } 253 | }, 254 | "version": 4, 255 | "createdAt": "2022-12-05T16:47:34.561Z", 256 | "createdBy": { 257 | "sys": { 258 | "id": "0q85kL9zVu8Vw90mCqd43K", 259 | "type": "Link", 260 | "linkType": "User" 261 | } 262 | }, 263 | "updatedAt": "2022-12-05T16:48:54.021Z", 264 | "updatedBy": { 265 | "sys": { 266 | "id": "0q85kL9zVu8Vw90mCqd43K", 267 | "type": "Link", 268 | "linkType": "User" 269 | } 270 | }, 271 | "contentType": { 272 | "sys": { 273 | "id": "employee", 274 | "type": "Link", 275 | "linkType": "ContentType" 276 | } 277 | }, 278 | "environment": { 279 | "sys": { 280 | "id": "master", 281 | "type": "Link", 282 | "linkType": "Environment" 283 | } 284 | } 285 | }, 286 | "controls": [ 287 | { 288 | "fieldId": "name", 289 | "widgetId": "singleLine", 290 | "widgetNamespace": "builtin" 291 | }, 292 | { 293 | "fieldId": "photo", 294 | "widgetId": "assetLinkEditor", 295 | "widgetNamespace": "builtin" 296 | }, 297 | { 298 | "fieldId": "startDate", 299 | "widgetId": "datePicker", 300 | "widgetNamespace": "builtin" 301 | }, 302 | { 303 | "fieldId": "jobTitle", 304 | "widgetId": "singleLine", 305 | "widgetNamespace": "builtin" 306 | } 307 | ] 308 | }, 309 | { 310 | "sys": { 311 | "id": "default", 312 | "type": "EditorInterface", 313 | "space": { 314 | "sys": { 315 | "id": "jz4jyo63yjbd", 316 | "type": "Link", 317 | "linkType": "Space" 318 | } 319 | }, 320 | "version": 4, 321 | "createdAt": "2022-12-05T16:47:34.025Z", 322 | "createdBy": { 323 | "sys": { 324 | "id": "0q85kL9zVu8Vw90mCqd43K", 325 | "type": "Link", 326 | "linkType": "User" 327 | } 328 | }, 329 | "updatedAt": "2022-12-05T16:48:53.996Z", 330 | "updatedBy": { 331 | "sys": { 332 | "id": "0q85kL9zVu8Vw90mCqd43K", 333 | "type": "Link", 334 | "linkType": "User" 335 | } 336 | }, 337 | "contentType": { 338 | "sys": { 339 | "id": "office", 340 | "type": "Link", 341 | "linkType": "ContentType" 342 | } 343 | }, 344 | "environment": { 345 | "sys": { 346 | "id": "master", 347 | "type": "Link", 348 | "linkType": "Environment" 349 | } 350 | } 351 | }, 352 | "controls": [ 353 | { 354 | "fieldId": "name", 355 | "widgetId": "singleLine", 356 | "widgetNamespace": "builtin" 357 | }, 358 | { 359 | "fieldId": "location", 360 | "widgetId": "locationEditor", 361 | "widgetNamespace": "builtin" 362 | }, 363 | { 364 | "fieldId": "photo", 365 | "widgetId": "assetLinkEditor", 366 | "widgetNamespace": "builtin" 367 | }, 368 | { 369 | "fieldId": "slug", 370 | "widgetId": "slugEditor", 371 | "widgetNamespace": "builtin" 372 | }, 373 | { 374 | "fieldId": "description", 375 | "widgetId": "richTextEditor", 376 | "widgetNamespace": "builtin" 377 | } 378 | ] 379 | } 380 | ], 381 | "entries": [ 382 | { 383 | "metadata": { 384 | "tags": [ 385 | ] 386 | }, 387 | "sys": { 388 | "space": { 389 | "sys": { 390 | "type": "Link", 391 | "linkType": "Space", 392 | "id": "jz4jyo63yjbd" 393 | } 394 | }, 395 | "id": "2wk8NeR1SIM0sph5FgLHYd", 396 | "type": "Entry", 397 | "createdAt": "2022-12-05T16:49:08.501Z", 398 | "updatedAt": "2022-12-05T16:49:12.352Z", 399 | "environment": { 400 | "sys": { 401 | "id": "master", 402 | "type": "Link", 403 | "linkType": "Environment" 404 | } 405 | }, 406 | "publishedVersion": 1, 407 | "publishedAt": "2022-12-05T16:49:12.352Z", 408 | "firstPublishedAt": "2022-12-05T16:49:12.352Z", 409 | "createdBy": { 410 | "sys": { 411 | "type": "Link", 412 | "linkType": "User", 413 | "id": "0q85kL9zVu8Vw90mCqd43K" 414 | } 415 | }, 416 | "updatedBy": { 417 | "sys": { 418 | "type": "Link", 419 | "linkType": "User", 420 | "id": "0q85kL9zVu8Vw90mCqd43K" 421 | } 422 | }, 423 | "publishedCounter": 1, 424 | "version": 2, 425 | "publishedBy": { 426 | "sys": { 427 | "type": "Link", 428 | "linkType": "User", 429 | "id": "0q85kL9zVu8Vw90mCqd43K" 430 | } 431 | }, 432 | "contentType": { 433 | "sys": { 434 | "type": "Link", 435 | "linkType": "ContentType", 436 | "id": "employee" 437 | } 438 | } 439 | }, 440 | "fields": { 441 | "name": { 442 | "en-US": "Jolene" 443 | }, 444 | "photo": { 445 | "en-US": { 446 | "sys": { 447 | "type": "Link", 448 | "linkType": "Asset", 449 | "id": "1DF7kv49qfE9EefT5CSWa6" 450 | } 451 | } 452 | }, 453 | "startDate": { 454 | "en-US": "2019-09-02T00:00+01:00" 455 | }, 456 | "jobTitle": { 457 | "en-US": "Co-Founder/CEO" 458 | } 459 | } 460 | }, 461 | { 462 | "metadata": { 463 | "tags": [ 464 | ] 465 | }, 466 | "sys": { 467 | "space": { 468 | "sys": { 469 | "type": "Link", 470 | "linkType": "Space", 471 | "id": "jz4jyo63yjbd" 472 | } 473 | }, 474 | "id": "5o19pXuAcwQzKLOn197LzN", 475 | "type": "Entry", 476 | "createdAt": "2022-12-05T16:49:08.525Z", 477 | "updatedAt": "2022-12-05T16:49:11.150Z", 478 | "environment": { 479 | "sys": { 480 | "id": "master", 481 | "type": "Link", 482 | "linkType": "Environment" 483 | } 484 | }, 485 | "publishedVersion": 1, 486 | "publishedAt": "2022-12-05T16:49:11.150Z", 487 | "firstPublishedAt": "2022-12-05T16:49:11.150Z", 488 | "createdBy": { 489 | "sys": { 490 | "type": "Link", 491 | "linkType": "User", 492 | "id": "0q85kL9zVu8Vw90mCqd43K" 493 | } 494 | }, 495 | "updatedBy": { 496 | "sys": { 497 | "type": "Link", 498 | "linkType": "User", 499 | "id": "0q85kL9zVu8Vw90mCqd43K" 500 | } 501 | }, 502 | "publishedCounter": 1, 503 | "version": 2, 504 | "publishedBy": { 505 | "sys": { 506 | "type": "Link", 507 | "linkType": "User", 508 | "id": "0q85kL9zVu8Vw90mCqd43K" 509 | } 510 | }, 511 | "contentType": { 512 | "sys": { 513 | "type": "Link", 514 | "linkType": "ContentType", 515 | "id": "office" 516 | } 517 | } 518 | }, 519 | "fields": { 520 | "name": { 521 | "en-US": "London" 522 | }, 523 | "location": { 524 | "en-US": { 525 | "lon": -0.09746, 526 | "lat": 51.515 527 | } 528 | }, 529 | "photo": { 530 | "en-US": { 531 | "sys": { 532 | "type": "Link", 533 | "linkType": "Asset", 534 | "id": "57uuka7k0SIfy9Qa3R6crZ" 535 | } 536 | } 537 | }, 538 | "slug": { 539 | "en-US": "london" 540 | }, 541 | "description": { 542 | "en-US": { 543 | "nodeType": "document", 544 | "data": { 545 | }, 546 | "content": [ 547 | { 548 | "nodeType": "paragraph", 549 | "data": { 550 | }, 551 | "content": [ 552 | { 553 | "nodeType": "text", 554 | "value": "In the heart of the city", 555 | "marks": [ 556 | ], 557 | "data": { 558 | } 559 | } 560 | ] 561 | } 562 | ] 563 | } 564 | } 565 | } 566 | }, 567 | { 568 | "metadata": { 569 | "tags": [ 570 | ] 571 | }, 572 | "sys": { 573 | "space": { 574 | "sys": { 575 | "type": "Link", 576 | "linkType": "Space", 577 | "id": "jz4jyo63yjbd" 578 | } 579 | }, 580 | "id": "01KziPguMDafu86GzGT6CD", 581 | "type": "Entry", 582 | "createdAt": "2022-12-05T16:49:08.543Z", 583 | "updatedAt": "2022-12-05T16:49:10.575Z", 584 | "environment": { 585 | "sys": { 586 | "id": "master", 587 | "type": "Link", 588 | "linkType": "Environment" 589 | } 590 | }, 591 | "publishedVersion": 1, 592 | "publishedAt": "2022-12-05T16:49:10.575Z", 593 | "firstPublishedAt": "2022-12-05T16:49:10.575Z", 594 | "createdBy": { 595 | "sys": { 596 | "type": "Link", 597 | "linkType": "User", 598 | "id": "0q85kL9zVu8Vw90mCqd43K" 599 | } 600 | }, 601 | "updatedBy": { 602 | "sys": { 603 | "type": "Link", 604 | "linkType": "User", 605 | "id": "0q85kL9zVu8Vw90mCqd43K" 606 | } 607 | }, 608 | "publishedCounter": 1, 609 | "version": 2, 610 | "publishedBy": { 611 | "sys": { 612 | "type": "Link", 613 | "linkType": "User", 614 | "id": "0q85kL9zVu8Vw90mCqd43K" 615 | } 616 | }, 617 | "contentType": { 618 | "sys": { 619 | "type": "Link", 620 | "linkType": "ContentType", 621 | "id": "office" 622 | } 623 | } 624 | }, 625 | "fields": { 626 | "name": { 627 | "en-US": "Berlin" 628 | }, 629 | "location": { 630 | "en-US": { 631 | "lon": 13.40495, 632 | "lat": 52.52 633 | } 634 | }, 635 | "photo": { 636 | "en-US": { 637 | "sys": { 638 | "type": "Link", 639 | "linkType": "Asset", 640 | "id": "1TudLijR6DF4fErsWfg5Jo" 641 | } 642 | } 643 | }, 644 | "slug": { 645 | "en-US": "berlin" 646 | }, 647 | "description": { 648 | "en-US": { 649 | "nodeType": "document", 650 | "data": { 651 | }, 652 | "content": [ 653 | { 654 | "nodeType": "paragraph", 655 | "data": { 656 | }, 657 | "content": [ 658 | { 659 | "nodeType": "text", 660 | "value": "Where it all began", 661 | "marks": [ 662 | ], 663 | "data": { 664 | } 665 | } 666 | ] 667 | } 668 | ] 669 | } 670 | } 671 | } 672 | }, 673 | { 674 | "metadata": { 675 | "tags": [ 676 | ] 677 | }, 678 | "sys": { 679 | "space": { 680 | "sys": { 681 | "type": "Link", 682 | "linkType": "Space", 683 | "id": "jz4jyo63yjbd" 684 | } 685 | }, 686 | "id": "7svaJ4oy6dRe16pcjxGhVB", 687 | "type": "Entry", 688 | "createdAt": "2022-12-05T16:49:08.555Z", 689 | "updatedAt": "2022-12-05T16:49:11.805Z", 690 | "environment": { 691 | "sys": { 692 | "id": "master", 693 | "type": "Link", 694 | "linkType": "Environment" 695 | } 696 | }, 697 | "publishedVersion": 1, 698 | "publishedAt": "2022-12-05T16:49:11.805Z", 699 | "firstPublishedAt": "2022-12-05T16:49:11.805Z", 700 | "createdBy": { 701 | "sys": { 702 | "type": "Link", 703 | "linkType": "User", 704 | "id": "0q85kL9zVu8Vw90mCqd43K" 705 | } 706 | }, 707 | "updatedBy": { 708 | "sys": { 709 | "type": "Link", 710 | "linkType": "User", 711 | "id": "0q85kL9zVu8Vw90mCqd43K" 712 | } 713 | }, 714 | "publishedCounter": 1, 715 | "version": 2, 716 | "publishedBy": { 717 | "sys": { 718 | "type": "Link", 719 | "linkType": "User", 720 | "id": "0q85kL9zVu8Vw90mCqd43K" 721 | } 722 | }, 723 | "contentType": { 724 | "sys": { 725 | "type": "Link", 726 | "linkType": "ContentType", 727 | "id": "office" 728 | } 729 | } 730 | }, 731 | "fields": { 732 | "name": { 733 | "en-US": "New York" 734 | }, 735 | "location": { 736 | "en-US": { 737 | "lon": -73.953, 738 | "lat": 40.79121 739 | } 740 | }, 741 | "photo": { 742 | "en-US": { 743 | "sys": { 744 | "type": "Link", 745 | "linkType": "Asset", 746 | "id": "6LhuOC9eJJ5wmpMwq8CZAW" 747 | } 748 | } 749 | }, 750 | "slug": { 751 | "en-US": "nyc" 752 | }, 753 | "description": { 754 | "en-US": { 755 | "nodeType": "document", 756 | "data": { 757 | }, 758 | "content": [ 759 | { 760 | "nodeType": "paragraph", 761 | "data": { 762 | }, 763 | "content": [ 764 | { 765 | "nodeType": "text", 766 | "value": "We're in the Big Apple too", 767 | "marks": [ 768 | ], 769 | "data": { 770 | } 771 | } 772 | ] 773 | } 774 | ] 775 | } 776 | } 777 | } 778 | }, 779 | { 780 | "metadata": { 781 | "tags": [ 782 | ] 783 | }, 784 | "sys": { 785 | "space": { 786 | "sys": { 787 | "type": "Link", 788 | "linkType": "Space", 789 | "id": "jz4jyo63yjbd" 790 | } 791 | }, 792 | "id": "2YbVTFZVKwtqepVi6KNkTU", 793 | "type": "Entry", 794 | "createdAt": "2022-12-05T16:49:08.561Z", 795 | "updatedAt": "2022-12-05T16:49:12.961Z", 796 | "environment": { 797 | "sys": { 798 | "id": "master", 799 | "type": "Link", 800 | "linkType": "Environment" 801 | } 802 | }, 803 | "publishedVersion": 1, 804 | "publishedAt": "2022-12-05T16:49:12.961Z", 805 | "firstPublishedAt": "2022-12-05T16:49:12.961Z", 806 | "createdBy": { 807 | "sys": { 808 | "type": "Link", 809 | "linkType": "User", 810 | "id": "0q85kL9zVu8Vw90mCqd43K" 811 | } 812 | }, 813 | "updatedBy": { 814 | "sys": { 815 | "type": "Link", 816 | "linkType": "User", 817 | "id": "0q85kL9zVu8Vw90mCqd43K" 818 | } 819 | }, 820 | "publishedCounter": 1, 821 | "version": 2, 822 | "publishedBy": { 823 | "sys": { 824 | "type": "Link", 825 | "linkType": "User", 826 | "id": "0q85kL9zVu8Vw90mCqd43K" 827 | } 828 | }, 829 | "contentType": { 830 | "sys": { 831 | "type": "Link", 832 | "linkType": "ContentType", 833 | "id": "employee" 834 | } 835 | } 836 | }, 837 | "fields": { 838 | "name": { 839 | "en-US": "Mandy" 840 | }, 841 | "photo": { 842 | "en-US": { 843 | "sys": { 844 | "type": "Link", 845 | "linkType": "Asset", 846 | "id": "2K6h8ZmNb5do0pzlzrz2jX" 847 | } 848 | } 849 | }, 850 | "startDate": { 851 | "en-US": "2022-05-09T00:00+01:00" 852 | }, 853 | "jobTitle": { 854 | "en-US": "Recruiter" 855 | } 856 | } 857 | }, 858 | { 859 | "metadata": { 860 | "tags": [ 861 | ] 862 | }, 863 | "sys": { 864 | "space": { 865 | "sys": { 866 | "type": "Link", 867 | "linkType": "Space", 868 | "id": "jz4jyo63yjbd" 869 | } 870 | }, 871 | "id": "r0iVQY2bCE1sHbmswNHr9", 872 | "type": "Entry", 873 | "createdAt": "2022-12-05T16:49:08.958Z", 874 | "updatedAt": "2022-12-05T16:49:14.300Z", 875 | "environment": { 876 | "sys": { 877 | "id": "master", 878 | "type": "Link", 879 | "linkType": "Environment" 880 | } 881 | }, 882 | "publishedVersion": 1, 883 | "publishedAt": "2022-12-05T16:49:14.300Z", 884 | "firstPublishedAt": "2022-12-05T16:49:14.300Z", 885 | "createdBy": { 886 | "sys": { 887 | "type": "Link", 888 | "linkType": "User", 889 | "id": "0q85kL9zVu8Vw90mCqd43K" 890 | } 891 | }, 892 | "updatedBy": { 893 | "sys": { 894 | "type": "Link", 895 | "linkType": "User", 896 | "id": "0q85kL9zVu8Vw90mCqd43K" 897 | } 898 | }, 899 | "publishedCounter": 1, 900 | "version": 2, 901 | "publishedBy": { 902 | "sys": { 903 | "type": "Link", 904 | "linkType": "User", 905 | "id": "0q85kL9zVu8Vw90mCqd43K" 906 | } 907 | }, 908 | "contentType": { 909 | "sys": { 910 | "type": "Link", 911 | "linkType": "ContentType", 912 | "id": "employee" 913 | } 914 | } 915 | }, 916 | "fields": { 917 | "name": { 918 | "en-US": "Kevin" 919 | }, 920 | "photo": { 921 | "en-US": { 922 | "sys": { 923 | "type": "Link", 924 | "linkType": "Asset", 925 | "id": "31Oa8QFBgkl5zn9t5zbptj" 926 | } 927 | } 928 | }, 929 | "startDate": { 930 | "en-US": "2020-07-13T00:00+01:00" 931 | }, 932 | "jobTitle": { 933 | "en-US": "Head of Talent Acquisition" 934 | } 935 | } 936 | }, 937 | { 938 | "metadata": { 939 | "tags": [ 940 | ] 941 | }, 942 | "sys": { 943 | "space": { 944 | "sys": { 945 | "type": "Link", 946 | "linkType": "Space", 947 | "id": "jz4jyo63yjbd" 948 | } 949 | }, 950 | "id": "7Mou5WTJYETioXFhvC3pIk", 951 | "type": "Entry", 952 | "createdAt": "2022-12-05T16:49:08.968Z", 953 | "updatedAt": "2022-12-05T16:49:13.580Z", 954 | "environment": { 955 | "sys": { 956 | "id": "master", 957 | "type": "Link", 958 | "linkType": "Environment" 959 | } 960 | }, 961 | "publishedVersion": 1, 962 | "publishedAt": "2022-12-05T16:49:13.580Z", 963 | "firstPublishedAt": "2022-12-05T16:49:13.580Z", 964 | "createdBy": { 965 | "sys": { 966 | "type": "Link", 967 | "linkType": "User", 968 | "id": "0q85kL9zVu8Vw90mCqd43K" 969 | } 970 | }, 971 | "updatedBy": { 972 | "sys": { 973 | "type": "Link", 974 | "linkType": "User", 975 | "id": "0q85kL9zVu8Vw90mCqd43K" 976 | } 977 | }, 978 | "publishedCounter": 1, 979 | "version": 2, 980 | "publishedBy": { 981 | "sys": { 982 | "type": "Link", 983 | "linkType": "User", 984 | "id": "0q85kL9zVu8Vw90mCqd43K" 985 | } 986 | }, 987 | "contentType": { 988 | "sys": { 989 | "type": "Link", 990 | "linkType": "ContentType", 991 | "id": "employee" 992 | } 993 | } 994 | }, 995 | "fields": { 996 | "name": { 997 | "en-US": "Helen" 998 | }, 999 | "photo": { 1000 | "en-US": { 1001 | "sys": { 1002 | "type": "Link", 1003 | "linkType": "Asset", 1004 | "id": "1oQY9yrFA4F3jvPanRNJBy" 1005 | } 1006 | } 1007 | }, 1008 | "startDate": { 1009 | "en-US": "2019-09-02T00:00+01:00" 1010 | }, 1011 | "jobTitle": { 1012 | "en-US": "Head of HR" 1013 | } 1014 | } 1015 | }, 1016 | { 1017 | "metadata": { 1018 | "tags": [ 1019 | ] 1020 | }, 1021 | "sys": { 1022 | "space": { 1023 | "sys": { 1024 | "type": "Link", 1025 | "linkType": "Space", 1026 | "id": "jz4jyo63yjbd" 1027 | } 1028 | }, 1029 | "id": "5zFaViJK4HzYDACow6ACQq", 1030 | "type": "Entry", 1031 | "createdAt": "2022-12-05T16:49:09.898Z", 1032 | "updatedAt": "2022-12-05T16:49:16.034Z", 1033 | "environment": { 1034 | "sys": { 1035 | "id": "master", 1036 | "type": "Link", 1037 | "linkType": "Environment" 1038 | } 1039 | }, 1040 | "publishedVersion": 1, 1041 | "publishedAt": "2022-12-05T16:49:16.034Z", 1042 | "firstPublishedAt": "2022-12-05T16:49:16.034Z", 1043 | "createdBy": { 1044 | "sys": { 1045 | "type": "Link", 1046 | "linkType": "User", 1047 | "id": "0q85kL9zVu8Vw90mCqd43K" 1048 | } 1049 | }, 1050 | "updatedBy": { 1051 | "sys": { 1052 | "type": "Link", 1053 | "linkType": "User", 1054 | "id": "0q85kL9zVu8Vw90mCqd43K" 1055 | } 1056 | }, 1057 | "publishedCounter": 1, 1058 | "version": 2, 1059 | "publishedBy": { 1060 | "sys": { 1061 | "type": "Link", 1062 | "linkType": "User", 1063 | "id": "0q85kL9zVu8Vw90mCqd43K" 1064 | } 1065 | }, 1066 | "contentType": { 1067 | "sys": { 1068 | "type": "Link", 1069 | "linkType": "ContentType", 1070 | "id": "employee" 1071 | } 1072 | } 1073 | }, 1074 | "fields": { 1075 | "name": { 1076 | "en-US": "Steve" 1077 | }, 1078 | "photo": { 1079 | "en-US": { 1080 | "sys": { 1081 | "type": "Link", 1082 | "linkType": "Asset", 1083 | "id": "4C60JyuhN53zelwFX65lRc" 1084 | } 1085 | } 1086 | }, 1087 | "startDate": { 1088 | "en-US": "2019-10-07T00:00+01:00" 1089 | }, 1090 | "jobTitle": { 1091 | "en-US": "Designer" 1092 | } 1093 | } 1094 | }, 1095 | { 1096 | "metadata": { 1097 | "tags": [ 1098 | ] 1099 | }, 1100 | "sys": { 1101 | "space": { 1102 | "sys": { 1103 | "type": "Link", 1104 | "linkType": "Space", 1105 | "id": "jz4jyo63yjbd" 1106 | } 1107 | }, 1108 | "id": "46KOzm01zVjkRpO4H6o1b4", 1109 | "type": "Entry", 1110 | "createdAt": "2022-12-05T16:49:09.916Z", 1111 | "updatedAt": "2022-12-05T16:49:15.487Z", 1112 | "environment": { 1113 | "sys": { 1114 | "id": "master", 1115 | "type": "Link", 1116 | "linkType": "Environment" 1117 | } 1118 | }, 1119 | "publishedVersion": 1, 1120 | "publishedAt": "2022-12-05T16:49:15.487Z", 1121 | "firstPublishedAt": "2022-12-05T16:49:15.487Z", 1122 | "createdBy": { 1123 | "sys": { 1124 | "type": "Link", 1125 | "linkType": "User", 1126 | "id": "0q85kL9zVu8Vw90mCqd43K" 1127 | } 1128 | }, 1129 | "updatedBy": { 1130 | "sys": { 1131 | "type": "Link", 1132 | "linkType": "User", 1133 | "id": "0q85kL9zVu8Vw90mCqd43K" 1134 | } 1135 | }, 1136 | "publishedCounter": 1, 1137 | "version": 2, 1138 | "publishedBy": { 1139 | "sys": { 1140 | "type": "Link", 1141 | "linkType": "User", 1142 | "id": "0q85kL9zVu8Vw90mCqd43K" 1143 | } 1144 | }, 1145 | "contentType": { 1146 | "sys": { 1147 | "type": "Link", 1148 | "linkType": "ContentType", 1149 | "id": "employee" 1150 | } 1151 | } 1152 | }, 1153 | "fields": { 1154 | "name": { 1155 | "en-US": "Pablo" 1156 | }, 1157 | "photo": { 1158 | "en-US": { 1159 | "sys": { 1160 | "type": "Link", 1161 | "linkType": "Asset", 1162 | "id": "6xs6notpedh3SxT1etSCYr" 1163 | } 1164 | } 1165 | }, 1166 | "startDate": { 1167 | "en-US": "2020-03-09T00:00+01:00" 1168 | }, 1169 | "jobTitle": { 1170 | "en-US": "Fullstack Developer" 1171 | } 1172 | } 1173 | }, 1174 | { 1175 | "metadata": { 1176 | "tags": [ 1177 | ] 1178 | }, 1179 | "sys": { 1180 | "space": { 1181 | "sys": { 1182 | "type": "Link", 1183 | "linkType": "Space", 1184 | "id": "jz4jyo63yjbd" 1185 | } 1186 | }, 1187 | "id": "2fDY3vxpMF1cNhCjN37uo2", 1188 | "type": "Entry", 1189 | "createdAt": "2022-12-05T16:49:09.931Z", 1190 | "updatedAt": "2022-12-05T16:49:14.965Z", 1191 | "environment": { 1192 | "sys": { 1193 | "id": "master", 1194 | "type": "Link", 1195 | "linkType": "Environment" 1196 | } 1197 | }, 1198 | "publishedVersion": 1, 1199 | "publishedAt": "2022-12-05T16:49:14.965Z", 1200 | "firstPublishedAt": "2022-12-05T16:49:14.965Z", 1201 | "createdBy": { 1202 | "sys": { 1203 | "type": "Link", 1204 | "linkType": "User", 1205 | "id": "0q85kL9zVu8Vw90mCqd43K" 1206 | } 1207 | }, 1208 | "updatedBy": { 1209 | "sys": { 1210 | "type": "Link", 1211 | "linkType": "User", 1212 | "id": "0q85kL9zVu8Vw90mCqd43K" 1213 | } 1214 | }, 1215 | "publishedCounter": 1, 1216 | "version": 2, 1217 | "publishedBy": { 1218 | "sys": { 1219 | "type": "Link", 1220 | "linkType": "User", 1221 | "id": "0q85kL9zVu8Vw90mCqd43K" 1222 | } 1223 | }, 1224 | "contentType": { 1225 | "sys": { 1226 | "type": "Link", 1227 | "linkType": "ContentType", 1228 | "id": "employee" 1229 | } 1230 | } 1231 | }, 1232 | "fields": { 1233 | "name": { 1234 | "en-US": "Patrick" 1235 | }, 1236 | "photo": { 1237 | "en-US": { 1238 | "sys": { 1239 | "type": "Link", 1240 | "linkType": "Asset", 1241 | "id": "k1tGlW6ILZzivPxEx5uPT" 1242 | } 1243 | } 1244 | }, 1245 | "startDate": { 1246 | "en-US": "2021-04-19T00:00+01:00" 1247 | }, 1248 | "jobTitle": { 1249 | "en-US": "Engineering Manager" 1250 | } 1251 | } 1252 | }, 1253 | { 1254 | "metadata": { 1255 | "tags": [ 1256 | ] 1257 | }, 1258 | "sys": { 1259 | "space": { 1260 | "sys": { 1261 | "type": "Link", 1262 | "linkType": "Space", 1263 | "id": "jz4jyo63yjbd" 1264 | } 1265 | }, 1266 | "id": "Dr9HHEDzjvnzIBAHcRpLS", 1267 | "type": "Entry", 1268 | "createdAt": "2022-12-05T16:49:09.939Z", 1269 | "updatedAt": "2022-12-05T16:49:17.005Z", 1270 | "environment": { 1271 | "sys": { 1272 | "id": "master", 1273 | "type": "Link", 1274 | "linkType": "Environment" 1275 | } 1276 | }, 1277 | "publishedVersion": 1, 1278 | "publishedAt": "2022-12-05T16:49:17.005Z", 1279 | "firstPublishedAt": "2022-12-05T16:49:17.005Z", 1280 | "createdBy": { 1281 | "sys": { 1282 | "type": "Link", 1283 | "linkType": "User", 1284 | "id": "0q85kL9zVu8Vw90mCqd43K" 1285 | } 1286 | }, 1287 | "updatedBy": { 1288 | "sys": { 1289 | "type": "Link", 1290 | "linkType": "User", 1291 | "id": "0q85kL9zVu8Vw90mCqd43K" 1292 | } 1293 | }, 1294 | "publishedCounter": 1, 1295 | "version": 2, 1296 | "publishedBy": { 1297 | "sys": { 1298 | "type": "Link", 1299 | "linkType": "User", 1300 | "id": "0q85kL9zVu8Vw90mCqd43K" 1301 | } 1302 | }, 1303 | "contentType": { 1304 | "sys": { 1305 | "type": "Link", 1306 | "linkType": "ContentType", 1307 | "id": "office" 1308 | } 1309 | } 1310 | }, 1311 | "fields": { 1312 | "name": { 1313 | "en-US": "San Francisco" 1314 | }, 1315 | "location": { 1316 | "en-US": { 1317 | "lon": -122.421, 1318 | "lat": 37.77337 1319 | } 1320 | }, 1321 | "photo": { 1322 | "en-US": { 1323 | "sys": { 1324 | "type": "Link", 1325 | "linkType": "Asset", 1326 | "id": "3pNrBRnILq0Tv9D553X48u" 1327 | } 1328 | } 1329 | }, 1330 | "slug": { 1331 | "en-US": "sf" 1332 | }, 1333 | "description": { 1334 | "en-US": { 1335 | "nodeType": "document", 1336 | "data": { 1337 | }, 1338 | "content": [ 1339 | { 1340 | "nodeType": "paragraph", 1341 | "data": { 1342 | }, 1343 | "content": [ 1344 | { 1345 | "nodeType": "text", 1346 | "value": "California, but not too hot", 1347 | "marks": [ 1348 | ], 1349 | "data": { 1350 | } 1351 | } 1352 | ] 1353 | } 1354 | ] 1355 | } 1356 | } 1357 | } 1358 | } 1359 | ], 1360 | "assets": [ 1361 | { 1362 | "metadata": { 1363 | "tags": [ 1364 | ] 1365 | }, 1366 | "sys": { 1367 | "space": { 1368 | "sys": { 1369 | "type": "Link", 1370 | "linkType": "Space", 1371 | "id": "jz4jyo63yjbd" 1372 | } 1373 | }, 1374 | "id": "6LhuOC9eJJ5wmpMwq8CZAW", 1375 | "type": "Asset", 1376 | "createdAt": "2022-12-05T16:47:35.749Z", 1377 | "updatedAt": "2022-12-05T16:49:03.795Z", 1378 | "environment": { 1379 | "sys": { 1380 | "id": "master", 1381 | "type": "Link", 1382 | "linkType": "Environment" 1383 | } 1384 | }, 1385 | "publishedVersion": 4, 1386 | "publishedAt": "2022-12-05T16:49:03.795Z", 1387 | "firstPublishedAt": "2022-12-05T16:49:03.795Z", 1388 | "createdBy": { 1389 | "sys": { 1390 | "type": "Link", 1391 | "linkType": "User", 1392 | "id": "0q85kL9zVu8Vw90mCqd43K" 1393 | } 1394 | }, 1395 | "updatedBy": { 1396 | "sys": { 1397 | "type": "Link", 1398 | "linkType": "User", 1399 | "id": "0q85kL9zVu8Vw90mCqd43K" 1400 | } 1401 | }, 1402 | "publishedCounter": 1, 1403 | "version": 5, 1404 | "publishedBy": { 1405 | "sys": { 1406 | "type": "Link", 1407 | "linkType": "User", 1408 | "id": "0q85kL9zVu8Vw90mCqd43K" 1409 | } 1410 | } 1411 | }, 1412 | "fields": { 1413 | "title": { 1414 | "en-US": "ny-office" 1415 | }, 1416 | "description": { 1417 | "en-US": "" 1418 | }, 1419 | "file": { 1420 | "en-US": { 1421 | "url": "//images.ctfassets.net/jz4jyo63yjbd/6LhuOC9eJJ5wmpMwq8CZAW/3591e205297ab665c0ace8377e5b16ab/contentful-toitoitoi-13.jpg", 1422 | "details": { 1423 | "size": 125582, 1424 | "image": { 1425 | "width": 1280, 1426 | "height": 854 1427 | } 1428 | }, 1429 | "fileName": "contentful-toitoitoi-13.jpg", 1430 | "contentType": "image/jpeg" 1431 | } 1432 | } 1433 | } 1434 | }, 1435 | { 1436 | "metadata": { 1437 | "tags": [ 1438 | ] 1439 | }, 1440 | "sys": { 1441 | "space": { 1442 | "sys": { 1443 | "type": "Link", 1444 | "linkType": "Space", 1445 | "id": "jz4jyo63yjbd" 1446 | } 1447 | }, 1448 | "id": "1TudLijR6DF4fErsWfg5Jo", 1449 | "type": "Asset", 1450 | "createdAt": "2022-12-05T16:47:35.764Z", 1451 | "updatedAt": "2022-12-05T16:49:02.881Z", 1452 | "environment": { 1453 | "sys": { 1454 | "id": "master", 1455 | "type": "Link", 1456 | "linkType": "Environment" 1457 | } 1458 | }, 1459 | "publishedVersion": 4, 1460 | "publishedAt": "2022-12-05T16:49:02.881Z", 1461 | "firstPublishedAt": "2022-12-05T16:49:02.881Z", 1462 | "createdBy": { 1463 | "sys": { 1464 | "type": "Link", 1465 | "linkType": "User", 1466 | "id": "0q85kL9zVu8Vw90mCqd43K" 1467 | } 1468 | }, 1469 | "updatedBy": { 1470 | "sys": { 1471 | "type": "Link", 1472 | "linkType": "User", 1473 | "id": "0q85kL9zVu8Vw90mCqd43K" 1474 | } 1475 | }, 1476 | "publishedCounter": 1, 1477 | "version": 5, 1478 | "publishedBy": { 1479 | "sys": { 1480 | "type": "Link", 1481 | "linkType": "User", 1482 | "id": "0q85kL9zVu8Vw90mCqd43K" 1483 | } 1484 | } 1485 | }, 1486 | "fields": { 1487 | "title": { 1488 | "en-US": "contentful 118 tk 6593-" 1489 | }, 1490 | "description": { 1491 | "en-US": "" 1492 | }, 1493 | "file": { 1494 | "en-US": { 1495 | "url": "//images.ctfassets.net/jz4jyo63yjbd/1TudLijR6DF4fErsWfg5Jo/4376b9dad0d601ad54a135f4edd4f1d4/contentful_118_tk_6593-.jpg", 1496 | "details": { 1497 | "size": 157070, 1498 | "image": { 1499 | "width": 1280, 1500 | "height": 853 1501 | } 1502 | }, 1503 | "fileName": "contentful_118_tk_6593-.jpg", 1504 | "contentType": "image/jpeg" 1505 | } 1506 | } 1507 | } 1508 | }, 1509 | { 1510 | "metadata": { 1511 | "tags": [ 1512 | ] 1513 | }, 1514 | "sys": { 1515 | "space": { 1516 | "sys": { 1517 | "type": "Link", 1518 | "linkType": "Space", 1519 | "id": "jz4jyo63yjbd" 1520 | } 1521 | }, 1522 | "id": "1DF7kv49qfE9EefT5CSWa6", 1523 | "type": "Asset", 1524 | "createdAt": "2022-12-05T16:47:35.804Z", 1525 | "updatedAt": "2022-12-05T16:49:04.360Z", 1526 | "environment": { 1527 | "sys": { 1528 | "id": "master", 1529 | "type": "Link", 1530 | "linkType": "Environment" 1531 | } 1532 | }, 1533 | "publishedVersion": 4, 1534 | "publishedAt": "2022-12-05T16:49:04.360Z", 1535 | "firstPublishedAt": "2022-12-05T16:49:04.360Z", 1536 | "createdBy": { 1537 | "sys": { 1538 | "type": "Link", 1539 | "linkType": "User", 1540 | "id": "0q85kL9zVu8Vw90mCqd43K" 1541 | } 1542 | }, 1543 | "updatedBy": { 1544 | "sys": { 1545 | "type": "Link", 1546 | "linkType": "User", 1547 | "id": "0q85kL9zVu8Vw90mCqd43K" 1548 | } 1549 | }, 1550 | "publishedCounter": 1, 1551 | "version": 5, 1552 | "publishedBy": { 1553 | "sys": { 1554 | "type": "Link", 1555 | "linkType": "User", 1556 | "id": "0q85kL9zVu8Vw90mCqd43K" 1557 | } 1558 | } 1559 | }, 1560 | "fields": { 1561 | "title": { 1562 | "en-US": "imageJolene" 1563 | }, 1564 | "description": { 1565 | "en-US": "" 1566 | }, 1567 | "file": { 1568 | "en-US": { 1569 | "url": "//images.ctfassets.net/jz4jyo63yjbd/1DF7kv49qfE9EefT5CSWa6/0c03b14aaf91d084a342c78efe37a11c/image.png", 1570 | "details": { 1571 | "size": 1433065, 1572 | "image": { 1573 | "width": 1024, 1574 | "height": 1024 1575 | } 1576 | }, 1577 | "fileName": "image.png", 1578 | "contentType": "image/png" 1579 | } 1580 | } 1581 | } 1582 | }, 1583 | { 1584 | "metadata": { 1585 | "tags": [ 1586 | ] 1587 | }, 1588 | "sys": { 1589 | "space": { 1590 | "sys": { 1591 | "type": "Link", 1592 | "linkType": "Space", 1593 | "id": "jz4jyo63yjbd" 1594 | } 1595 | }, 1596 | "id": "57uuka7k0SIfy9Qa3R6crZ", 1597 | "type": "Asset", 1598 | "createdAt": "2022-12-05T16:47:35.805Z", 1599 | "updatedAt": "2022-12-05T16:49:03.335Z", 1600 | "environment": { 1601 | "sys": { 1602 | "id": "master", 1603 | "type": "Link", 1604 | "linkType": "Environment" 1605 | } 1606 | }, 1607 | "publishedVersion": 4, 1608 | "publishedAt": "2022-12-05T16:49:03.335Z", 1609 | "firstPublishedAt": "2022-12-05T16:49:03.335Z", 1610 | "createdBy": { 1611 | "sys": { 1612 | "type": "Link", 1613 | "linkType": "User", 1614 | "id": "0q85kL9zVu8Vw90mCqd43K" 1615 | } 1616 | }, 1617 | "updatedBy": { 1618 | "sys": { 1619 | "type": "Link", 1620 | "linkType": "User", 1621 | "id": "0q85kL9zVu8Vw90mCqd43K" 1622 | } 1623 | }, 1624 | "publishedCounter": 1, 1625 | "version": 5, 1626 | "publishedBy": { 1627 | "sys": { 1628 | "type": "Link", 1629 | "linkType": "User", 1630 | "id": "0q85kL9zVu8Vw90mCqd43K" 1631 | } 1632 | } 1633 | }, 1634 | "fields": { 1635 | "title": { 1636 | "en-US": "london-office" 1637 | }, 1638 | "description": { 1639 | "en-US": "" 1640 | }, 1641 | "file": { 1642 | "en-US": { 1643 | "url": "//images.ctfassets.net/jz4jyo63yjbd/57uuka7k0SIfy9Qa3R6crZ/02b5685d9e3503349279fa2d1a72c274/contentful_553_WB_7369-.jpg", 1644 | "details": { 1645 | "size": 169694, 1646 | "image": { 1647 | "width": 1280, 1648 | "height": 858 1649 | } 1650 | }, 1651 | "fileName": "contentful_553_WB_7369-.jpg", 1652 | "contentType": "image/jpeg" 1653 | } 1654 | } 1655 | } 1656 | }, 1657 | { 1658 | "metadata": { 1659 | "tags": [ 1660 | ] 1661 | }, 1662 | "sys": { 1663 | "space": { 1664 | "sys": { 1665 | "type": "Link", 1666 | "linkType": "Space", 1667 | "id": "jz4jyo63yjbd" 1668 | } 1669 | }, 1670 | "id": "2K6h8ZmNb5do0pzlzrz2jX", 1671 | "type": "Asset", 1672 | "createdAt": "2022-12-05T16:47:35.811Z", 1673 | "updatedAt": "2022-12-05T16:49:05.000Z", 1674 | "environment": { 1675 | "sys": { 1676 | "id": "master", 1677 | "type": "Link", 1678 | "linkType": "Environment" 1679 | } 1680 | }, 1681 | "publishedVersion": 4, 1682 | "publishedAt": "2022-12-05T16:49:05.000Z", 1683 | "firstPublishedAt": "2022-12-05T16:49:05.000Z", 1684 | "createdBy": { 1685 | "sys": { 1686 | "type": "Link", 1687 | "linkType": "User", 1688 | "id": "0q85kL9zVu8Vw90mCqd43K" 1689 | } 1690 | }, 1691 | "updatedBy": { 1692 | "sys": { 1693 | "type": "Link", 1694 | "linkType": "User", 1695 | "id": "0q85kL9zVu8Vw90mCqd43K" 1696 | } 1697 | }, 1698 | "publishedCounter": 1, 1699 | "version": 5, 1700 | "publishedBy": { 1701 | "sys": { 1702 | "type": "Link", 1703 | "linkType": "User", 1704 | "id": "0q85kL9zVu8Vw90mCqd43K" 1705 | } 1706 | } 1707 | }, 1708 | "fields": { 1709 | "title": { 1710 | "en-US": "mandyphoto" 1711 | }, 1712 | "description": { 1713 | "en-US": "" 1714 | }, 1715 | "file": { 1716 | "en-US": { 1717 | "url": "//images.ctfassets.net/jz4jyo63yjbd/2K6h8ZmNb5do0pzlzrz2jX/866a20272b18dac809811b7c376367b5/image.png", 1718 | "details": { 1719 | "size": 1378295, 1720 | "image": { 1721 | "width": 1024, 1722 | "height": 1024 1723 | } 1724 | }, 1725 | "fileName": "image.png", 1726 | "contentType": "image/png" 1727 | } 1728 | } 1729 | } 1730 | }, 1731 | { 1732 | "metadata": { 1733 | "tags": [ 1734 | ] 1735 | }, 1736 | "sys": { 1737 | "space": { 1738 | "sys": { 1739 | "type": "Link", 1740 | "linkType": "Space", 1741 | "id": "jz4jyo63yjbd" 1742 | } 1743 | }, 1744 | "id": "31Oa8QFBgkl5zn9t5zbptj", 1745 | "type": "Asset", 1746 | "createdAt": "2022-12-05T16:47:36.694Z", 1747 | "updatedAt": "2022-12-05T16:49:05.965Z", 1748 | "environment": { 1749 | "sys": { 1750 | "id": "master", 1751 | "type": "Link", 1752 | "linkType": "Environment" 1753 | } 1754 | }, 1755 | "publishedVersion": 4, 1756 | "publishedAt": "2022-12-05T16:49:05.965Z", 1757 | "firstPublishedAt": "2022-12-05T16:49:05.965Z", 1758 | "createdBy": { 1759 | "sys": { 1760 | "type": "Link", 1761 | "linkType": "User", 1762 | "id": "0q85kL9zVu8Vw90mCqd43K" 1763 | } 1764 | }, 1765 | "updatedBy": { 1766 | "sys": { 1767 | "type": "Link", 1768 | "linkType": "User", 1769 | "id": "0q85kL9zVu8Vw90mCqd43K" 1770 | } 1771 | }, 1772 | "publishedCounter": 1, 1773 | "version": 5, 1774 | "publishedBy": { 1775 | "sys": { 1776 | "type": "Link", 1777 | "linkType": "User", 1778 | "id": "0q85kL9zVu8Vw90mCqd43K" 1779 | } 1780 | } 1781 | }, 1782 | "fields": { 1783 | "title": { 1784 | "en-US": "KevinPhoto" 1785 | }, 1786 | "description": { 1787 | "en-US": "" 1788 | }, 1789 | "file": { 1790 | "en-US": { 1791 | "url": "//images.ctfassets.net/jz4jyo63yjbd/31Oa8QFBgkl5zn9t5zbptj/179a740dc1a2d0def9e9b91b9cc8374e/image.png", 1792 | "details": { 1793 | "size": 1376303, 1794 | "image": { 1795 | "width": 1024, 1796 | "height": 1024 1797 | } 1798 | }, 1799 | "fileName": "image.png", 1800 | "contentType": "image/png" 1801 | } 1802 | } 1803 | } 1804 | }, 1805 | { 1806 | "metadata": { 1807 | "tags": [ 1808 | ] 1809 | }, 1810 | "sys": { 1811 | "space": { 1812 | "sys": { 1813 | "type": "Link", 1814 | "linkType": "Space", 1815 | "id": "jz4jyo63yjbd" 1816 | } 1817 | }, 1818 | "id": "4C60JyuhN53zelwFX65lRc", 1819 | "type": "Asset", 1820 | "createdAt": "2022-12-05T16:47:36.701Z", 1821 | "updatedAt": "2022-12-05T16:49:07.544Z", 1822 | "environment": { 1823 | "sys": { 1824 | "id": "master", 1825 | "type": "Link", 1826 | "linkType": "Environment" 1827 | } 1828 | }, 1829 | "publishedVersion": 3, 1830 | "publishedAt": "2022-12-05T16:49:07.544Z", 1831 | "firstPublishedAt": "2022-12-05T16:49:07.544Z", 1832 | "createdBy": { 1833 | "sys": { 1834 | "type": "Link", 1835 | "linkType": "User", 1836 | "id": "0q85kL9zVu8Vw90mCqd43K" 1837 | } 1838 | }, 1839 | "updatedBy": { 1840 | "sys": { 1841 | "type": "Link", 1842 | "linkType": "User", 1843 | "id": "0q85kL9zVu8Vw90mCqd43K" 1844 | } 1845 | }, 1846 | "publishedCounter": 1, 1847 | "version": 4, 1848 | "publishedBy": { 1849 | "sys": { 1850 | "type": "Link", 1851 | "linkType": "User", 1852 | "id": "0q85kL9zVu8Vw90mCqd43K" 1853 | } 1854 | } 1855 | }, 1856 | "fields": { 1857 | "title": { 1858 | "en-US": "StevePhoto" 1859 | }, 1860 | "description": { 1861 | "en-US": "" 1862 | }, 1863 | "file": { 1864 | "en-US": { 1865 | "url": "//images.ctfassets.net/jz4jyo63yjbd/4C60JyuhN53zelwFX65lRc/61850f6e58641d126b68ad87c1a6b801/image.png", 1866 | "details": { 1867 | "size": 1499334, 1868 | "image": { 1869 | "width": 1024, 1870 | "height": 1024 1871 | } 1872 | }, 1873 | "fileName": "image.png", 1874 | "contentType": "image/png" 1875 | } 1876 | } 1877 | } 1878 | }, 1879 | { 1880 | "metadata": { 1881 | "tags": [ 1882 | ] 1883 | }, 1884 | "sys": { 1885 | "space": { 1886 | "sys": { 1887 | "type": "Link", 1888 | "linkType": "Space", 1889 | "id": "jz4jyo63yjbd" 1890 | } 1891 | }, 1892 | "id": "1oQY9yrFA4F3jvPanRNJBy", 1893 | "type": "Asset", 1894 | "createdAt": "2022-12-05T16:47:36.727Z", 1895 | "updatedAt": "2022-12-05T16:49:05.480Z", 1896 | "environment": { 1897 | "sys": { 1898 | "id": "master", 1899 | "type": "Link", 1900 | "linkType": "Environment" 1901 | } 1902 | }, 1903 | "publishedVersion": 4, 1904 | "publishedAt": "2022-12-05T16:49:05.480Z", 1905 | "firstPublishedAt": "2022-12-05T16:49:05.480Z", 1906 | "createdBy": { 1907 | "sys": { 1908 | "type": "Link", 1909 | "linkType": "User", 1910 | "id": "0q85kL9zVu8Vw90mCqd43K" 1911 | } 1912 | }, 1913 | "updatedBy": { 1914 | "sys": { 1915 | "type": "Link", 1916 | "linkType": "User", 1917 | "id": "0q85kL9zVu8Vw90mCqd43K" 1918 | } 1919 | }, 1920 | "publishedCounter": 1, 1921 | "version": 5, 1922 | "publishedBy": { 1923 | "sys": { 1924 | "type": "Link", 1925 | "linkType": "User", 1926 | "id": "0q85kL9zVu8Vw90mCqd43K" 1927 | } 1928 | } 1929 | }, 1930 | "fields": { 1931 | "title": { 1932 | "en-US": "HelenPhoto" 1933 | }, 1934 | "description": { 1935 | "en-US": "" 1936 | }, 1937 | "file": { 1938 | "en-US": { 1939 | "url": "//images.ctfassets.net/jz4jyo63yjbd/1oQY9yrFA4F3jvPanRNJBy/b6e65331af5fcde5badb60720bd8089f/image.png", 1940 | "details": { 1941 | "size": 1445293, 1942 | "image": { 1943 | "width": 1024, 1944 | "height": 1024 1945 | } 1946 | }, 1947 | "fileName": "image.png", 1948 | "contentType": "image/png" 1949 | } 1950 | } 1951 | } 1952 | }, 1953 | { 1954 | "metadata": { 1955 | "tags": [ 1956 | ] 1957 | }, 1958 | "sys": { 1959 | "space": { 1960 | "sys": { 1961 | "type": "Link", 1962 | "linkType": "Space", 1963 | "id": "jz4jyo63yjbd" 1964 | } 1965 | }, 1966 | "id": "3pNrBRnILq0Tv9D553X48u", 1967 | "type": "Asset", 1968 | "createdAt": "2022-12-05T16:47:36.741Z", 1969 | "updatedAt": "2022-12-05T16:49:08.014Z", 1970 | "environment": { 1971 | "sys": { 1972 | "id": "master", 1973 | "type": "Link", 1974 | "linkType": "Environment" 1975 | } 1976 | }, 1977 | "publishedVersion": 3, 1978 | "publishedAt": "2022-12-05T16:49:08.014Z", 1979 | "firstPublishedAt": "2022-12-05T16:49:08.014Z", 1980 | "createdBy": { 1981 | "sys": { 1982 | "type": "Link", 1983 | "linkType": "User", 1984 | "id": "0q85kL9zVu8Vw90mCqd43K" 1985 | } 1986 | }, 1987 | "updatedBy": { 1988 | "sys": { 1989 | "type": "Link", 1990 | "linkType": "User", 1991 | "id": "0q85kL9zVu8Vw90mCqd43K" 1992 | } 1993 | }, 1994 | "publishedCounter": 1, 1995 | "version": 4, 1996 | "publishedBy": { 1997 | "sys": { 1998 | "type": "Link", 1999 | "linkType": "User", 2000 | "id": "0q85kL9zVu8Vw90mCqd43K" 2001 | } 2002 | } 2003 | }, 2004 | "fields": { 2005 | "title": { 2006 | "en-US": "San Francisco office" 2007 | }, 2008 | "description": { 2009 | "en-US": "Chairs, a sofa and natural light coming from windows" 2010 | }, 2011 | "file": { 2012 | "en-US": { 2013 | "url": "//images.ctfassets.net/jz4jyo63yjbd/3pNrBRnILq0Tv9D553X48u/dd6e9430eced0bec9c1fa39a88b572b9/photo-1524758631624-e2822e304c36", 2014 | "details": { 2015 | "size": 874554, 2016 | "image": { 2017 | "width": 3540, 2018 | "height": 2360 2019 | } 2020 | }, 2021 | "fileName": "photo-1524758631624-e2822e304c36", 2022 | "contentType": "image/jpeg" 2023 | } 2024 | } 2025 | } 2026 | }, 2027 | { 2028 | "metadata": { 2029 | "tags": [ 2030 | ] 2031 | }, 2032 | "sys": { 2033 | "space": { 2034 | "sys": { 2035 | "type": "Link", 2036 | "linkType": "Space", 2037 | "id": "jz4jyo63yjbd" 2038 | } 2039 | }, 2040 | "id": "k1tGlW6ILZzivPxEx5uPT", 2041 | "type": "Asset", 2042 | "createdAt": "2022-12-05T16:47:36.742Z", 2043 | "updatedAt": "2022-12-05T16:49:06.429Z", 2044 | "environment": { 2045 | "sys": { 2046 | "id": "master", 2047 | "type": "Link", 2048 | "linkType": "Environment" 2049 | } 2050 | }, 2051 | "publishedVersion": 4, 2052 | "publishedAt": "2022-12-05T16:49:06.429Z", 2053 | "firstPublishedAt": "2022-12-05T16:49:06.429Z", 2054 | "createdBy": { 2055 | "sys": { 2056 | "type": "Link", 2057 | "linkType": "User", 2058 | "id": "0q85kL9zVu8Vw90mCqd43K" 2059 | } 2060 | }, 2061 | "updatedBy": { 2062 | "sys": { 2063 | "type": "Link", 2064 | "linkType": "User", 2065 | "id": "0q85kL9zVu8Vw90mCqd43K" 2066 | } 2067 | }, 2068 | "publishedCounter": 1, 2069 | "version": 5, 2070 | "publishedBy": { 2071 | "sys": { 2072 | "type": "Link", 2073 | "linkType": "User", 2074 | "id": "0q85kL9zVu8Vw90mCqd43K" 2075 | } 2076 | } 2077 | }, 2078 | "fields": { 2079 | "title": { 2080 | "en-US": "PatrickPhoto" 2081 | }, 2082 | "description": { 2083 | "en-US": "" 2084 | }, 2085 | "file": { 2086 | "en-US": { 2087 | "url": "//images.ctfassets.net/jz4jyo63yjbd/k1tGlW6ILZzivPxEx5uPT/50d5a6a3e9f1fe5627d45a92587f640b/image.png", 2088 | "details": { 2089 | "size": 1454211, 2090 | "image": { 2091 | "width": 1024, 2092 | "height": 1024 2093 | } 2094 | }, 2095 | "fileName": "image.png", 2096 | "contentType": "image/png" 2097 | } 2098 | } 2099 | } 2100 | }, 2101 | { 2102 | "metadata": { 2103 | "tags": [ 2104 | ] 2105 | }, 2106 | "sys": { 2107 | "space": { 2108 | "sys": { 2109 | "type": "Link", 2110 | "linkType": "Space", 2111 | "id": "jz4jyo63yjbd" 2112 | } 2113 | }, 2114 | "id": "6xs6notpedh3SxT1etSCYr", 2115 | "type": "Asset", 2116 | "createdAt": "2022-12-05T16:47:36.747Z", 2117 | "updatedAt": "2022-12-05T16:49:06.916Z", 2118 | "environment": { 2119 | "sys": { 2120 | "id": "master", 2121 | "type": "Link", 2122 | "linkType": "Environment" 2123 | } 2124 | }, 2125 | "publishedVersion": 4, 2126 | "publishedAt": "2022-12-05T16:49:06.916Z", 2127 | "firstPublishedAt": "2022-12-05T16:49:06.916Z", 2128 | "createdBy": { 2129 | "sys": { 2130 | "type": "Link", 2131 | "linkType": "User", 2132 | "id": "0q85kL9zVu8Vw90mCqd43K" 2133 | } 2134 | }, 2135 | "updatedBy": { 2136 | "sys": { 2137 | "type": "Link", 2138 | "linkType": "User", 2139 | "id": "0q85kL9zVu8Vw90mCqd43K" 2140 | } 2141 | }, 2142 | "publishedCounter": 1, 2143 | "version": 5, 2144 | "publishedBy": { 2145 | "sys": { 2146 | "type": "Link", 2147 | "linkType": "User", 2148 | "id": "0q85kL9zVu8Vw90mCqd43K" 2149 | } 2150 | } 2151 | }, 2152 | "fields": { 2153 | "title": { 2154 | "en-US": "PabloPhoto" 2155 | }, 2156 | "description": { 2157 | "en-US": "" 2158 | }, 2159 | "file": { 2160 | "en-US": { 2161 | "url": "//images.ctfassets.net/jz4jyo63yjbd/6xs6notpedh3SxT1etSCYr/9bf500a7ad355335313ece8d03c4913b/image.png", 2162 | "details": { 2163 | "size": 1571706, 2164 | "image": { 2165 | "width": 1024, 2166 | "height": 1024 2167 | } 2168 | }, 2169 | "fileName": "image.png", 2170 | "contentType": "image/png" 2171 | } 2172 | } 2173 | } 2174 | } 2175 | ], 2176 | "locales": [ 2177 | { 2178 | "name": "English (United States)", 2179 | "code": "en-US", 2180 | "fallbackCode": null, 2181 | "default": true, 2182 | "contentManagementApi": true, 2183 | "contentDeliveryApi": true, 2184 | "optional": false, 2185 | "sys": { 2186 | "type": "Locale", 2187 | "id": "6cXzTEXtzbTjeRjY68f2vy", 2188 | "version": 1, 2189 | "space": { 2190 | "sys": { 2191 | "type": "Link", 2192 | "linkType": "Space", 2193 | "id": "jz4jyo63yjbd" 2194 | } 2195 | }, 2196 | "environment": { 2197 | "sys": { 2198 | "type": "Link", 2199 | "linkType": "Environment", 2200 | "id": "master", 2201 | "uuid": "70455463-c38a-42dc-ba1e-9b8511b55d79" 2202 | } 2203 | }, 2204 | "createdBy": { 2205 | "sys": { 2206 | "type": "Link", 2207 | "linkType": "User", 2208 | "id": "0q85kL9zVu8Vw90mCqd43K" 2209 | } 2210 | }, 2211 | "createdAt": "2022-12-05T16:42:57Z", 2212 | "updatedBy": { 2213 | "sys": { 2214 | "type": "Link", 2215 | "linkType": "User", 2216 | "id": "0q85kL9zVu8Vw90mCqd43K" 2217 | } 2218 | }, 2219 | "updatedAt": "2022-12-05T16:42:57Z" 2220 | } 2221 | } 2222 | ], 2223 | "webhooks": [ 2224 | ], 2225 | "roles": [ 2226 | { 2227 | "name": "Author", 2228 | "description": "Allows editing of content", 2229 | "policies": [ 2230 | { 2231 | "effect": "allow", 2232 | "actions": [ 2233 | "create" 2234 | ], 2235 | "constraint": { 2236 | "and": [ 2237 | { 2238 | "equals": [ 2239 | { 2240 | "doc": "sys.type" 2241 | }, 2242 | "Entry" 2243 | ] 2244 | } 2245 | ] 2246 | } 2247 | }, 2248 | { 2249 | "effect": "allow", 2250 | "actions": [ 2251 | "read" 2252 | ], 2253 | "constraint": { 2254 | "and": [ 2255 | { 2256 | "equals": [ 2257 | { 2258 | "doc": "sys.type" 2259 | }, 2260 | "Entry" 2261 | ] 2262 | } 2263 | ] 2264 | } 2265 | }, 2266 | { 2267 | "effect": "allow", 2268 | "actions": [ 2269 | "update" 2270 | ], 2271 | "constraint": { 2272 | "and": [ 2273 | { 2274 | "equals": [ 2275 | { 2276 | "doc": "sys.type" 2277 | }, 2278 | "Entry" 2279 | ] 2280 | } 2281 | ] 2282 | } 2283 | }, 2284 | { 2285 | "effect": "allow", 2286 | "actions": [ 2287 | "create" 2288 | ], 2289 | "constraint": { 2290 | "and": [ 2291 | { 2292 | "equals": [ 2293 | { 2294 | "doc": "sys.type" 2295 | }, 2296 | "Asset" 2297 | ] 2298 | } 2299 | ] 2300 | } 2301 | }, 2302 | { 2303 | "effect": "allow", 2304 | "actions": [ 2305 | "read" 2306 | ], 2307 | "constraint": { 2308 | "and": [ 2309 | { 2310 | "equals": [ 2311 | { 2312 | "doc": "sys.type" 2313 | }, 2314 | "Asset" 2315 | ] 2316 | } 2317 | ] 2318 | } 2319 | }, 2320 | { 2321 | "effect": "allow", 2322 | "actions": [ 2323 | "update" 2324 | ], 2325 | "constraint": { 2326 | "and": [ 2327 | { 2328 | "equals": [ 2329 | { 2330 | "doc": "sys.type" 2331 | }, 2332 | "Asset" 2333 | ] 2334 | } 2335 | ] 2336 | } 2337 | } 2338 | ], 2339 | "permissions": { 2340 | "ContentModel": [ 2341 | "read" 2342 | ], 2343 | "Settings": [ 2344 | ], 2345 | "ContentDelivery": [ 2346 | ], 2347 | "Environments": [ 2348 | ], 2349 | "EnvironmentAliases": [ 2350 | ], 2351 | "Tags": [ 2352 | ] 2353 | }, 2354 | "sys": { 2355 | "type": "Role", 2356 | "id": "6d72LPIk6PIjswXbRQXlxq", 2357 | "version": 0, 2358 | "space": { 2359 | "sys": { 2360 | "type": "Link", 2361 | "linkType": "Space", 2362 | "id": "jz4jyo63yjbd" 2363 | } 2364 | }, 2365 | "createdBy": { 2366 | "sys": { 2367 | "type": "Link", 2368 | "linkType": "User", 2369 | "id": "0q85kL9zVu8Vw90mCqd43K" 2370 | } 2371 | }, 2372 | "createdAt": "2022-12-05T16:42:57Z", 2373 | "updatedBy": { 2374 | "sys": { 2375 | "type": "Link", 2376 | "linkType": "User", 2377 | "id": "0q85kL9zVu8Vw90mCqd43K" 2378 | } 2379 | }, 2380 | "updatedAt": "2022-12-05T16:42:57Z" 2381 | } 2382 | }, 2383 | { 2384 | "name": "Editor", 2385 | "description": "Allows editing, publishing and archiving of content", 2386 | "policies": [ 2387 | { 2388 | "effect": "allow", 2389 | "actions": "all", 2390 | "constraint": { 2391 | "and": [ 2392 | { 2393 | "equals": [ 2394 | { 2395 | "doc": "sys.type" 2396 | }, 2397 | "Entry" 2398 | ] 2399 | } 2400 | ] 2401 | } 2402 | }, 2403 | { 2404 | "effect": "allow", 2405 | "actions": "all", 2406 | "constraint": { 2407 | "and": [ 2408 | { 2409 | "equals": [ 2410 | { 2411 | "doc": "sys.type" 2412 | }, 2413 | "Asset" 2414 | ] 2415 | } 2416 | ] 2417 | } 2418 | } 2419 | ], 2420 | "permissions": { 2421 | "ContentModel": [ 2422 | "read" 2423 | ], 2424 | "Settings": [ 2425 | ], 2426 | "ContentDelivery": [ 2427 | ], 2428 | "Environments": [ 2429 | ], 2430 | "EnvironmentAliases": [ 2431 | ], 2432 | "Tags": [ 2433 | ] 2434 | }, 2435 | "sys": { 2436 | "type": "Role", 2437 | "id": "6d7NBnTMlXMec2dVTB6qJC", 2438 | "version": 0, 2439 | "space": { 2440 | "sys": { 2441 | "type": "Link", 2442 | "linkType": "Space", 2443 | "id": "jz4jyo63yjbd" 2444 | } 2445 | }, 2446 | "createdBy": { 2447 | "sys": { 2448 | "type": "Link", 2449 | "linkType": "User", 2450 | "id": "0q85kL9zVu8Vw90mCqd43K" 2451 | } 2452 | }, 2453 | "createdAt": "2022-12-05T16:42:57Z", 2454 | "updatedBy": { 2455 | "sys": { 2456 | "type": "Link", 2457 | "linkType": "User", 2458 | "id": "0q85kL9zVu8Vw90mCqd43K" 2459 | } 2460 | }, 2461 | "updatedAt": "2022-12-05T16:42:57Z" 2462 | } 2463 | }, 2464 | { 2465 | "name": "Freelancer", 2466 | "description": "Allows only editing of content they created themselves", 2467 | "policies": [ 2468 | { 2469 | "effect": "allow", 2470 | "actions": [ 2471 | "create" 2472 | ], 2473 | "constraint": { 2474 | "and": [ 2475 | { 2476 | "equals": [ 2477 | { 2478 | "doc": "sys.type" 2479 | }, 2480 | "Entry" 2481 | ] 2482 | } 2483 | ] 2484 | } 2485 | }, 2486 | { 2487 | "effect": "allow", 2488 | "actions": [ 2489 | "create" 2490 | ], 2491 | "constraint": { 2492 | "and": [ 2493 | { 2494 | "equals": [ 2495 | { 2496 | "doc": "sys.type" 2497 | }, 2498 | "Asset" 2499 | ] 2500 | } 2501 | ] 2502 | } 2503 | }, 2504 | { 2505 | "effect": "allow", 2506 | "actions": [ 2507 | "read" 2508 | ], 2509 | "constraint": { 2510 | "and": [ 2511 | { 2512 | "equals": [ 2513 | { 2514 | "doc": "sys.type" 2515 | }, 2516 | "Entry" 2517 | ] 2518 | }, 2519 | { 2520 | "equals": [ 2521 | { 2522 | "doc": "sys.createdBy.sys.id" 2523 | }, 2524 | "User.current()" 2525 | ] 2526 | } 2527 | ] 2528 | } 2529 | }, 2530 | { 2531 | "effect": "allow", 2532 | "actions": [ 2533 | "update" 2534 | ], 2535 | "constraint": { 2536 | "and": [ 2537 | { 2538 | "equals": [ 2539 | { 2540 | "doc": "sys.type" 2541 | }, 2542 | "Entry" 2543 | ] 2544 | }, 2545 | { 2546 | "equals": [ 2547 | { 2548 | "doc": "sys.createdBy.sys.id" 2549 | }, 2550 | "User.current()" 2551 | ] 2552 | }, 2553 | { 2554 | "paths": [ 2555 | { 2556 | "doc": "fields.%.%" 2557 | } 2558 | ] 2559 | } 2560 | ] 2561 | } 2562 | }, 2563 | { 2564 | "effect": "allow", 2565 | "actions": [ 2566 | "delete" 2567 | ], 2568 | "constraint": { 2569 | "and": [ 2570 | { 2571 | "equals": [ 2572 | { 2573 | "doc": "sys.type" 2574 | }, 2575 | "Entry" 2576 | ] 2577 | }, 2578 | { 2579 | "equals": [ 2580 | { 2581 | "doc": "sys.createdBy.sys.id" 2582 | }, 2583 | "User.current()" 2584 | ] 2585 | } 2586 | ] 2587 | } 2588 | }, 2589 | { 2590 | "effect": "allow", 2591 | "actions": [ 2592 | "read" 2593 | ], 2594 | "constraint": { 2595 | "and": [ 2596 | { 2597 | "equals": [ 2598 | { 2599 | "doc": "sys.type" 2600 | }, 2601 | "Asset" 2602 | ] 2603 | }, 2604 | { 2605 | "equals": [ 2606 | { 2607 | "doc": "sys.createdBy.sys.id" 2608 | }, 2609 | "User.current()" 2610 | ] 2611 | } 2612 | ] 2613 | } 2614 | }, 2615 | { 2616 | "effect": "allow", 2617 | "actions": [ 2618 | "update" 2619 | ], 2620 | "constraint": { 2621 | "and": [ 2622 | { 2623 | "equals": [ 2624 | { 2625 | "doc": "sys.type" 2626 | }, 2627 | "Asset" 2628 | ] 2629 | }, 2630 | { 2631 | "equals": [ 2632 | { 2633 | "doc": "sys.createdBy.sys.id" 2634 | }, 2635 | "User.current()" 2636 | ] 2637 | }, 2638 | { 2639 | "paths": [ 2640 | { 2641 | "doc": "fields.%.%" 2642 | } 2643 | ] 2644 | } 2645 | ] 2646 | } 2647 | }, 2648 | { 2649 | "effect": "allow", 2650 | "actions": [ 2651 | "delete" 2652 | ], 2653 | "constraint": { 2654 | "and": [ 2655 | { 2656 | "equals": [ 2657 | { 2658 | "doc": "sys.type" 2659 | }, 2660 | "Asset" 2661 | ] 2662 | }, 2663 | { 2664 | "equals": [ 2665 | { 2666 | "doc": "sys.createdBy.sys.id" 2667 | }, 2668 | "User.current()" 2669 | ] 2670 | } 2671 | ] 2672 | } 2673 | } 2674 | ], 2675 | "permissions": { 2676 | "ContentModel": [ 2677 | "read" 2678 | ], 2679 | "Settings": [ 2680 | ], 2681 | "ContentDelivery": [ 2682 | ], 2683 | "Environments": [ 2684 | ], 2685 | "EnvironmentAliases": [ 2686 | ], 2687 | "Tags": [ 2688 | ] 2689 | }, 2690 | "sys": { 2691 | "type": "Role", 2692 | "id": "6d8qWSLmwihWA5DARclZDm", 2693 | "version": 0, 2694 | "space": { 2695 | "sys": { 2696 | "type": "Link", 2697 | "linkType": "Space", 2698 | "id": "jz4jyo63yjbd" 2699 | } 2700 | }, 2701 | "createdBy": { 2702 | "sys": { 2703 | "type": "Link", 2704 | "linkType": "User", 2705 | "id": "0q85kL9zVu8Vw90mCqd43K" 2706 | } 2707 | }, 2708 | "createdAt": "2022-12-05T16:42:57Z", 2709 | "updatedBy": { 2710 | "sys": { 2711 | "type": "Link", 2712 | "linkType": "User", 2713 | "id": "0q85kL9zVu8Vw90mCqd43K" 2714 | } 2715 | }, 2716 | "updatedAt": "2022-12-05T16:42:57Z" 2717 | } 2718 | }, 2719 | { 2720 | "name": "Translator", 2721 | "description": "Allows editing of localized fields in the specified language", 2722 | "policies": [ 2723 | { 2724 | "effect": "allow", 2725 | "actions": [ 2726 | "read" 2727 | ], 2728 | "constraint": { 2729 | "and": [ 2730 | { 2731 | "equals": [ 2732 | { 2733 | "doc": "sys.type" 2734 | }, 2735 | "Entry" 2736 | ] 2737 | } 2738 | ] 2739 | } 2740 | }, 2741 | { 2742 | "effect": "allow", 2743 | "actions": [ 2744 | "read" 2745 | ], 2746 | "constraint": { 2747 | "and": [ 2748 | { 2749 | "equals": [ 2750 | { 2751 | "doc": "sys.type" 2752 | }, 2753 | "Asset" 2754 | ] 2755 | } 2756 | ] 2757 | } 2758 | }, 2759 | { 2760 | "effect": "allow", 2761 | "actions": [ 2762 | "update" 2763 | ], 2764 | "constraint": { 2765 | "and": [ 2766 | { 2767 | "equals": [ 2768 | { 2769 | "doc": "sys.type" 2770 | }, 2771 | "Entry" 2772 | ] 2773 | }, 2774 | { 2775 | "paths": [ 2776 | { 2777 | "doc": "fields.%.%" 2778 | } 2779 | ] 2780 | } 2781 | ] 2782 | } 2783 | }, 2784 | { 2785 | "effect": "allow", 2786 | "actions": [ 2787 | "update" 2788 | ], 2789 | "constraint": { 2790 | "and": [ 2791 | { 2792 | "equals": [ 2793 | { 2794 | "doc": "sys.type" 2795 | }, 2796 | "Asset" 2797 | ] 2798 | }, 2799 | { 2800 | "paths": [ 2801 | { 2802 | "doc": "fields.%.%" 2803 | } 2804 | ] 2805 | } 2806 | ] 2807 | } 2808 | } 2809 | ], 2810 | "permissions": { 2811 | "ContentModel": [ 2812 | "read" 2813 | ], 2814 | "Settings": [ 2815 | ], 2816 | "ContentDelivery": [ 2817 | ], 2818 | "Environments": [ 2819 | ], 2820 | "EnvironmentAliases": [ 2821 | ], 2822 | "Tags": [ 2823 | ] 2824 | }, 2825 | "sys": { 2826 | "type": "Role", 2827 | "id": "6d9oKaeJwtjFezpSpN2r4M", 2828 | "version": 0, 2829 | "space": { 2830 | "sys": { 2831 | "type": "Link", 2832 | "linkType": "Space", 2833 | "id": "jz4jyo63yjbd" 2834 | } 2835 | }, 2836 | "createdBy": { 2837 | "sys": { 2838 | "type": "Link", 2839 | "linkType": "User", 2840 | "id": "0q85kL9zVu8Vw90mCqd43K" 2841 | } 2842 | }, 2843 | "createdAt": "2022-12-05T16:42:57Z", 2844 | "updatedBy": { 2845 | "sys": { 2846 | "type": "Link", 2847 | "linkType": "User", 2848 | "id": "0q85kL9zVu8Vw90mCqd43K" 2849 | } 2850 | }, 2851 | "updatedAt": "2022-12-05T16:42:57Z" 2852 | } 2853 | } 2854 | ] 2855 | } -------------------------------------------------------------------------------- /contentful/setup.js: -------------------------------------------------------------------------------- 1 | import * as dotenv from 'dotenv'; 2 | import spaceImport from 'contentful-import'; 3 | 4 | dotenv.config(); 5 | 6 | const { CONTENTFUL_SPACE_ID, CONTENTFUL_MANAGEMENT_TOKEN } = process.env; 7 | 8 | if (!CONTENTFUL_SPACE_ID || !CONTENTFUL_MANAGEMENT_TOKEN) { 9 | throw new Error( 10 | [ 11 | 'Parameters missing...', 12 | 'Please ensure your .env file exists and contains the variables CONTENTFUL_SPACE_ID and CONTENTFUL_MANAGEMENT_TOKEN' 13 | ].join('\n') 14 | ); 15 | } 16 | 17 | spaceImport({ 18 | contentFile: './contentful/export.json', 19 | spaceId: CONTENTFUL_SPACE_ID, 20 | managementToken: CONTENTFUL_MANAGEMENT_TOKEN 21 | }) 22 | .then(() => console.log('✅ The content model of your space is set up!')) 23 | .catch((e) => console.error(e)); 24 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sveltekit-starter", 3 | "version": "0.0.1", 4 | "scripts": { 5 | "dev": "vite dev --open", 6 | "build": "vite build", 7 | "package": "svelte-kit package", 8 | "preview": "vite preview", 9 | "lint": "prettier --check --plugin-search-dir=. .", 10 | "format": "prettier --write --plugin-search-dir=. .", 11 | "setup": "node ./contentful/setup.js" 12 | }, 13 | "engines": { 14 | "node": ">=18" 15 | }, 16 | "devDependencies": { 17 | "prettier": "^3.0.3", 18 | "prettier-plugin-svelte": "^3.0.3", 19 | "vite": "^4.5.0", 20 | "contentful-import": "^9.4.8", 21 | "dotenv": "^16.3.1" 22 | }, 23 | "type": "module", 24 | "dependencies": { 25 | "@contentful/rich-text-html-renderer": "^16.3.0", 26 | "@sveltejs/adapter-auto": "^2.1.1", 27 | "@sveltejs/kit": "^1.27.3", 28 | "svelte": "^4.2.2" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 10 | 11 | %sveltekit.head% 12 | 13 | 14 |
3 |
Build a team page powered by Contentful
4 |Sorry, something went wrong
-------------------------------------------------------------------------------- /src/routes/+layout.svelte: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 |{employee.name} — {employee.jobTitle}
18 |19 | Joined in {employee.startDate} 20 |
21 |{name}
12 |{@html data.office.description}
9 |