@barkajs/barka 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +64 -0
- package/INVARIANTS.json +43 -0
- package/LICENSE +19 -0
- package/README.md +566 -0
- package/dist/app.d.ts +22 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +464 -0
- package/dist/app.js.map +1 -0
- package/dist/built-in-theme/components/cta/cta.d.ts +5 -0
- package/dist/built-in-theme/components/cta/cta.d.ts.map +1 -0
- package/dist/built-in-theme/components/cta/cta.js +6 -0
- package/dist/built-in-theme/components/cta/cta.js.map +1 -0
- package/dist/built-in-theme/components/features/features.d.ts +5 -0
- package/dist/built-in-theme/components/features/features.d.ts.map +1 -0
- package/dist/built-in-theme/components/features/features.js +7 -0
- package/dist/built-in-theme/components/features/features.js.map +1 -0
- package/dist/built-in-theme/components/hero/hero.d.ts +5 -0
- package/dist/built-in-theme/components/hero/hero.d.ts.map +1 -0
- package/dist/built-in-theme/components/hero/hero.js +6 -0
- package/dist/built-in-theme/components/hero/hero.js.map +1 -0
- package/dist/built-in-theme/components/text/text.d.ts +4 -0
- package/dist/built-in-theme/components/text/text.d.ts.map +1 -0
- package/dist/built-in-theme/components/text/text.js +7 -0
- package/dist/built-in-theme/components/text/text.js.map +1 -0
- package/dist/built-in-theme/layouts/article.d.ts +4 -0
- package/dist/built-in-theme/layouts/article.d.ts.map +1 -0
- package/dist/built-in-theme/layouts/article.js +11 -0
- package/dist/built-in-theme/layouts/article.js.map +1 -0
- package/dist/built-in-theme/layouts/base.d.ts +7 -0
- package/dist/built-in-theme/layouts/base.d.ts.map +1 -0
- package/dist/built-in-theme/layouts/base.js +21 -0
- package/dist/built-in-theme/layouts/base.js.map +1 -0
- package/dist/built-in-theme/layouts/landing-page.d.ts +6 -0
- package/dist/built-in-theme/layouts/landing-page.d.ts.map +1 -0
- package/dist/built-in-theme/layouts/landing-page.js +6 -0
- package/dist/built-in-theme/layouts/landing-page.js.map +1 -0
- package/dist/built-in-theme/layouts/page.d.ts +4 -0
- package/dist/built-in-theme/layouts/page.d.ts.map +1 -0
- package/dist/built-in-theme/layouts/page.js +7 -0
- package/dist/built-in-theme/layouts/page.js.map +1 -0
- package/dist/cli/build.d.ts +11 -0
- package/dist/cli/build.d.ts.map +1 -0
- package/dist/cli/build.js +271 -0
- package/dist/cli/build.js.map +1 -0
- package/dist/cli/create-app.d.ts +4 -0
- package/dist/cli/create-app.d.ts.map +1 -0
- package/dist/cli/create-app.js +179 -0
- package/dist/cli/create-app.js.map +1 -0
- package/dist/cli/db-init.d.ts +6 -0
- package/dist/cli/db-init.d.ts.map +1 -0
- package/dist/cli/db-init.js +28 -0
- package/dist/cli/db-init.js.map +1 -0
- package/dist/cli/dev.d.ts +10 -0
- package/dist/cli/dev.d.ts.map +1 -0
- package/dist/cli/dev.js +68 -0
- package/dist/cli/dev.js.map +1 -0
- package/dist/cli/export-cmd.d.ts +6 -0
- package/dist/cli/export-cmd.d.ts.map +1 -0
- package/dist/cli/export-cmd.js +12 -0
- package/dist/cli/export-cmd.js.map +1 -0
- package/dist/cli/import-cmd.d.ts +6 -0
- package/dist/cli/import-cmd.d.ts.map +1 -0
- package/dist/cli/import-cmd.js +11 -0
- package/dist/cli/import-cmd.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +163 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/init-cmd.d.ts +20 -0
- package/dist/cli/init-cmd.d.ts.map +1 -0
- package/dist/cli/init-cmd.js +116 -0
- package/dist/cli/init-cmd.js.map +1 -0
- package/dist/cli/sync-cmd.d.ts +5 -0
- package/dist/cli/sync-cmd.d.ts.map +1 -0
- package/dist/cli/sync-cmd.js +17 -0
- package/dist/cli/sync-cmd.js.map +1 -0
- package/dist/content-engine.d.ts +50 -0
- package/dist/content-engine.d.ts.map +1 -0
- package/dist/content-engine.js +240 -0
- package/dist/content-engine.js.map +1 -0
- package/dist/db/connection.d.ts +9 -0
- package/dist/db/connection.d.ts.map +1 -0
- package/dist/db/connection.js +121 -0
- package/dist/db/connection.js.map +1 -0
- package/dist/db/schema.d.ts +1178 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +79 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/auth.d.ts +14 -0
- package/dist/lib/auth.d.ts.map +1 -0
- package/dist/lib/auth.js +40 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/config-files.d.ts +8 -0
- package/dist/lib/config-files.d.ts.map +1 -0
- package/dist/lib/config-files.js +72 -0
- package/dist/lib/config-files.js.map +1 -0
- package/dist/lib/content-files.d.ts +5 -0
- package/dist/lib/content-files.d.ts.map +1 -0
- package/dist/lib/content-files.js +156 -0
- package/dist/lib/content-files.js.map +1 -0
- package/dist/lib/i18n.d.ts +33 -0
- package/dist/lib/i18n.d.ts.map +1 -0
- package/dist/lib/i18n.js +247 -0
- package/dist/lib/i18n.js.map +1 -0
- package/dist/lib/multisite.d.ts +23 -0
- package/dist/lib/multisite.d.ts.map +1 -0
- package/dist/lib/multisite.js +73 -0
- package/dist/lib/multisite.js.map +1 -0
- package/dist/lib/paths.d.ts +6 -0
- package/dist/lib/paths.d.ts.map +1 -0
- package/dist/lib/paths.js +25 -0
- package/dist/lib/paths.js.map +1 -0
- package/dist/lib/schema-loader.d.ts +25 -0
- package/dist/lib/schema-loader.d.ts.map +1 -0
- package/dist/lib/schema-loader.js +45 -0
- package/dist/lib/schema-loader.js.map +1 -0
- package/dist/lib/seo.d.ts +18 -0
- package/dist/lib/seo.d.ts.map +1 -0
- package/dist/lib/seo.js +212 -0
- package/dist/lib/seo.js.map +1 -0
- package/dist/lib/sync.d.ts +33 -0
- package/dist/lib/sync.d.ts.map +1 -0
- package/dist/lib/sync.js +308 -0
- package/dist/lib/sync.js.map +1 -0
- package/dist/lib/taxonomy.d.ts +29 -0
- package/dist/lib/taxonomy.d.ts.map +1 -0
- package/dist/lib/taxonomy.js +170 -0
- package/dist/lib/taxonomy.js.map +1 -0
- package/dist/lib/template-renderer.d.ts +6 -0
- package/dist/lib/template-renderer.d.ts.map +1 -0
- package/dist/lib/template-renderer.js +80 -0
- package/dist/lib/template-renderer.js.map +1 -0
- package/dist/lib/theme-loader.d.ts +5 -0
- package/dist/lib/theme-loader.d.ts.map +1 -0
- package/dist/lib/theme-loader.js +199 -0
- package/dist/lib/theme-loader.js.map +1 -0
- package/dist/lib/theme-types.d.ts +39 -0
- package/dist/lib/theme-types.d.ts.map +1 -0
- package/dist/lib/theme-types.js +2 -0
- package/dist/lib/theme-types.js.map +1 -0
- package/dist/lib/types.d.ts +91 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +2 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/routes/admin/content-edit.d.ts +10 -0
- package/dist/routes/admin/content-edit.d.ts.map +1 -0
- package/dist/routes/admin/content-edit.js +325 -0
- package/dist/routes/admin/content-edit.js.map +1 -0
- package/dist/routes/admin/content-list.d.ts +10 -0
- package/dist/routes/admin/content-list.d.ts.map +1 -0
- package/dist/routes/admin/content-list.js +162 -0
- package/dist/routes/admin/content-list.js.map +1 -0
- package/dist/routes/admin/content.d.ts +3 -0
- package/dist/routes/admin/content.d.ts.map +1 -0
- package/dist/routes/admin/content.js +12 -0
- package/dist/routes/admin/content.js.map +1 -0
- package/dist/routes/admin/dashboard.d.ts +4 -0
- package/dist/routes/admin/dashboard.d.ts.map +1 -0
- package/dist/routes/admin/dashboard.js +121 -0
- package/dist/routes/admin/dashboard.js.map +1 -0
- package/dist/routes/admin/export-route.d.ts +10 -0
- package/dist/routes/admin/export-route.d.ts.map +1 -0
- package/dist/routes/admin/export-route.js +19 -0
- package/dist/routes/admin/export-route.js.map +1 -0
- package/dist/routes/admin/index.d.ts +9 -0
- package/dist/routes/admin/index.d.ts.map +1 -0
- package/dist/routes/admin/index.js +27 -0
- package/dist/routes/admin/index.js.map +1 -0
- package/dist/routes/admin/layout.d.ts +17 -0
- package/dist/routes/admin/layout.d.ts.map +1 -0
- package/dist/routes/admin/layout.js +110 -0
- package/dist/routes/admin/layout.js.map +1 -0
- package/dist/routes/admin/login.d.ts +5 -0
- package/dist/routes/admin/login.d.ts.map +1 -0
- package/dist/routes/admin/login.js +113 -0
- package/dist/routes/admin/login.js.map +1 -0
- package/dist/routes/admin/media.d.ts +10 -0
- package/dist/routes/admin/media.d.ts.map +1 -0
- package/dist/routes/admin/media.js +192 -0
- package/dist/routes/admin/media.js.map +1 -0
- package/dist/routes/admin/middleware.d.ts +8 -0
- package/dist/routes/admin/middleware.d.ts.map +1 -0
- package/dist/routes/admin/middleware.js +29 -0
- package/dist/routes/admin/middleware.js.map +1 -0
- package/dist/routes/admin/section-builder.d.ts +10 -0
- package/dist/routes/admin/section-builder.d.ts.map +1 -0
- package/dist/routes/admin/section-builder.js +487 -0
- package/dist/routes/admin/section-builder.js.map +1 -0
- package/dist/routes/admin/settings.d.ts +10 -0
- package/dist/routes/admin/settings.d.ts.map +1 -0
- package/dist/routes/admin/settings.js +209 -0
- package/dist/routes/admin/settings.js.map +1 -0
- package/dist/routes/admin/site-switcher.d.ts +3 -0
- package/dist/routes/admin/site-switcher.d.ts.map +1 -0
- package/dist/routes/admin/site-switcher.js +36 -0
- package/dist/routes/admin/site-switcher.js.map +1 -0
- package/dist/routes/admin/taxonomy.d.ts +10 -0
- package/dist/routes/admin/taxonomy.d.ts.map +1 -0
- package/dist/routes/admin/taxonomy.js +297 -0
- package/dist/routes/admin/taxonomy.js.map +1 -0
- package/dist/routes/admin/users.d.ts +10 -0
- package/dist/routes/admin/users.d.ts.map +1 -0
- package/dist/routes/admin/users.js +227 -0
- package/dist/routes/admin/users.js.map +1 -0
- package/package.json +75 -0
- package/src/built-in-theme/components/cta/cta.tsx +18 -0
- package/src/built-in-theme/components/cta/schema.yaml +17 -0
- package/src/built-in-theme/components/features/features.tsx +18 -0
- package/src/built-in-theme/components/features/schema.yaml +22 -0
- package/src/built-in-theme/components/hero/hero.tsx +18 -0
- package/src/built-in-theme/components/hero/schema.yaml +17 -0
- package/src/built-in-theme/components/text/schema.yaml +12 -0
- package/src/built-in-theme/components/text/text.tsx +11 -0
- package/src/built-in-theme/layouts/article.tsx +20 -0
- package/src/built-in-theme/layouts/base.tsx +50 -0
- package/src/built-in-theme/layouts/landing-page.tsx +15 -0
- package/src/built-in-theme/layouts/page.tsx +11 -0
- package/src/built-in-theme/theme.yaml +4 -0
- package/starters/blank/config/content-types.yaml +47 -0
- package/starters/blank/config/section-types.yaml +115 -0
- package/starters/blank/config/settings.yaml +12 -0
- package/starters/blank/content/landing-pages/homepage.yaml +55 -0
- package/starters/blank/content/pages/about.md +27 -0
- package/starters/blank/starter.yaml +14 -0
- package/starters/blank/themes/starter/_types.ts +93 -0
- package/starters/blank/themes/starter/components/blog-listing/blog-listing.tsx +102 -0
- package/starters/blank/themes/starter/components/blog-listing/schema.yaml +21 -0
- package/starters/blank/themes/starter/components/columns/columns.tsx +101 -0
- package/starters/blank/themes/starter/components/columns/schema.yaml +23 -0
- package/starters/blank/themes/starter/components/counters/counters.css +13 -0
- package/starters/blank/themes/starter/components/counters/counters.tsx +81 -0
- package/starters/blank/themes/starter/components/counters/schema.yaml +23 -0
- package/starters/blank/themes/starter/components/cta/cta.tsx +57 -0
- package/starters/blank/themes/starter/components/cta/schema.yaml +30 -0
- package/starters/blank/themes/starter/components/faq/faq.tsx +77 -0
- package/starters/blank/themes/starter/components/faq/schema.yaml +20 -0
- package/starters/blank/themes/starter/components/features/features.tsx +82 -0
- package/starters/blank/themes/starter/components/features/schema.yaml +19 -0
- package/starters/blank/themes/starter/components/form/form.tsx +126 -0
- package/starters/blank/themes/starter/components/form/schema.yaml +18 -0
- package/starters/blank/themes/starter/components/gallery/gallery.tsx +85 -0
- package/starters/blank/themes/starter/components/gallery/schema.yaml +27 -0
- package/starters/blank/themes/starter/components/hero/hero.tsx +77 -0
- package/starters/blank/themes/starter/components/hero/schema.yaml +26 -0
- package/starters/blank/themes/starter/components/logo-slider/logo-slider.css +21 -0
- package/starters/blank/themes/starter/components/logo-slider/logo-slider.tsx +81 -0
- package/starters/blank/themes/starter/components/logo-slider/schema.yaml +23 -0
- package/starters/blank/themes/starter/components/pricing/pricing.tsx +141 -0
- package/starters/blank/themes/starter/components/pricing/schema.yaml +44 -0
- package/starters/blank/themes/starter/components/testimonials/schema.yaml +26 -0
- package/starters/blank/themes/starter/components/testimonials/testimonials.tsx +100 -0
- package/starters/blank/themes/starter/components/text/schema.yaml +12 -0
- package/starters/blank/themes/starter/components/text/text.tsx +62 -0
- package/starters/blank/themes/starter/components/text-with-image/schema.yaml +30 -0
- package/starters/blank/themes/starter/components/text-with-image/text-with-image.tsx +86 -0
- package/starters/blank/themes/starter/components/video/schema.yaml +19 -0
- package/starters/blank/themes/starter/components/video/video.tsx +98 -0
- package/starters/blank/themes/starter/layouts/article.tsx +42 -0
- package/starters/blank/themes/starter/layouts/base.tsx +92 -0
- package/starters/blank/themes/starter/layouts/landing-page.tsx +14 -0
- package/starters/blank/themes/starter/layouts/page.tsx +29 -0
- package/starters/blank/themes/starter/partials/footer.tsx +22 -0
- package/starters/blank/themes/starter/partials/header.tsx +32 -0
- package/starters/blank/themes/starter/static/style.css +125 -0
- package/starters/blank/themes/starter/theme.yaml +16 -0
- package/starters/kadoservices/config/content-types.yaml +239 -0
- package/starters/kadoservices/config/languages.yaml +12 -0
- package/starters/kadoservices/config/section-types.yaml +379 -0
- package/starters/kadoservices/config/settings.yaml +15 -0
- package/starters/kadoservices/config/sites.yaml +14 -0
- package/starters/kadoservices/config/taxonomies.yaml +61 -0
- package/starters/kadoservices/config/translations/de.yaml +120 -0
- package/starters/kadoservices/config/translations/en.yaml +120 -0
- package/starters/kadoservices/config/translations/pl.yaml +120 -0
- package/starters/kadoservices/content/articles/employer-branding-strategies.md +61 -0
- package/starters/kadoservices/content/articles/hiring-trends-2026.md +61 -0
- package/starters/kadoservices/content/articles/hiring-trends-2026.pl.md +61 -0
- package/starters/kadoservices/content/articles/labor-law-changes.md +78 -0
- package/starters/kadoservices/content/articles/temporary-staffing-guide.md +76 -0
- package/starters/kadoservices/content/articles/temporary-staffing-guide.pl.md +76 -0
- package/starters/kadoservices/content/case-studies/finance-rpo-program.md +68 -0
- package/starters/kadoservices/content/case-studies/manufacturing-mass-recruitment.md +65 -0
- package/starters/kadoservices/content/case-studies/manufacturing-mass-recruitment.pl.md +65 -0
- package/starters/kadoservices/content/case-studies/retail-seasonal-staffing.md +69 -0
- package/starters/kadoservices/content/industries/finance-shared-services.md +59 -0
- package/starters/kadoservices/content/industries/healthcare.md +64 -0
- package/starters/kadoservices/content/industries/it-technology.md +61 -0
- package/starters/kadoservices/content/industries/logistics.md +54 -0
- package/starters/kadoservices/content/industries/manufacturing.md +61 -0
- package/starters/kadoservices/content/industries/retail.md +56 -0
- package/starters/kadoservices/content/landing-pages/homepage.pl.yaml +198 -0
- package/starters/kadoservices/content/landing-pages/homepage.yaml +198 -0
- package/starters/kadoservices/content/locations/gdansk.md +32 -0
- package/starters/kadoservices/content/locations/krakow.md +30 -0
- package/starters/kadoservices/content/locations/warsaw.md +30 -0
- package/starters/kadoservices/content/locations/wroclaw.md +32 -0
- package/starters/kadoservices/content/pages/about.md +58 -0
- package/starters/kadoservices/content/pages/about.pl.md +58 -0
- package/starters/kadoservices/content/pages/careers.md +55 -0
- package/starters/kadoservices/content/pages/clients.md +65 -0
- package/starters/kadoservices/content/pages/contact.md +74 -0
- package/starters/kadoservices/content/pages/contact.pl.md +74 -0
- package/starters/kadoservices/content/pages/faq.md +76 -0
- package/starters/kadoservices/content/services/employer-branding.md +70 -0
- package/starters/kadoservices/content/services/hr-consulting.md +64 -0
- package/starters/kadoservices/content/services/outsourcing-rpo.md +78 -0
- package/starters/kadoservices/content/services/outsourcing-rpo.pl.md +67 -0
- package/starters/kadoservices/content/services/payroll-hr-admin.md +66 -0
- package/starters/kadoservices/content/services/permanent-recruitment.md +78 -0
- package/starters/kadoservices/content/services/permanent-recruitment.pl.md +78 -0
- package/starters/kadoservices/content/services/temporary-staffing.md +78 -0
- package/starters/kadoservices/content/team/anna-kowalska.md +26 -0
- package/starters/kadoservices/content/team/jan-lewandowski.md +26 -0
- package/starters/kadoservices/content/team/katarzyna-zielinska.md +26 -0
- package/starters/kadoservices/content/team/maria-wisniewska.md +28 -0
- package/starters/kadoservices/content/team/tomasz-nowak.md +26 -0
- package/starters/kadoservices/starter.yaml +15 -0
- package/starters/kadoservices/themes/kadoservices/_types.ts +93 -0
- package/starters/kadoservices/themes/kadoservices/components/blog-listing/blog-listing.tsx +197 -0
- package/starters/kadoservices/themes/kadoservices/components/blog-listing/schema.yaml +21 -0
- package/starters/kadoservices/themes/kadoservices/components/columns/columns.tsx +104 -0
- package/starters/kadoservices/themes/kadoservices/components/columns/schema.yaml +23 -0
- package/starters/kadoservices/themes/kadoservices/components/counters/counters.css +13 -0
- package/starters/kadoservices/themes/kadoservices/components/counters/counters.tsx +103 -0
- package/starters/kadoservices/themes/kadoservices/components/counters/schema.yaml +23 -0
- package/starters/kadoservices/themes/kadoservices/components/cta/cta.tsx +100 -0
- package/starters/kadoservices/themes/kadoservices/components/cta/schema.yaml +30 -0
- package/starters/kadoservices/themes/kadoservices/components/faq/faq.tsx +77 -0
- package/starters/kadoservices/themes/kadoservices/components/faq/schema.yaml +20 -0
- package/starters/kadoservices/themes/kadoservices/components/features/features.tsx +151 -0
- package/starters/kadoservices/themes/kadoservices/components/features/schema.yaml +19 -0
- package/starters/kadoservices/themes/kadoservices/components/form/form.tsx +135 -0
- package/starters/kadoservices/themes/kadoservices/components/form/schema.yaml +18 -0
- package/starters/kadoservices/themes/kadoservices/components/gallery/gallery.tsx +90 -0
- package/starters/kadoservices/themes/kadoservices/components/gallery/schema.yaml +27 -0
- package/starters/kadoservices/themes/kadoservices/components/hero/hero.tsx +175 -0
- package/starters/kadoservices/themes/kadoservices/components/hero/schema.yaml +26 -0
- package/starters/kadoservices/themes/kadoservices/components/logo-slider/logo-slider.css +21 -0
- package/starters/kadoservices/themes/kadoservices/components/logo-slider/logo-slider.tsx +83 -0
- package/starters/kadoservices/themes/kadoservices/components/logo-slider/schema.yaml +23 -0
- package/starters/kadoservices/themes/kadoservices/components/pricing/pricing.tsx +161 -0
- package/starters/kadoservices/themes/kadoservices/components/pricing/schema.yaml +44 -0
- package/starters/kadoservices/themes/kadoservices/components/testimonials/schema.yaml +26 -0
- package/starters/kadoservices/themes/kadoservices/components/testimonials/testimonials.css +13 -0
- package/starters/kadoservices/themes/kadoservices/components/testimonials/testimonials.tsx +150 -0
- package/starters/kadoservices/themes/kadoservices/components/text/schema.yaml +12 -0
- package/starters/kadoservices/themes/kadoservices/components/text/text.tsx +67 -0
- package/starters/kadoservices/themes/kadoservices/components/text-with-image/schema.yaml +30 -0
- package/starters/kadoservices/themes/kadoservices/components/text-with-image/text-with-image.tsx +92 -0
- package/starters/kadoservices/themes/kadoservices/components/video/schema.yaml +19 -0
- package/starters/kadoservices/themes/kadoservices/components/video/video.tsx +103 -0
- package/starters/kadoservices/themes/kadoservices/layouts/404.tsx +96 -0
- package/starters/kadoservices/themes/kadoservices/layouts/article.tsx +140 -0
- package/starters/kadoservices/themes/kadoservices/layouts/base.tsx +669 -0
- package/starters/kadoservices/themes/kadoservices/layouts/case-study.tsx +240 -0
- package/starters/kadoservices/themes/kadoservices/layouts/index--articles.tsx +250 -0
- package/starters/kadoservices/themes/kadoservices/layouts/index--case-studies.tsx +232 -0
- package/starters/kadoservices/themes/kadoservices/layouts/index--services.tsx +237 -0
- package/starters/kadoservices/themes/kadoservices/layouts/index.tsx +96 -0
- package/starters/kadoservices/themes/kadoservices/layouts/industry.tsx +121 -0
- package/starters/kadoservices/themes/kadoservices/layouts/landing-page.tsx +14 -0
- package/starters/kadoservices/themes/kadoservices/layouts/page--about.tsx +158 -0
- package/starters/kadoservices/themes/kadoservices/layouts/page--careers.tsx +214 -0
- package/starters/kadoservices/themes/kadoservices/layouts/page--contact.tsx +218 -0
- package/starters/kadoservices/themes/kadoservices/layouts/page.tsx +45 -0
- package/starters/kadoservices/themes/kadoservices/layouts/service.tsx +235 -0
- package/starters/kadoservices/themes/kadoservices/partials/footer.tsx +109 -0
- package/starters/kadoservices/themes/kadoservices/partials/header.tsx +53 -0
- package/starters/kadoservices/themes/kadoservices/static/images/article-platform-engineering.jpg +0 -0
- package/starters/kadoservices/themes/kadoservices/static/images/barka-logo.png +0 -0
- package/starters/kadoservices/themes/kadoservices/static/images/case-study-banking-dashboard.jpg +0 -0
- package/starters/kadoservices/themes/kadoservices/static/images/case-study-banking.png +0 -0
- package/starters/kadoservices/themes/kadoservices/static/images/case-study-ecommerce-dashboard.jpg +0 -0
- package/starters/kadoservices/themes/kadoservices/static/images/case-study-healthcare-dashboard.jpg +0 -0
- package/starters/kadoservices/themes/kadoservices/static/images/case-study-healthcare.png +0 -0
- package/starters/kadoservices/themes/kadoservices/static/images/case-study-retail.png +0 -0
- package/starters/kadoservices/themes/kadoservices/static/images/handshake.jpg +0 -0
- package/starters/kadoservices/themes/kadoservices/static/images/hero-bg.jpg +0 -0
- package/starters/kadoservices/themes/kadoservices/static/images/hero-bg.png +0 -0
- package/starters/kadoservices/themes/kadoservices/static/images/lokatech-logo.png +0 -0
- package/starters/kadoservices/themes/kadoservices/static/images/office-warsaw.png +0 -0
- package/starters/kadoservices/themes/kadoservices/static/images/office.jpg +0 -0
- package/starters/kadoservices/themes/kadoservices/static/images/team-anna-kowalska.png +0 -0
- package/starters/kadoservices/themes/kadoservices/static/images/team-collaboration.jpg +0 -0
- package/starters/kadoservices/themes/kadoservices/static/images/team-jan-nowak.png +0 -0
- package/starters/kadoservices/themes/kadoservices/static/images/team-katarzyna-kaminska.png +0 -0
- package/starters/kadoservices/themes/kadoservices/static/images/team-maria-wisniewska.png +0 -0
- package/starters/kadoservices/themes/kadoservices/static/images/team-meeting.jpg +0 -0
- package/starters/kadoservices/themes/kadoservices/static/images/team-strategy-session.jpg +0 -0
- package/starters/kadoservices/themes/kadoservices/static/images/team-tomasz-lewandowski.png +0 -0
- package/starters/kadoservices/themes/kadoservices/static/style.css +542 -0
- package/starters/kadoservices/themes/kadoservices/theme.yaml +21 -0
- package/starters/kadoservices/themes/starter/_types.ts +93 -0
- package/starters/kadoservices/themes/starter/components/blog-listing/blog-listing.tsx +102 -0
- package/starters/kadoservices/themes/starter/components/blog-listing/schema.yaml +21 -0
- package/starters/kadoservices/themes/starter/components/columns/columns.tsx +101 -0
- package/starters/kadoservices/themes/starter/components/columns/schema.yaml +23 -0
- package/starters/kadoservices/themes/starter/components/counters/counters.css +13 -0
- package/starters/kadoservices/themes/starter/components/counters/counters.tsx +81 -0
- package/starters/kadoservices/themes/starter/components/counters/schema.yaml +23 -0
- package/starters/kadoservices/themes/starter/components/cta/cta.tsx +57 -0
- package/starters/kadoservices/themes/starter/components/cta/schema.yaml +30 -0
- package/starters/kadoservices/themes/starter/components/faq/faq.tsx +77 -0
- package/starters/kadoservices/themes/starter/components/faq/schema.yaml +20 -0
- package/starters/kadoservices/themes/starter/components/features/features.tsx +82 -0
- package/starters/kadoservices/themes/starter/components/features/schema.yaml +19 -0
- package/starters/kadoservices/themes/starter/components/form/form.tsx +126 -0
- package/starters/kadoservices/themes/starter/components/form/schema.yaml +18 -0
- package/starters/kadoservices/themes/starter/components/gallery/gallery.tsx +85 -0
- package/starters/kadoservices/themes/starter/components/gallery/schema.yaml +27 -0
- package/starters/kadoservices/themes/starter/components/hero/hero.tsx +77 -0
- package/starters/kadoservices/themes/starter/components/hero/schema.yaml +26 -0
- package/starters/kadoservices/themes/starter/components/logo-slider/logo-slider.css +21 -0
- package/starters/kadoservices/themes/starter/components/logo-slider/logo-slider.tsx +81 -0
- package/starters/kadoservices/themes/starter/components/logo-slider/schema.yaml +23 -0
- package/starters/kadoservices/themes/starter/components/pricing/pricing.tsx +141 -0
- package/starters/kadoservices/themes/starter/components/pricing/schema.yaml +44 -0
- package/starters/kadoservices/themes/starter/components/testimonials/schema.yaml +26 -0
- package/starters/kadoservices/themes/starter/components/testimonials/testimonials.tsx +100 -0
- package/starters/kadoservices/themes/starter/components/text/schema.yaml +12 -0
- package/starters/kadoservices/themes/starter/components/text/text.tsx +62 -0
- package/starters/kadoservices/themes/starter/components/text-with-image/schema.yaml +30 -0
- package/starters/kadoservices/themes/starter/components/text-with-image/text-with-image.tsx +86 -0
- package/starters/kadoservices/themes/starter/components/video/schema.yaml +19 -0
- package/starters/kadoservices/themes/starter/components/video/video.tsx +98 -0
- package/starters/kadoservices/themes/starter/layouts/article.tsx +42 -0
- package/starters/kadoservices/themes/starter/layouts/base.tsx +92 -0
- package/starters/kadoservices/themes/starter/layouts/landing-page.tsx +14 -0
- package/starters/kadoservices/themes/starter/layouts/page.tsx +29 -0
- package/starters/kadoservices/themes/starter/partials/footer.tsx +22 -0
- package/starters/kadoservices/themes/starter/partials/header.tsx +32 -0
- package/starters/kadoservices/themes/starter/static/style.css +125 -0
- package/starters/kadoservices/themes/starter/theme.yaml +16 -0
- package/starters/lokatech/config/content-types.yaml +226 -0
- package/starters/lokatech/config/languages.yaml +12 -0
- package/starters/lokatech/config/section-types.yaml +379 -0
- package/starters/lokatech/config/settings.yaml +15 -0
- package/starters/lokatech/config/sites.yaml +21 -0
- package/starters/lokatech/config/taxonomies.yaml +65 -0
- package/starters/lokatech/config/translations/de.yaml +108 -0
- package/starters/lokatech/config/translations/en.yaml +108 -0
- package/starters/lokatech/config/translations/pl.yaml +108 -0
- package/starters/lokatech/content/articles/ai-in-enterprise.md +51 -0
- package/starters/lokatech/content/articles/api-gateway-patterns-enterprise.md +35 -0
- package/starters/lokatech/content/articles/design-system-enterprise-scale.md +35 -0
- package/starters/lokatech/content/articles/domain-driven-design-bounded-contexts.md +35 -0
- package/starters/lokatech/content/articles/engineering-team-scaling-50-to-200.md +33 -0
- package/starters/lokatech/content/articles/event-driven-architecture-microservices.md +35 -0
- package/starters/lokatech/content/articles/future-of-cloud-native.md +47 -0
- package/starters/lokatech/content/articles/getting-started.md +83 -0
- package/starters/lokatech/content/articles/headless-cms-composable-architecture.md +35 -0
- package/starters/lokatech/content/articles/kubernetes-cost-optimization-finops.md +33 -0
- package/starters/lokatech/content/articles/legacy-modernization-strangler-fig.md +35 -0
- package/starters/lokatech/content/articles/llm-fine-tuning-enterprise-data.md +33 -0
- package/starters/lokatech/content/articles/observability-opentelemetry-stack.md +35 -0
- package/starters/lokatech/content/articles/platform-engineering-internal-developer-portals.md +33 -0
- package/starters/lokatech/content/articles/platform-engineering-internal-developer-portals.pl.md +33 -0
- package/starters/lokatech/content/articles/rag-retrieval-augmented-generation-production.md +35 -0
- package/starters/lokatech/content/articles/remote-engineering-culture-distributed-teams.md +35 -0
- package/starters/lokatech/content/articles/supply-chain-security-sbom.md +35 -0
- package/starters/lokatech/content/articles/welcome.md +42 -0
- package/starters/lokatech/content/articles/welcome.pl.md +39 -0
- package/starters/lokatech/content/articles/zero-trust-network-architecture.md +35 -0
- package/starters/lokatech/content/articles/zero-trust-security.md +55 -0
- package/starters/lokatech/content/case-studies/banking-platform-modernization.md +67 -0
- package/starters/lokatech/content/case-studies/ecommerce-platform-rewrite.md +64 -0
- package/starters/lokatech/content/case-studies/govtech-citizen-portal.md +59 -0
- package/starters/lokatech/content/case-studies/healthcare-data-pipeline.md +67 -0
- package/starters/lokatech/content/case-studies/healthcare-data-pipeline.pl.md +60 -0
- package/starters/lokatech/content/case-studies/insurance-claims-automation.md +58 -0
- package/starters/lokatech/content/case-studies/manufacturing-iot-digital-twin.md +58 -0
- package/starters/lokatech/content/case-studies/retail-cloud-migration.md +49 -0
- package/starters/lokatech/content/case-studies/telecom-5g-platform.md +57 -0
- package/starters/lokatech/content/industries/energy-utilities.md +35 -0
- package/starters/lokatech/content/industries/financial-services.md +35 -0
- package/starters/lokatech/content/industries/healthcare.md +35 -0
- package/starters/lokatech/content/industries/manufacturing.md +35 -0
- package/starters/lokatech/content/industries/retail-ecommerce.md +35 -0
- package/starters/lokatech/content/industries/telecom-media.md +35 -0
- package/starters/lokatech/content/landing-pages/homepage.pl.yaml +182 -0
- package/starters/lokatech/content/landing-pages/homepage.yaml +236 -0
- package/starters/lokatech/content/locations/berlin.md +22 -0
- package/starters/lokatech/content/locations/krakow.md +22 -0
- package/starters/lokatech/content/locations/london.md +22 -0
- package/starters/lokatech/content/locations/warsaw.md +22 -0
- package/starters/lokatech/content/locations/wroclaw.md +22 -0
- package/starters/lokatech/content/pages/about.md +55 -0
- package/starters/lokatech/content/pages/about.pl.md +36 -0
- package/starters/lokatech/content/pages/careers.md +50 -0
- package/starters/lokatech/content/pages/contact.md +51 -0
- package/starters/lokatech/content/pages/contact.pl.md +51 -0
- package/starters/lokatech/content/pages/security-compliance.md +66 -0
- package/starters/lokatech/content/services/cloud-infrastructure.md +73 -0
- package/starters/lokatech/content/services/custom-software-development.md +74 -0
- package/starters/lokatech/content/services/custom-software-development.pl.md +80 -0
- package/starters/lokatech/content/services/cybersecurity.md +72 -0
- package/starters/lokatech/content/services/data-ai.md +74 -0
- package/starters/lokatech/content/services/digital-transformation.md +70 -0
- package/starters/lokatech/content/services/it-outsourcing.md +72 -0
- package/starters/lokatech/content/team/anna-kowalska.md +21 -0
- package/starters/lokatech/content/team/jan-nowak.md +21 -0
- package/starters/lokatech/content/team/katarzyna-kaminska.md +20 -0
- package/starters/lokatech/content/team/maria-wisniewska.md +20 -0
- package/starters/lokatech/content/team/tomasz-lewandowski.md +20 -0
- package/starters/lokatech/starter.yaml +15 -0
- package/starters/lokatech/themes/lokatech/_types.ts +93 -0
- package/starters/lokatech/themes/lokatech/components/blog-listing/blog-listing.tsx +197 -0
- package/starters/lokatech/themes/lokatech/components/blog-listing/schema.yaml +21 -0
- package/starters/lokatech/themes/lokatech/components/columns/columns.tsx +104 -0
- package/starters/lokatech/themes/lokatech/components/columns/schema.yaml +23 -0
- package/starters/lokatech/themes/lokatech/components/counters/counters.css +13 -0
- package/starters/lokatech/themes/lokatech/components/counters/counters.tsx +103 -0
- package/starters/lokatech/themes/lokatech/components/counters/schema.yaml +23 -0
- package/starters/lokatech/themes/lokatech/components/cta/cta.tsx +100 -0
- package/starters/lokatech/themes/lokatech/components/cta/schema.yaml +30 -0
- package/starters/lokatech/themes/lokatech/components/faq/faq.tsx +77 -0
- package/starters/lokatech/themes/lokatech/components/faq/schema.yaml +20 -0
- package/starters/lokatech/themes/lokatech/components/features/features.tsx +149 -0
- package/starters/lokatech/themes/lokatech/components/features/schema.yaml +19 -0
- package/starters/lokatech/themes/lokatech/components/form/form.tsx +135 -0
- package/starters/lokatech/themes/lokatech/components/form/schema.yaml +18 -0
- package/starters/lokatech/themes/lokatech/components/gallery/gallery.tsx +90 -0
- package/starters/lokatech/themes/lokatech/components/gallery/schema.yaml +27 -0
- package/starters/lokatech/themes/lokatech/components/hero/hero.tsx +167 -0
- package/starters/lokatech/themes/lokatech/components/hero/schema.yaml +26 -0
- package/starters/lokatech/themes/lokatech/components/logo-slider/logo-slider.css +21 -0
- package/starters/lokatech/themes/lokatech/components/logo-slider/logo-slider.tsx +83 -0
- package/starters/lokatech/themes/lokatech/components/logo-slider/schema.yaml +23 -0
- package/starters/lokatech/themes/lokatech/components/pricing/pricing.tsx +161 -0
- package/starters/lokatech/themes/lokatech/components/pricing/schema.yaml +44 -0
- package/starters/lokatech/themes/lokatech/components/testimonials/schema.yaml +26 -0
- package/starters/lokatech/themes/lokatech/components/testimonials/testimonials.css +13 -0
- package/starters/lokatech/themes/lokatech/components/testimonials/testimonials.tsx +150 -0
- package/starters/lokatech/themes/lokatech/components/text/schema.yaml +12 -0
- package/starters/lokatech/themes/lokatech/components/text/text.tsx +67 -0
- package/starters/lokatech/themes/lokatech/components/text-with-image/schema.yaml +30 -0
- package/starters/lokatech/themes/lokatech/components/text-with-image/text-with-image.tsx +92 -0
- package/starters/lokatech/themes/lokatech/components/video/schema.yaml +19 -0
- package/starters/lokatech/themes/lokatech/components/video/video.tsx +103 -0
- package/starters/lokatech/themes/lokatech/layouts/404.tsx +96 -0
- package/starters/lokatech/themes/lokatech/layouts/article.tsx +140 -0
- package/starters/lokatech/themes/lokatech/layouts/base.tsx +672 -0
- package/starters/lokatech/themes/lokatech/layouts/case-study.tsx +233 -0
- package/starters/lokatech/themes/lokatech/layouts/index--articles.tsx +246 -0
- package/starters/lokatech/themes/lokatech/layouts/index--case-studies.tsx +230 -0
- package/starters/lokatech/themes/lokatech/layouts/index--services.tsx +237 -0
- package/starters/lokatech/themes/lokatech/layouts/index.tsx +96 -0
- package/starters/lokatech/themes/lokatech/layouts/industry.tsx +121 -0
- package/starters/lokatech/themes/lokatech/layouts/landing-page.tsx +14 -0
- package/starters/lokatech/themes/lokatech/layouts/page--about.tsx +158 -0
- package/starters/lokatech/themes/lokatech/layouts/page--careers.tsx +125 -0
- package/starters/lokatech/themes/lokatech/layouts/page--contact.tsx +235 -0
- package/starters/lokatech/themes/lokatech/layouts/page.tsx +45 -0
- package/starters/lokatech/themes/lokatech/layouts/service.tsx +235 -0
- package/starters/lokatech/themes/lokatech/partials/footer.tsx +109 -0
- package/starters/lokatech/themes/lokatech/partials/header.tsx +53 -0
- package/starters/lokatech/themes/lokatech/static/images/article-platform-engineering.jpg +0 -0
- package/starters/lokatech/themes/lokatech/static/images/barka-logo.png +0 -0
- package/starters/lokatech/themes/lokatech/static/images/case-study-banking-dashboard.jpg +0 -0
- package/starters/lokatech/themes/lokatech/static/images/case-study-banking.png +0 -0
- package/starters/lokatech/themes/lokatech/static/images/case-study-ecommerce-dashboard.jpg +0 -0
- package/starters/lokatech/themes/lokatech/static/images/case-study-healthcare-dashboard.jpg +0 -0
- package/starters/lokatech/themes/lokatech/static/images/case-study-healthcare.png +0 -0
- package/starters/lokatech/themes/lokatech/static/images/case-study-retail.png +0 -0
- package/starters/lokatech/themes/lokatech/static/images/hero-bg.png +0 -0
- package/starters/lokatech/themes/lokatech/static/images/lokatech-logo.png +0 -0
- package/starters/lokatech/themes/lokatech/static/images/office-warsaw.png +0 -0
- package/starters/lokatech/themes/lokatech/static/images/team-anna-kowalska.png +0 -0
- package/starters/lokatech/themes/lokatech/static/images/team-collaboration.jpg +0 -0
- package/starters/lokatech/themes/lokatech/static/images/team-jan-nowak.png +0 -0
- package/starters/lokatech/themes/lokatech/static/images/team-katarzyna-kaminska.png +0 -0
- package/starters/lokatech/themes/lokatech/static/images/team-maria-wisniewska.png +0 -0
- package/starters/lokatech/themes/lokatech/static/images/team-strategy-session.jpg +0 -0
- package/starters/lokatech/themes/lokatech/static/images/team-tomasz-lewandowski.png +0 -0
- package/starters/lokatech/themes/lokatech/static/style.css +495 -0
- package/starters/lokatech/themes/lokatech/theme.yaml +21 -0
- package/starters/lokatech/themes/starter/_types.ts +93 -0
- package/starters/lokatech/themes/starter/components/blog-listing/blog-listing.tsx +102 -0
- package/starters/lokatech/themes/starter/components/blog-listing/schema.yaml +21 -0
- package/starters/lokatech/themes/starter/components/columns/columns.tsx +101 -0
- package/starters/lokatech/themes/starter/components/columns/schema.yaml +23 -0
- package/starters/lokatech/themes/starter/components/counters/counters.css +13 -0
- package/starters/lokatech/themes/starter/components/counters/counters.tsx +81 -0
- package/starters/lokatech/themes/starter/components/counters/schema.yaml +23 -0
- package/starters/lokatech/themes/starter/components/cta/cta.tsx +57 -0
- package/starters/lokatech/themes/starter/components/cta/schema.yaml +30 -0
- package/starters/lokatech/themes/starter/components/faq/faq.tsx +77 -0
- package/starters/lokatech/themes/starter/components/faq/schema.yaml +20 -0
- package/starters/lokatech/themes/starter/components/features/features.tsx +82 -0
- package/starters/lokatech/themes/starter/components/features/schema.yaml +19 -0
- package/starters/lokatech/themes/starter/components/form/form.tsx +126 -0
- package/starters/lokatech/themes/starter/components/form/schema.yaml +18 -0
- package/starters/lokatech/themes/starter/components/gallery/gallery.tsx +85 -0
- package/starters/lokatech/themes/starter/components/gallery/schema.yaml +27 -0
- package/starters/lokatech/themes/starter/components/hero/hero.tsx +77 -0
- package/starters/lokatech/themes/starter/components/hero/schema.yaml +26 -0
- package/starters/lokatech/themes/starter/components/logo-slider/logo-slider.css +21 -0
- package/starters/lokatech/themes/starter/components/logo-slider/logo-slider.tsx +81 -0
- package/starters/lokatech/themes/starter/components/logo-slider/schema.yaml +23 -0
- package/starters/lokatech/themes/starter/components/pricing/pricing.tsx +141 -0
- package/starters/lokatech/themes/starter/components/pricing/schema.yaml +44 -0
- package/starters/lokatech/themes/starter/components/testimonials/schema.yaml +26 -0
- package/starters/lokatech/themes/starter/components/testimonials/testimonials.tsx +100 -0
- package/starters/lokatech/themes/starter/components/text/schema.yaml +12 -0
- package/starters/lokatech/themes/starter/components/text/text.tsx +62 -0
- package/starters/lokatech/themes/starter/components/text-with-image/schema.yaml +30 -0
- package/starters/lokatech/themes/starter/components/text-with-image/text-with-image.tsx +86 -0
- package/starters/lokatech/themes/starter/components/video/schema.yaml +19 -0
- package/starters/lokatech/themes/starter/components/video/video.tsx +98 -0
- package/starters/lokatech/themes/starter/layouts/article.tsx +42 -0
- package/starters/lokatech/themes/starter/layouts/base.tsx +92 -0
- package/starters/lokatech/themes/starter/layouts/landing-page.tsx +14 -0
- package/starters/lokatech/themes/starter/layouts/page.tsx +29 -0
- package/starters/lokatech/themes/starter/partials/footer.tsx +22 -0
- package/starters/lokatech/themes/starter/partials/header.tsx +32 -0
- package/starters/lokatech/themes/starter/static/style.css +125 -0
- package/starters/lokatech/themes/starter/theme.yaml +16 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/** @jsxImportSource hono/jsx */
|
|
2
|
+
import type { FC } from 'hono/jsx';
|
|
3
|
+
import type { LayoutProps } from '../_types.js';
|
|
4
|
+
import Base from './base.js';
|
|
5
|
+
|
|
6
|
+
const Industry: FC<LayoutProps> = (props) => {
|
|
7
|
+
const { content, themeSettings } = props;
|
|
8
|
+
const primaryColor = themeSettings.primary_color ?? '#10B981';
|
|
9
|
+
const navColor = themeSettings.nav_color ?? '#0B1222';
|
|
10
|
+
const fields = content.fields;
|
|
11
|
+
|
|
12
|
+
return (
|
|
13
|
+
<Base {...props}>
|
|
14
|
+
{/* Hero */}
|
|
15
|
+
<section class="relative overflow-hidden py-28 text-white" style={{ backgroundColor: navColor }}>
|
|
16
|
+
<div class="pointer-events-none absolute inset-0" style={{ background: `radial-gradient(ellipse at 30% 70%, ${primaryColor}10 0%, transparent 50%)` }} />
|
|
17
|
+
<div class="relative mx-auto max-w-4xl px-6">
|
|
18
|
+
<p class="mb-4 text-xs font-semibold uppercase tracking-[0.2em] text-gray-400">Industries</p>
|
|
19
|
+
<h1 class="text-4xl font-extrabold tracking-[-0.03em] leading-[1.1] sm:text-5xl lg:text-6xl">
|
|
20
|
+
{content.title}
|
|
21
|
+
</h1>
|
|
22
|
+
{fields.short_description && (
|
|
23
|
+
<p class="mt-8 max-w-2xl text-lg leading-relaxed text-gray-300/90">
|
|
24
|
+
{fields.short_description}
|
|
25
|
+
</p>
|
|
26
|
+
)}
|
|
27
|
+
</div>
|
|
28
|
+
</section>
|
|
29
|
+
|
|
30
|
+
{/* Challenges */}
|
|
31
|
+
{fields.challenges && Array.isArray(fields.challenges) && fields.challenges.length > 0 && (
|
|
32
|
+
<section class="py-24">
|
|
33
|
+
<div class="mx-auto max-w-5xl px-6">
|
|
34
|
+
<h2 class="mb-4 text-3xl font-bold tracking-[-0.02em] text-slate-900">Industry Challenges</h2>
|
|
35
|
+
<p class="mb-12 text-lg text-slate-500">The problems keeping leaders in this space up at night</p>
|
|
36
|
+
<div class="grid gap-6 sm:grid-cols-2">
|
|
37
|
+
{fields.challenges.map((challenge: string) => (
|
|
38
|
+
<div class="group rounded-2xl border border-gray-100 bg-white p-8 transition-all duration-300 hover:shadow-lg hover:shadow-slate-200/50">
|
|
39
|
+
<div class="mb-4 h-1 w-8 rounded transition-all duration-300 group-hover:w-12" style={{ backgroundColor: primaryColor }} />
|
|
40
|
+
<p class="leading-relaxed text-slate-600">{challenge}</p>
|
|
41
|
+
</div>
|
|
42
|
+
))}
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
</section>
|
|
46
|
+
)}
|
|
47
|
+
|
|
48
|
+
{/* Solutions */}
|
|
49
|
+
{fields.solutions && Array.isArray(fields.solutions) && fields.solutions.length > 0 && (
|
|
50
|
+
<section class="border-t border-gray-100 bg-slate-50 py-24">
|
|
51
|
+
<div class="mx-auto max-w-5xl px-6">
|
|
52
|
+
<h2 class="mb-4 text-3xl font-bold tracking-[-0.02em] text-slate-900">Our Solutions</h2>
|
|
53
|
+
<p class="mb-16 text-lg text-slate-500">Proven approaches tailored to your sector</p>
|
|
54
|
+
<div class="grid gap-8 sm:grid-cols-2 lg:grid-cols-3">
|
|
55
|
+
{fields.solutions.map((solution: { title: string; description?: string; url?: string }) => (
|
|
56
|
+
<div class="group rounded-2xl border border-gray-100 bg-white p-8 transition-all duration-300 hover:border-emerald-200 hover:shadow-lg hover:shadow-slate-200/50">
|
|
57
|
+
<h3 class="mb-3 text-lg font-semibold tracking-[-0.01em] text-slate-900">{solution.title}</h3>
|
|
58
|
+
{solution.description && (
|
|
59
|
+
<p class="text-sm leading-relaxed text-slate-500">{solution.description}</p>
|
|
60
|
+
)}
|
|
61
|
+
{solution.url && (
|
|
62
|
+
<a href={solution.url} class="mt-4 inline-flex items-center gap-1 text-sm font-medium transition-colors hover:no-underline" style={{ color: primaryColor }}>
|
|
63
|
+
Learn more
|
|
64
|
+
<span class="transition-transform duration-200 group-hover:translate-x-1">→</span>
|
|
65
|
+
</a>
|
|
66
|
+
)}
|
|
67
|
+
</div>
|
|
68
|
+
))}
|
|
69
|
+
</div>
|
|
70
|
+
</div>
|
|
71
|
+
</section>
|
|
72
|
+
)}
|
|
73
|
+
|
|
74
|
+
{/* Compliance */}
|
|
75
|
+
{fields.compliance && Array.isArray(fields.compliance) && fields.compliance.length > 0 && (
|
|
76
|
+
<section class="py-24">
|
|
77
|
+
<div class="mx-auto max-w-5xl px-6">
|
|
78
|
+
<h2 class="mb-12 text-3xl font-bold tracking-[-0.02em] text-slate-900">Compliance & Certifications</h2>
|
|
79
|
+
<div class="flex flex-wrap gap-4">
|
|
80
|
+
{fields.compliance.map((badge: string) => (
|
|
81
|
+
<span class="rounded-xl border-2 px-6 py-3 text-sm font-semibold transition-all duration-200 hover:shadow-md" style={{ borderColor: primaryColor, color: primaryColor }}>
|
|
82
|
+
{badge}
|
|
83
|
+
</span>
|
|
84
|
+
))}
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
</section>
|
|
88
|
+
)}
|
|
89
|
+
|
|
90
|
+
{/* Body */}
|
|
91
|
+
{content.bodyHtml && (
|
|
92
|
+
<section class="border-t border-gray-100 py-20">
|
|
93
|
+
<div class="mx-auto max-w-3xl px-6">
|
|
94
|
+
<div class="prose prose-lg prose-slate max-w-none" dangerouslySetInnerHTML={{ __html: content.bodyHtml }} />
|
|
95
|
+
</div>
|
|
96
|
+
</section>
|
|
97
|
+
)}
|
|
98
|
+
|
|
99
|
+
{/* CTA */}
|
|
100
|
+
<section class="relative overflow-hidden py-24 text-white" style={{ backgroundColor: navColor }}>
|
|
101
|
+
<div class="pointer-events-none absolute inset-0" style={{ background: `radial-gradient(ellipse at 50% 50%, ${primaryColor}12 0%, transparent 60%)` }} />
|
|
102
|
+
<div class="relative mx-auto max-w-3xl px-6 text-center">
|
|
103
|
+
<h2 class="text-3xl font-bold tracking-[-0.02em] sm:text-4xl">Partner with industry experts</h2>
|
|
104
|
+
<p class="mt-6 text-lg text-gray-300/90">We understand the unique challenges of your sector. Let's solve them together.</p>
|
|
105
|
+
<div class="mt-10 flex flex-wrap items-center justify-center gap-4">
|
|
106
|
+
<a href="/contact" class="inline-block rounded-lg px-8 py-3.5 text-sm font-semibold text-white transition-all duration-200 hover:shadow-xl hover:no-underline" style={{ backgroundColor: primaryColor }}>
|
|
107
|
+
Get in Touch
|
|
108
|
+
</a>
|
|
109
|
+
<a href="/case-studies" class="inline-block rounded-lg border border-white/20 px-8 py-3.5 text-sm font-semibold text-white/90 transition-all duration-200 hover:border-white/50 hover:text-white hover:no-underline">
|
|
110
|
+
View Case Studies
|
|
111
|
+
</a>
|
|
112
|
+
</div>
|
|
113
|
+
</div>
|
|
114
|
+
</section>
|
|
115
|
+
|
|
116
|
+
{props.children}
|
|
117
|
+
</Base>
|
|
118
|
+
);
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
export default Industry;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** @jsxImportSource hono/jsx */
|
|
2
|
+
import type { FC } from 'hono/jsx';
|
|
3
|
+
import type { LayoutProps } from '../_types.js';
|
|
4
|
+
import Base from './base.js';
|
|
5
|
+
|
|
6
|
+
const LandingPage: FC<LayoutProps> = (props) => {
|
|
7
|
+
return (
|
|
8
|
+
<Base {...props}>
|
|
9
|
+
{props.children}
|
|
10
|
+
</Base>
|
|
11
|
+
);
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export default LandingPage;
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/** @jsxImportSource hono/jsx */
|
|
2
|
+
import type { FC } from 'hono/jsx';
|
|
3
|
+
import type { LayoutProps } from '../_types.js';
|
|
4
|
+
import Base from './base.js';
|
|
5
|
+
|
|
6
|
+
const values = [
|
|
7
|
+
{ title: 'Excellence', icon: '◆', desc: 'We hire the top 5% of engineers and give them the tools, training, and autonomy to do their best work.' },
|
|
8
|
+
{ title: 'Partnership', icon: '◈', desc: 'Our teams embed with clients, understand context, and take ownership of outcomes — not just deliverables.' },
|
|
9
|
+
{ title: 'Innovation', icon: '◇', desc: '15% of revenue invested in R&D. Quarterly innovation sprints. Active open source contributors.' },
|
|
10
|
+
{ title: 'Integrity', icon: '○', desc: 'We tell clients what they need to hear. Trust is built in uncomfortable conversations, not polished decks.' },
|
|
11
|
+
];
|
|
12
|
+
|
|
13
|
+
const milestones = [
|
|
14
|
+
{ year: '2008', text: 'Founded in Warsaw by five engineers' },
|
|
15
|
+
{ year: '2011', text: 'Opened Kraków office — 50 engineers' },
|
|
16
|
+
{ year: '2014', text: '200 engineers. Launched cloud practice' },
|
|
17
|
+
{ year: '2016', text: 'Wrocław office. ISO 27001 certified' },
|
|
18
|
+
{ year: '2018', text: 'Berlin office. First Fortune 500 client' },
|
|
19
|
+
{ year: '2020', text: 'Launched Data & AI practice' },
|
|
20
|
+
{ year: '2022', text: 'London office. 600 engineers' },
|
|
21
|
+
{ year: '2024', text: '800+ engineers. Clutch Top 100 globally' },
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
const PageAbout: FC<LayoutProps> = (props) => {
|
|
25
|
+
const { content, themeSettings } = props;
|
|
26
|
+
const primaryColor = themeSettings.primary_color ?? '#10B981';
|
|
27
|
+
const navColor = themeSettings.nav_color ?? '#0B1222';
|
|
28
|
+
|
|
29
|
+
return (
|
|
30
|
+
<Base {...props}>
|
|
31
|
+
{/* Hero with team photo */}
|
|
32
|
+
<section class="relative overflow-hidden text-white" style={{ minHeight: '520px' }}>
|
|
33
|
+
<img
|
|
34
|
+
src="/static/images/article-platform-engineering.jpg"
|
|
35
|
+
alt="LokaTech team collaborating"
|
|
36
|
+
class="absolute inset-0 h-full w-full object-cover"
|
|
37
|
+
loading="eager"
|
|
38
|
+
/>
|
|
39
|
+
<div class="absolute inset-0" style={{
|
|
40
|
+
background: `linear-gradient(to bottom, ${navColor}c0 0%, ${navColor}dd 50%, ${navColor}f0 100%)`,
|
|
41
|
+
}} />
|
|
42
|
+
<div class="relative z-10 flex min-h-[520px] items-center py-28">
|
|
43
|
+
<div class="mx-auto max-w-4xl px-6 text-center">
|
|
44
|
+
<p class="mb-4 text-xs font-semibold uppercase tracking-[0.2em] text-gray-300">About Us</p>
|
|
45
|
+
<h1 class="text-4xl font-extrabold tracking-[-0.03em] leading-[1.1] sm:text-5xl lg:text-6xl" style={{ textShadow: '0 2px 20px rgba(0,0,0,0.3)' }}>
|
|
46
|
+
We engineer technology that moves enterprises forward
|
|
47
|
+
</h1>
|
|
48
|
+
<p class="mx-auto mt-8 max-w-2xl text-lg leading-relaxed text-gray-200/90">
|
|
49
|
+
Founded in 2008. 800+ engineers across 6 European offices. Custom software, cloud, AI, and cybersecurity for enterprise clients.
|
|
50
|
+
</p>
|
|
51
|
+
</div>
|
|
52
|
+
</div>
|
|
53
|
+
</section>
|
|
54
|
+
|
|
55
|
+
{/* Story — clean prose, lots of white space */}
|
|
56
|
+
<section class="py-24">
|
|
57
|
+
<div class="mx-auto max-w-3xl px-6">
|
|
58
|
+
<h2 class="mb-8 text-3xl font-bold tracking-[-0.02em] text-slate-900">Our Story</h2>
|
|
59
|
+
<div class="space-y-6 text-lg leading-relaxed text-slate-600">
|
|
60
|
+
<p>
|
|
61
|
+
LokaTech Solutions was founded in 2008 in Warsaw by a team of five engineers who believed that enterprise IT services could be delivered differently — with genuine technical excellence, transparent partnerships, and a relentless focus on outcomes over output.
|
|
62
|
+
</p>
|
|
63
|
+
<p>
|
|
64
|
+
What started as a small custom software shop has grown into one of Central Europe's leading technology services companies. Our growth has been organic and deliberate — every new office, service line, and hire was driven by client demand and a commitment to maintaining the engineering culture that defines us.
|
|
65
|
+
</p>
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
68
|
+
</section>
|
|
69
|
+
|
|
70
|
+
{/* Values — 4-column cards */}
|
|
71
|
+
<section class="border-t border-gray-100 bg-slate-50 py-24">
|
|
72
|
+
<div class="mx-auto max-w-6xl px-6">
|
|
73
|
+
<div class="mx-auto mb-16 max-w-2xl text-center">
|
|
74
|
+
<h2 class="text-3xl font-bold tracking-[-0.02em] text-slate-900">Our Values</h2>
|
|
75
|
+
<p class="mt-4 text-lg text-slate-500">The principles behind every decision we make</p>
|
|
76
|
+
</div>
|
|
77
|
+
<div class="grid gap-8 sm:grid-cols-2 lg:grid-cols-4">
|
|
78
|
+
{values.map((v) => (
|
|
79
|
+
<div class="group rounded-2xl border border-gray-100 bg-white p-8 transition-all duration-300 hover:shadow-xl hover:shadow-slate-200/50">
|
|
80
|
+
<div class="mb-5 text-2xl" style={{ color: primaryColor }}>{v.icon}</div>
|
|
81
|
+
<h3 class="mb-3 text-lg font-semibold text-slate-900">{v.title}</h3>
|
|
82
|
+
<p class="text-sm leading-relaxed text-slate-500">{v.desc}</p>
|
|
83
|
+
</div>
|
|
84
|
+
))}
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
</section>
|
|
88
|
+
|
|
89
|
+
{/* Mission statement — big centered text */}
|
|
90
|
+
<section class="py-24">
|
|
91
|
+
<div class="mx-auto max-w-4xl px-6 text-center">
|
|
92
|
+
<blockquote class="text-3xl font-bold leading-snug tracking-[-0.02em] text-slate-900 sm:text-4xl">
|
|
93
|
+
"We <span style={{ color: primaryColor }}>engineer</span> because we build with rigor.
|
|
94
|
+
<span style={{ color: primaryColor }}> Technology</span> because it's what we know deeply.
|
|
95
|
+
<span style={{ color: primaryColor }}> Moves enterprises forward</span> because our work has no value unless it creates measurable outcomes."
|
|
96
|
+
</blockquote>
|
|
97
|
+
</div>
|
|
98
|
+
</section>
|
|
99
|
+
|
|
100
|
+
{/* Milestones — clean timeline */}
|
|
101
|
+
<section class="border-t border-gray-100 bg-slate-50 py-24">
|
|
102
|
+
<div class="mx-auto max-w-4xl px-6">
|
|
103
|
+
<h2 class="mb-16 text-center text-3xl font-bold tracking-[-0.02em] text-slate-900">Key Milestones</h2>
|
|
104
|
+
<div class="space-y-0">
|
|
105
|
+
{milestones.map((m, i) => (
|
|
106
|
+
<div class="group flex items-start gap-8 py-6" style={{ borderBottom: i < milestones.length - 1 ? '1px solid #f1f5f9' : 'none' }}>
|
|
107
|
+
<div class="w-20 shrink-0 text-right text-2xl font-extrabold tracking-[-0.02em]" style={{ color: primaryColor }}>
|
|
108
|
+
{m.year}
|
|
109
|
+
</div>
|
|
110
|
+
<div class="pt-1 text-base text-slate-600">
|
|
111
|
+
{m.text}
|
|
112
|
+
</div>
|
|
113
|
+
</div>
|
|
114
|
+
))}
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
117
|
+
</section>
|
|
118
|
+
|
|
119
|
+
{/* Numbers */}
|
|
120
|
+
<section class="py-24">
|
|
121
|
+
<div class="mx-auto max-w-6xl px-6">
|
|
122
|
+
<div class="grid gap-12 text-center sm:grid-cols-2 lg:grid-cols-4">
|
|
123
|
+
{[
|
|
124
|
+
{ value: '800+', label: 'Engineers' },
|
|
125
|
+
{ value: '18', label: 'Years of Excellence' },
|
|
126
|
+
{ value: '200+', label: 'Projects Delivered' },
|
|
127
|
+
{ value: '6', label: 'European Offices' },
|
|
128
|
+
].map((stat) => (
|
|
129
|
+
<div>
|
|
130
|
+
<div class="text-5xl font-extrabold tracking-[-0.03em]" style={{ color: primaryColor }}>{stat.value}</div>
|
|
131
|
+
<div class="mt-2 text-sm font-medium uppercase tracking-[0.1em] text-slate-400">{stat.label}</div>
|
|
132
|
+
</div>
|
|
133
|
+
))}
|
|
134
|
+
</div>
|
|
135
|
+
</div>
|
|
136
|
+
</section>
|
|
137
|
+
|
|
138
|
+
{/* CTA */}
|
|
139
|
+
<section class="relative overflow-hidden py-24 text-white" style={{ backgroundColor: navColor }}>
|
|
140
|
+
<div class="pointer-events-none absolute inset-0" style={{ background: `radial-gradient(ellipse at 50% 50%, ${primaryColor}12 0%, transparent 60%)` }} />
|
|
141
|
+
<div class="relative mx-auto max-w-3xl px-6 text-center">
|
|
142
|
+
<h2 class="text-3xl font-bold tracking-[-0.02em] sm:text-4xl">Let's build something great together</h2>
|
|
143
|
+
<p class="mt-6 text-lg text-gray-300/90">Whether you need a dedicated team or a strategic partner — we're ready.</p>
|
|
144
|
+
<div class="mt-10 flex flex-wrap items-center justify-center gap-4">
|
|
145
|
+
<a href="/contact" class="inline-block rounded-lg px-8 py-3.5 text-sm font-semibold text-white transition-all duration-200 hover:shadow-xl hover:no-underline" style={{ backgroundColor: primaryColor }}>
|
|
146
|
+
Get in Touch
|
|
147
|
+
</a>
|
|
148
|
+
<a href="/case-studies" class="inline-block rounded-lg border border-white/20 px-8 py-3.5 text-sm font-semibold text-white/90 transition-all duration-200 hover:border-white/50 hover:text-white hover:no-underline">
|
|
149
|
+
View Case Studies
|
|
150
|
+
</a>
|
|
151
|
+
</div>
|
|
152
|
+
</div>
|
|
153
|
+
</section>
|
|
154
|
+
</Base>
|
|
155
|
+
);
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
export default PageAbout;
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/** @jsxImportSource hono/jsx */
|
|
2
|
+
import type { FC } from 'hono/jsx';
|
|
3
|
+
import type { LayoutProps } from '../_types.js';
|
|
4
|
+
import Base from './base.js';
|
|
5
|
+
|
|
6
|
+
const perks = [
|
|
7
|
+
{ icon: '🌍', title: 'Remote-First', desc: 'Work from anywhere in Europe. Our 6 offices are optional, not mandatory.' },
|
|
8
|
+
{ icon: '📚', title: 'Learning Budget', desc: '€2,000/year for courses, conferences, and certifications of your choice.' },
|
|
9
|
+
{ icon: '🏥', title: 'Health & Wellness', desc: 'Private healthcare, mental health support, gym memberships, and ergonomic home office setup.' },
|
|
10
|
+
{ icon: '🏖️', title: '26 Days PTO', desc: 'Plus national holidays. We believe rested engineers write better code.' },
|
|
11
|
+
{ icon: '💻', title: 'Top Hardware', desc: 'MacBook Pro M4, 4K monitor, standing desk — everything you need to do your best work.' },
|
|
12
|
+
{ icon: '📈', title: 'Growth Path', desc: 'Clear career tracks for IC and management. Quarterly feedback and annual reviews.' },
|
|
13
|
+
];
|
|
14
|
+
|
|
15
|
+
const openings = [
|
|
16
|
+
{ title: 'Senior Backend Engineer', team: 'Cloud Platform', location: 'Warsaw / Remote', type: 'Full-time' },
|
|
17
|
+
{ title: 'Staff Frontend Engineer', team: 'Admin UI', location: 'Kraków / Remote', type: 'Full-time' },
|
|
18
|
+
{ title: 'ML Engineer', team: 'Data & AI', location: 'Berlin / Remote', type: 'Full-time' },
|
|
19
|
+
{ title: 'DevOps Engineer', team: 'Infrastructure', location: 'Wrocław / Remote', type: 'Full-time' },
|
|
20
|
+
{ title: 'Product Designer', team: 'Design', location: 'London / Remote', type: 'Full-time' },
|
|
21
|
+
{ title: 'Engineering Manager', team: 'Custom Software', location: 'Warsaw / Remote', type: 'Full-time' },
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
const PageCareers: FC<LayoutProps> = (props) => {
|
|
25
|
+
const { content, themeSettings } = props;
|
|
26
|
+
const primaryColor = themeSettings.primary_color ?? '#10B981';
|
|
27
|
+
const navColor = themeSettings.nav_color ?? '#0B1222';
|
|
28
|
+
|
|
29
|
+
return (
|
|
30
|
+
<Base {...props}>
|
|
31
|
+
{/* Hero */}
|
|
32
|
+
<section class="relative overflow-hidden py-28 text-white" style={{ backgroundColor: navColor }}>
|
|
33
|
+
<div class="pointer-events-none absolute inset-0" style={{ background: `radial-gradient(ellipse at 30% 70%, ${primaryColor}10 0%, transparent 50%)` }} />
|
|
34
|
+
<div class="relative mx-auto max-w-4xl px-6 text-center">
|
|
35
|
+
<p class="mb-4 text-xs font-semibold uppercase tracking-[0.2em] text-gray-400">Careers</p>
|
|
36
|
+
<h1 class="text-4xl font-extrabold tracking-[-0.03em] leading-[1.1] sm:text-5xl lg:text-6xl">
|
|
37
|
+
Build technology that matters
|
|
38
|
+
</h1>
|
|
39
|
+
<p class="mx-auto mt-8 max-w-2xl text-lg leading-relaxed text-gray-300/90">
|
|
40
|
+
Join 800+ engineers solving complex problems for the world's most ambitious enterprises.
|
|
41
|
+
</p>
|
|
42
|
+
<a href="#openings" class="mt-10 inline-block rounded-lg px-8 py-3.5 text-sm font-semibold text-white transition-all duration-200 hover:shadow-xl hover:no-underline" style={{ backgroundColor: primaryColor }}>
|
|
43
|
+
View Open Positions
|
|
44
|
+
</a>
|
|
45
|
+
</div>
|
|
46
|
+
</section>
|
|
47
|
+
|
|
48
|
+
{/* Why join us */}
|
|
49
|
+
<section class="py-24">
|
|
50
|
+
<div class="mx-auto max-w-4xl px-6">
|
|
51
|
+
<h2 class="mb-6 text-3xl font-bold tracking-[-0.02em] text-slate-900">Why LokaTech?</h2>
|
|
52
|
+
<div class="space-y-6 text-lg leading-relaxed text-slate-600">
|
|
53
|
+
<p>
|
|
54
|
+
We're not a body shop. Every engineer here works on meaningful projects with direct business impact — from modernizing core banking systems to building real-time healthcare data pipelines. You'll work alongside some of the best engineers in Europe, with the autonomy to make technical decisions and the support to grow your career.
|
|
55
|
+
</p>
|
|
56
|
+
<p>
|
|
57
|
+
Our culture is built on engineering excellence, not corporate theatre. No mandatory fun, no ping-pong tables as compensation for long hours. Just great work, fair pay, and a genuine commitment to your professional development.
|
|
58
|
+
</p>
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
</section>
|
|
62
|
+
|
|
63
|
+
{/* Perks */}
|
|
64
|
+
<section class="border-t border-gray-100 bg-slate-50 py-24">
|
|
65
|
+
<div class="mx-auto max-w-6xl px-6">
|
|
66
|
+
<div class="mx-auto mb-16 max-w-2xl text-center">
|
|
67
|
+
<h2 class="text-3xl font-bold tracking-[-0.02em] text-slate-900">Benefits & Perks</h2>
|
|
68
|
+
<p class="mt-4 text-lg text-slate-500">Everything you need to do your best work</p>
|
|
69
|
+
</div>
|
|
70
|
+
<div class="grid gap-8 sm:grid-cols-2 lg:grid-cols-3">
|
|
71
|
+
{perks.map((p) => (
|
|
72
|
+
<div class="rounded-2xl border border-gray-100 bg-white p-8 transition-all duration-300 hover:shadow-lg hover:shadow-slate-200/50">
|
|
73
|
+
<div class="mb-4 text-3xl">{p.icon}</div>
|
|
74
|
+
<h3 class="mb-2 text-base font-semibold text-slate-900">{p.title}</h3>
|
|
75
|
+
<p class="text-sm leading-relaxed text-slate-500">{p.desc}</p>
|
|
76
|
+
</div>
|
|
77
|
+
))}
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
</section>
|
|
81
|
+
|
|
82
|
+
{/* Open positions */}
|
|
83
|
+
<section class="py-24" id="openings">
|
|
84
|
+
<div class="mx-auto max-w-4xl px-6">
|
|
85
|
+
<h2 class="mb-4 text-3xl font-bold tracking-[-0.02em] text-slate-900">Open Positions</h2>
|
|
86
|
+
<p class="mb-12 text-lg text-slate-500">Can't find a perfect fit? Send your CV to <a href="mailto:careers@barka.dev" class="hover:no-underline" style={{ color: primaryColor }}>careers@barka.dev</a></p>
|
|
87
|
+
|
|
88
|
+
<div class="divide-y divide-gray-100">
|
|
89
|
+
{openings.map((job) => (
|
|
90
|
+
<a href="/contact" class="group flex items-center justify-between py-6 hover:no-underline">
|
|
91
|
+
<div>
|
|
92
|
+
<h3 class="text-base font-semibold text-slate-900 group-hover:text-emerald-600">{job.title}</h3>
|
|
93
|
+
<div class="mt-1 flex flex-wrap items-center gap-3 text-sm text-slate-400">
|
|
94
|
+
<span>{job.team}</span>
|
|
95
|
+
<span class="text-slate-200">·</span>
|
|
96
|
+
<span>{job.location}</span>
|
|
97
|
+
<span class="text-slate-200">·</span>
|
|
98
|
+
<span>{job.type}</span>
|
|
99
|
+
</div>
|
|
100
|
+
</div>
|
|
101
|
+
<span class="hidden text-sm font-medium transition-transform duration-200 group-hover:translate-x-1 sm:block" style={{ color: primaryColor }}>
|
|
102
|
+
Apply →
|
|
103
|
+
</span>
|
|
104
|
+
</a>
|
|
105
|
+
))}
|
|
106
|
+
</div>
|
|
107
|
+
</div>
|
|
108
|
+
</section>
|
|
109
|
+
|
|
110
|
+
{/* CTA */}
|
|
111
|
+
<section class="relative overflow-hidden py-24 text-white" style={{ backgroundColor: navColor }}>
|
|
112
|
+
<div class="pointer-events-none absolute inset-0" style={{ background: `radial-gradient(ellipse at 50% 50%, ${primaryColor}12 0%, transparent 60%)` }} />
|
|
113
|
+
<div class="relative mx-auto max-w-3xl px-6 text-center">
|
|
114
|
+
<h2 class="text-3xl font-bold tracking-[-0.02em] sm:text-4xl">Don't see your role?</h2>
|
|
115
|
+
<p class="mt-6 text-lg text-gray-300/90">We're always looking for exceptional engineers. Send us your CV and we'll reach out when a position opens.</p>
|
|
116
|
+
<a href="mailto:careers@barka.dev" class="mt-10 inline-block rounded-lg px-8 py-3.5 text-sm font-semibold text-white transition-all duration-200 hover:shadow-xl hover:no-underline" style={{ backgroundColor: primaryColor }}>
|
|
117
|
+
Send Your CV
|
|
118
|
+
</a>
|
|
119
|
+
</div>
|
|
120
|
+
</section>
|
|
121
|
+
</Base>
|
|
122
|
+
);
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
export default PageCareers;
|