@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,108 @@
|
|
|
1
|
+
# Polish UI translations
|
|
2
|
+
# Keys use dot-notation: section.key
|
|
3
|
+
|
|
4
|
+
# Navigation
|
|
5
|
+
nav.services: "Usługi"
|
|
6
|
+
nav.industries: "Branże"
|
|
7
|
+
nav.case_studies: "Case Studies"
|
|
8
|
+
nav.insights: "Wiedza"
|
|
9
|
+
nav.about: "O nas"
|
|
10
|
+
nav.careers: "Kariera"
|
|
11
|
+
nav.contact: "Kontakt"
|
|
12
|
+
nav.home: "Strona główna"
|
|
13
|
+
nav.view_all_services: "Wszystkie usługi"
|
|
14
|
+
nav.view_all_industries: "Wszystkie branże"
|
|
15
|
+
|
|
16
|
+
# Language switcher
|
|
17
|
+
lang.label: "Język"
|
|
18
|
+
|
|
19
|
+
# Footer
|
|
20
|
+
footer.services: "Usługi"
|
|
21
|
+
footer.company: "Firma"
|
|
22
|
+
footer.resources: "Zasoby"
|
|
23
|
+
footer.rights: "Wszelkie prawa zastrzeżone."
|
|
24
|
+
footer.crafted_with: "Stworzone z"
|
|
25
|
+
|
|
26
|
+
# Mega menu — Services
|
|
27
|
+
mega.services.custom_software: "Tworzenie oprogramowania"
|
|
28
|
+
mega.services.custom_software_desc: "Dedykowane aplikacje w nowoczesnych architekturach"
|
|
29
|
+
mega.services.cloud: "Chmura i infrastruktura"
|
|
30
|
+
mega.services.cloud_desc: "Migracja i zarządzane usługi AWS, Azure, GCP"
|
|
31
|
+
mega.services.data_ai: "Dane i AI"
|
|
32
|
+
mega.services.data_ai_desc: "Pipeliny ML, analityka i platformy danych"
|
|
33
|
+
mega.services.cybersecurity: "Cyberbezpieczeństwo"
|
|
34
|
+
mega.services.cybersecurity_desc: "Audyty, usługi SOC i zgodność z regulacjami"
|
|
35
|
+
mega.services.devops: "DevOps i SRE"
|
|
36
|
+
mega.services.devops_desc: "CI/CD, obserwowalność i niezawodność"
|
|
37
|
+
mega.services.ai_ml: "AI i uczenie maszynowe"
|
|
38
|
+
mega.services.ai_ml_desc: "Inteligentna automatyzacja i modele predykcyjne"
|
|
39
|
+
|
|
40
|
+
# Mega menu — Industries
|
|
41
|
+
mega.industries.financial: "Usługi finansowe"
|
|
42
|
+
mega.industries.financial_desc: "Płatności, trading i zarządzanie ryzykiem"
|
|
43
|
+
mega.industries.healthcare: "Ochrona zdrowia"
|
|
44
|
+
mega.industries.healthcare_desc: "Platformy zgodne z HIPAA i telemedycyna"
|
|
45
|
+
mega.industries.manufacturing: "Produkcja"
|
|
46
|
+
mega.industries.manufacturing_desc: "IoT, predykcyjne utrzymanie i łańcuch dostaw"
|
|
47
|
+
mega.industries.retail: "Handel i e-commerce"
|
|
48
|
+
mega.industries.retail_desc: "Platformy omnichannel i personalizacja"
|
|
49
|
+
mega.industries.telecom: "Telekomunikacja i media"
|
|
50
|
+
mega.industries.telecom_desc: "Infrastruktura 5G i dostarczanie treści"
|
|
51
|
+
mega.industries.energy: "Energia i utilities"
|
|
52
|
+
mega.industries.energy_desc: "Inteligentne sieci i platformy raportowania ESG"
|
|
53
|
+
|
|
54
|
+
# Mega menu — Insights
|
|
55
|
+
mega.insights.blog: "Blog"
|
|
56
|
+
mega.insights.ebooks: "E-booki"
|
|
57
|
+
mega.insights.webinars: "Webinary"
|
|
58
|
+
mega.insights.tools: "Checklisty i narzędzia"
|
|
59
|
+
mega.insights.demo: "Demo"
|
|
60
|
+
mega.insights.talks: "Prelekcje"
|
|
61
|
+
mega.insights.opensource: "Open Source"
|
|
62
|
+
|
|
63
|
+
# Footer links
|
|
64
|
+
footer.cloud_infrastructure: "Infrastruktura chmurowa"
|
|
65
|
+
footer.data_engineering: "Inżynieria danych"
|
|
66
|
+
footer.custom_software: "Oprogramowanie na zamówienie"
|
|
67
|
+
footer.devops_sre: "DevOps i SRE"
|
|
68
|
+
footer.ai_ml: "AI i uczenie maszynowe"
|
|
69
|
+
footer.about_us: "O nas"
|
|
70
|
+
footer.leadership: "Zarząd"
|
|
71
|
+
footer.careers: "Kariera"
|
|
72
|
+
footer.partners: "Partnerzy"
|
|
73
|
+
footer.contact: "Kontakt"
|
|
74
|
+
footer.blog: "Blog"
|
|
75
|
+
footer.case_studies: "Case Studies"
|
|
76
|
+
footer.ebooks: "E-booki"
|
|
77
|
+
footer.webinars: "Webinary"
|
|
78
|
+
footer.opensource: "Open Source"
|
|
79
|
+
|
|
80
|
+
blog.view_all: "Zobacz wszystkie artykuły"
|
|
81
|
+
|
|
82
|
+
# Common UI
|
|
83
|
+
ui.read_more: "Czytaj więcej"
|
|
84
|
+
ui.back: "Wróć"
|
|
85
|
+
ui.search: "Szukaj"
|
|
86
|
+
ui.loading: "Ładowanie..."
|
|
87
|
+
ui.page_not_found: "Nie znaleziono strony"
|
|
88
|
+
ui.page_not_found_desc: "Strona, której szukasz, nie istnieje lub została przeniesiona."
|
|
89
|
+
ui.go_home: "Przejdź na stronę główną"
|
|
90
|
+
|
|
91
|
+
# Services page
|
|
92
|
+
services.hero_label: "Nasze usługi"
|
|
93
|
+
services.stats_areas: "Obszary usług"
|
|
94
|
+
services.stats_engineers: "Inżynierów"
|
|
95
|
+
services.stats_delivered: "Zrealizowanych projektów"
|
|
96
|
+
services.stats_offices: "Biura w Europie"
|
|
97
|
+
services.core_capability: "Kluczowa kompetencja"
|
|
98
|
+
services.all_services: "Wszystkie usługi"
|
|
99
|
+
services.how_we_work: "Jak pracujemy"
|
|
100
|
+
services.lets_talk: "Porozmawiajmy"
|
|
101
|
+
|
|
102
|
+
# Mobile nav
|
|
103
|
+
mobile.home: "Start"
|
|
104
|
+
mobile.services: "Usługi"
|
|
105
|
+
mobile.case_studies: "Case Studies"
|
|
106
|
+
mobile.articles: "Wiedza"
|
|
107
|
+
mobile.about: "O nas"
|
|
108
|
+
mobile.contact: "Kontakt"
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "AI in the Enterprise: Moving Beyond POCs to Production at Scale"
|
|
3
|
+
type: article
|
|
4
|
+
status: published
|
|
5
|
+
langcode: en
|
|
6
|
+
slug: ai-in-enterprise
|
|
7
|
+
date: 2026-03-21
|
|
8
|
+
fields:
|
|
9
|
+
category: "AI & Machine Learning"
|
|
10
|
+
tags:
|
|
11
|
+
- ai
|
|
12
|
+
- machine-learning
|
|
13
|
+
- enterprise
|
|
14
|
+
author: "Maria Wisniewska"
|
|
15
|
+
author_role: "Head of AI"
|
|
16
|
+
author_image: "/static/images/team-maria-wisniewska.png"
|
|
17
|
+
featured_image: "/static/images/hero-bg.png"
|
|
18
|
+
excerpt: "Why 87% of enterprise AI projects never reach production — and practical strategies for MLOps, data quality, and responsible AI governance."
|
|
19
|
+
reading_time: "7 min"
|
|
20
|
+
seo:
|
|
21
|
+
title: "AI in the Enterprise: Beyond POCs to Production — LokaTech Insights"
|
|
22
|
+
description: "Why 87% of enterprise AI projects never reach production — and practical strategies for MLOps, data quality, and responsible AI governance."
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
The enterprise AI landscape in 2026 is defined by a stark paradox: virtually every large organization has an AI strategy, yet industry research consistently shows that 70-87% of AI initiatives never make it past the proof-of-concept stage. The graveyard of impressive Jupyter notebook demos that never saw a production request is vast and growing. The gap between AI ambition and AI reality isn't a technology problem — it's an engineering, organizational, and governance problem.
|
|
26
|
+
|
|
27
|
+
## The POC Graveyard: Why Promising Models Die
|
|
28
|
+
|
|
29
|
+
The pattern is painfully consistent. A data science team spends three months building a model that achieves impressive accuracy on historical data. Stakeholders are excited. Then reality hits: the model needs to be integrated with production systems that weren't designed for ML inference. It needs to handle edge cases that didn't exist in the training data. It needs monitoring for drift, retraining pipelines, fallback mechanisms, and explainability for compliance. The data science team that built the model doesn't have these engineering skills. The engineering team that does isn't involved. The project stalls, and the next shiny POC begins.
|
|
30
|
+
|
|
31
|
+
The solution is structural: treat ML models as software artifacts with the same rigor applied to any production system. That means CI/CD for models, automated testing (including data validation and bias detection), staged rollouts, and rollback capabilities. MLOps isn't optional overhead — it's the bridge between research and value.
|
|
32
|
+
|
|
33
|
+
## Data Quality: The Unsexy Bottleneck
|
|
34
|
+
|
|
35
|
+
Every conversation about enterprise AI eventually arrives at the same uncomfortable truth: your models are only as good as your data. Most enterprises have spent years accumulating data without investing in the infrastructure to make it ML-ready. Inconsistent schemas, missing values, stale records, and undocumented transformations mean that data scientists spend 60-80% of their time on data preparation rather than model development.
|
|
36
|
+
|
|
37
|
+
The organizations making genuine progress have invested in data platforms before AI platforms. Data contracts between teams, automated quality monitoring, data lineage tracking, and governed feature stores transform data from a liability into an asset. It's unglamorous work, but it's the foundation without which every AI project is built on sand.
|
|
38
|
+
|
|
39
|
+
## Responsible AI: Governance as an Enabler
|
|
40
|
+
|
|
41
|
+
The EU AI Act is now a regulatory reality, and enterprises that treated AI governance as a future problem are scrambling. But the smartest organizations have recognized that responsible AI practices — bias auditing, explainability, privacy preservation, and human oversight — aren't just compliance checkboxes. They're trust builders that accelerate adoption.
|
|
42
|
+
|
|
43
|
+
Practical governance starts with an AI registry that catalogs every model in production: what data it uses, who built it, what decisions it influences, and how its performance is monitored. Add automated bias detection in the training pipeline, not as a post-hoc audit. Implement explanation frameworks (SHAP, LIME) as standard model outputs, not optional add-ons. These practices catch problems early and build stakeholder confidence in AI-driven decisions.
|
|
44
|
+
|
|
45
|
+
## Build vs. Buy: The LLM Question
|
|
46
|
+
|
|
47
|
+
The explosion of large language models has reshaped the build-vs-buy calculus. Fine-tuning a foundation model is now often faster and cheaper than training a domain-specific model from scratch. But "just add an LLM" is not a strategy. The enterprises getting value from generative AI are those that approach it with clear use cases (document summarization, code generation, customer support automation), robust RAG (Retrieval-Augmented Generation) architectures grounded in their proprietary data, and guardrails that prevent hallucination from reaching end users.
|
|
48
|
+
|
|
49
|
+
## Practical Recommendations
|
|
50
|
+
|
|
51
|
+
For enterprises serious about moving AI from POC to production, the path forward is clear: invest in data infrastructure before model infrastructure, hire ML engineers alongside data scientists, implement MLOps from day one rather than bolting it on later, start with high-value use cases where the cost of inaction is measurable, and treat AI governance as an accelerator rather than a brake. The technology has never been more capable. The gap is in the engineering discipline to deploy it responsibly and reliably.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "API Gateways in the Enterprise: Routing, Policy, and the Boundaries We Enforce"
|
|
3
|
+
type: article
|
|
4
|
+
status: published
|
|
5
|
+
langcode: en
|
|
6
|
+
slug: api-gateway-patterns-enterprise
|
|
7
|
+
date: 2026-02-14
|
|
8
|
+
fields:
|
|
9
|
+
category: "Software Architecture"
|
|
10
|
+
author: "Tomasz Lewandowski"
|
|
11
|
+
author_role: "Head of Cloud at LokaTech"
|
|
12
|
+
author_image: "/static/images/team-tomasz-lewandowski.png"
|
|
13
|
+
featured_image: "/static/images/hero-bg.png"
|
|
14
|
+
featured: false
|
|
15
|
+
excerpt: "Edge gateways versus mesh ingress: authentication, rate limiting, transformation, and when to keep business logic out of the gateway."
|
|
16
|
+
tags:
|
|
17
|
+
- api-gateway
|
|
18
|
+
- apis
|
|
19
|
+
- integration
|
|
20
|
+
seo:
|
|
21
|
+
title: "Enterprise API Gateway Patterns | LokaTech Solutions"
|
|
22
|
+
description: "API gateway design for enterprises: authN/Z, throttling, versioning, observability, BFF vs edge gateway, and avoiding an integration monolith."
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
An API gateway is the front door to your services: TLS termination, routing, and cross-cutting policies like authentication, rate limiting, and request validation. Done well, it standardizes how clients reach the platform; done poorly, it becomes an **integration monolith** where every new rule requires a risky deployment.
|
|
26
|
+
|
|
27
|
+
We separate concerns between **edge gateways**—public exposure, WAF, bot mitigation—and internal ingress layers that handle service-to-service routing inside a cluster. The policies differ; mixing them blurs accountability.
|
|
28
|
+
|
|
29
|
+
Authentication and authorization belong in a coherent model. The gateway can validate tokens and enforce coarse scopes, while services enforce domain-specific rules. When everything is pushed into the gateway “for speed,” teams lose autonomy and debugging becomes opaque.
|
|
30
|
+
|
|
31
|
+
Rate limiting protects upstreams from abuse and noisy neighbors. We implement limits at multiple layers: per-client keys, per-route budgets, and global protections during incidents. Good limits are observable—teams should see when they are throttled and why.
|
|
32
|
+
|
|
33
|
+
Transformation at the edge—JSON/XML conversion, legacy header quirks—should be **temporary scaffolding**. Permanent transformation debt hides incompatibilities and slows evolution.
|
|
34
|
+
|
|
35
|
+
Observability is part of the contract: correlation IDs, structured access logs, and RED metrics per route. If the gateway is a shared dependency, its outages are everyone’s outage—so we run it like a Tier-0 service.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Design Systems at Enterprise Scale: Governance, Contribution, and Product Velocity"
|
|
3
|
+
type: article
|
|
4
|
+
status: published
|
|
5
|
+
langcode: en
|
|
6
|
+
slug: design-system-enterprise-scale
|
|
7
|
+
date: 2026-01-28
|
|
8
|
+
fields:
|
|
9
|
+
category: "CMS & Content"
|
|
10
|
+
author: "Katarzyna Kaminska"
|
|
11
|
+
author_role: "Head of Design at LokaTech"
|
|
12
|
+
author_image: "/static/images/team-katarzyna-kaminska.png"
|
|
13
|
+
featured_image: "/static/images/hero-bg.png"
|
|
14
|
+
featured: false
|
|
15
|
+
excerpt: "Tokens, components, and processes that keep dozens of squads aligned—without turning design into a bottleneck or a free-for-all."
|
|
16
|
+
tags:
|
|
17
|
+
- design-systems
|
|
18
|
+
- ux
|
|
19
|
+
- frontend
|
|
20
|
+
seo:
|
|
21
|
+
title: "Enterprise Design Systems & Governance | LokaTech Solutions"
|
|
22
|
+
description: "Scaling design systems: design tokens, component libraries, accessibility, contribution models, and alignment between design and engineering orgs."
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
A design system is more than a Figma kit. At enterprise scale, it is the **shared contract** between brand, product design, and engineering on how interfaces behave, look, and evolve—across regions, brands, and accessibility requirements.
|
|
26
|
+
|
|
27
|
+
We ground systems in **design tokens**: color, spacing, typography, and motion expressed as data that can flow to web, mobile, and even email templates. Tokens make rebrands and theme variations mechanical instead of heroic.
|
|
28
|
+
|
|
29
|
+
Components must be accessible by default: keyboard flows, contrast, labels, and focus management baked into primitives. Accessibility treated as an afterthought becomes expensive rework when auditors arrive—or when users churn silently.
|
|
30
|
+
|
|
31
|
+
Governance is the uncomfortable part. Without rules, the system fragments; with heavy gates, teams route around it. We use a **contribution model**: clear criteria for core versus team-specific patterns, RFCs for breaking changes, and versioning that communicates impact.
|
|
32
|
+
|
|
33
|
+
Documentation is part of the product: live examples, do/don’t guidance, and migration notes when APIs change. A component nobody can use correctly is technical debt wearing a design badge.
|
|
34
|
+
|
|
35
|
+
The payoff is velocity: fewer one-off dialogs, fewer inconsistent forms, faster onboarding for engineers and designers alike. A mature design system does not slow teams down—it removes repeated decisions so teams can spend time on the problems that differentiate the business.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Domain-Driven Design: Bounded Contexts as the Antidote to Accidental Complexity"
|
|
3
|
+
type: article
|
|
4
|
+
status: published
|
|
5
|
+
langcode: en
|
|
6
|
+
slug: domain-driven-design-bounded-contexts
|
|
7
|
+
date: 2026-02-26
|
|
8
|
+
fields:
|
|
9
|
+
category: "Software Architecture"
|
|
10
|
+
author: "Katarzyna Kaminska"
|
|
11
|
+
author_role: "Head of Design at LokaTech"
|
|
12
|
+
author_image: "/static/images/team-katarzyna-kaminska.png"
|
|
13
|
+
featured_image: "/static/images/hero-bg.png"
|
|
14
|
+
featured: false
|
|
15
|
+
excerpt: "How bounded contexts clarify language across product and engineering, where integration patterns fit, and why ubiquitous language is a team sport."
|
|
16
|
+
tags:
|
|
17
|
+
- ddd
|
|
18
|
+
- bounded-contexts
|
|
19
|
+
- software-design
|
|
20
|
+
seo:
|
|
21
|
+
title: "DDD & Bounded Contexts in Practice | LokaTech Solutions"
|
|
22
|
+
description: "Practical domain-driven design: bounded contexts, context maps, anti-corruption layers, and collaboration patterns for complex enterprise software."
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
Domain-driven design is often introduced with aggregates and entities, but the idea that saves projects is simpler: **the same word can mean different things in different parts of the business**. “Customer,” “order,” and “contract” are not universal concepts—they are contextual, and software breaks when we pretend otherwise.
|
|
26
|
+
|
|
27
|
+
A bounded context is a linguistic boundary where a model is consistent. Inside it, teams can move fast because terms map cleanly to code. Across contexts, integration must be explicit: translated DTOs, events with versioned schemas, or APIs that do not leak internal invariants.
|
|
28
|
+
|
|
29
|
+
We use **context maps** as a planning tool—not pretty diagrams for slides, but agreements about upstream/downstream relationships and whether a team is a partner, customer, or conformist to another’s model. Mislabeled power dynamics show up later as production incidents.
|
|
30
|
+
|
|
31
|
+
Anti-corruption layers sound like overhead until you integrate with a third-party system whose notion of “address” predates Unicode normalization. Translation at the boundary keeps your core model clean and makes replacements possible.
|
|
32
|
+
|
|
33
|
+
Ubiquitous language is not documentation—it is **behavior**. Product, design, and engineering should refine terms in working sessions and reflect them in tests, UI copy, and API names. When language drifts, the codebase becomes a bilingual mess nobody can refactor safely.
|
|
34
|
+
|
|
35
|
+
DDD is not an excuse for endless modeling workshops. We timebox discovery, ship thin slices, and revisit boundaries when we learn new constraints. The goal is **clarity under change**, not perfection on day one.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Scaling Engineering from 50 to 200: Structure, Communication, and Technical Debt"
|
|
3
|
+
type: article
|
|
4
|
+
status: published
|
|
5
|
+
langcode: en
|
|
6
|
+
slug: engineering-team-scaling-50-to-200
|
|
7
|
+
date: 2026-03-10
|
|
8
|
+
fields:
|
|
9
|
+
category: "Engineering Culture"
|
|
10
|
+
author: "Katarzyna Kaminska"
|
|
11
|
+
author_role: "Head of Design at LokaTech"
|
|
12
|
+
author_image: "/static/images/team-katarzyna-kaminska.png"
|
|
13
|
+
featured_image: "/static/images/hero-bg.png"
|
|
14
|
+
featured: false
|
|
15
|
+
excerpt: "What changes when informal alignment stops working: team topology, decision rights, design–dev partnership, and keeping quality predictable."
|
|
16
|
+
tags:
|
|
17
|
+
- engineering-culture
|
|
18
|
+
- leadership
|
|
19
|
+
- scaling
|
|
20
|
+
seo:
|
|
21
|
+
title: "Scaling Engineering Teams: 50 to 200 Engineers | LokaTech Solutions"
|
|
22
|
+
description: "Lessons on org design, communication overhead, technical debt trade-offs, and design ops when engineering organizations grow past Dunbar-scale limits."
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
Growing an engineering organization from fifty to two hundred people is less about hiring velocity and more about **communication physics**. Informal alignment works until it does not; then every recurring misunderstanding becomes a tax paid in rework, meetings, and slow decisions.
|
|
26
|
+
|
|
27
|
+
We encourage **team topologies** that match business streams: stream-aligned teams with enabling teams for platform and design systems, and complicated-subsystem teams only where deep expertise is truly scarce. The anti-pattern is a matrix where every initiative requires a bespoke coalition.
|
|
28
|
+
|
|
29
|
+
Design and engineering partnership needs explicit rituals at this scale. Pairing on discovery, shared definition-of-done for UX quality, and **design ops**—tokens, components, and contribution models—prevent “pixel-perfect in Figma, inconsistent in production.”
|
|
30
|
+
|
|
31
|
+
Technical debt is not a moral failure; it is a portfolio problem. We make trade-offs visible: interest payments (slow delivery), principal (refactors), and risk (outages, security). Leadership’s job is to ensure debt is **owned**, not accidentally compounded by incentives that reward only feature throughput.
|
|
32
|
+
|
|
33
|
+
Finally, managers and principal engineers must invest in **writing**: architecture decision records, engineering guides, and crisp RFCs. Oral tradition does not scale; neither does Slack archaeology. The organizations that scale well treat internal documentation as part of the product.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Event-Driven Microservices: Patterns We Reach For—and the Coupling We Avoid"
|
|
3
|
+
type: article
|
|
4
|
+
status: published
|
|
5
|
+
langcode: en
|
|
6
|
+
slug: event-driven-architecture-microservices
|
|
7
|
+
date: 2026-03-15
|
|
8
|
+
fields:
|
|
9
|
+
category: "Software Architecture"
|
|
10
|
+
author: "Tomasz Lewandowski"
|
|
11
|
+
author_role: "Head of Cloud at LokaTech"
|
|
12
|
+
author_image: "/static/images/team-tomasz-lewandowski.png"
|
|
13
|
+
featured_image: "/static/images/hero-bg.png"
|
|
14
|
+
featured: false
|
|
15
|
+
excerpt: "From outbox and idempotent consumers to saga trade-offs: how we design event-driven systems that stay understandable as they grow."
|
|
16
|
+
tags:
|
|
17
|
+
- microservices
|
|
18
|
+
- event-driven
|
|
19
|
+
- architecture
|
|
20
|
+
seo:
|
|
21
|
+
title: "Event-Driven Architecture for Microservices | LokaTech Solutions"
|
|
22
|
+
description: "Event-driven microservices at scale: reliable messaging, idempotency, sagas, schema evolution, and observability practices we use with clients."
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
Event-driven architecture buys you decoupling in time: producers do not need to know which services react, only that the event is meaningful and well-versioned. The cost is **distributed state**—harder reasoning, trickier debugging, and a higher bar for contract discipline.
|
|
26
|
+
|
|
27
|
+
We default to **outbox patterns** when a business action must be atomic with publishing. Writing to the database and emitting to a broker in one “best effort” step fails under partial outages; the outbox makes publication a durable, retryable step that operations can observe.
|
|
28
|
+
|
|
29
|
+
Consumers must be **idempotent**. Duplicate delivery is normal, not exceptional. We design handlers around natural keys and deduplication stores where needed, and we avoid implicit ordering guarantees unless the topic contract explicitly provides them.
|
|
30
|
+
|
|
31
|
+
For long-running workflows, we choose between **choreography** and **orchestration** deliberately. Choreography scales team autonomy until the flow becomes a maze; orchestration centralizes control at the expense of a single failure domain. In practice, hybrid models work best: orchestrate the business saga, choreograph notifications and analytics.
|
|
32
|
+
|
|
33
|
+
Schema evolution is where teams pay interest on early shortcuts. We treat event payloads as **versioned contracts** with compatibility tests in CI, and we document upgrade paths for consumers that lag behind producers.
|
|
34
|
+
|
|
35
|
+
Observability closes the loop: trace IDs propagated across async boundaries, metrics on consumer lag, and structured logs that explain *why* a handler skipped work. Without that, event-driven systems feel fast until they become impossible to operate.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "The Future of Cloud-Native Architecture in Enterprise IT"
|
|
3
|
+
type: article
|
|
4
|
+
status: published
|
|
5
|
+
langcode: en
|
|
6
|
+
slug: future-of-cloud-native
|
|
7
|
+
date: 2026-03-21
|
|
8
|
+
fields:
|
|
9
|
+
category: "Cloud & DevOps"
|
|
10
|
+
tags:
|
|
11
|
+
- cloud
|
|
12
|
+
- kubernetes
|
|
13
|
+
- microservices
|
|
14
|
+
author: "Jan Nowak"
|
|
15
|
+
author_role: "CTO"
|
|
16
|
+
author_image: "/static/images/team-jan-nowak.png"
|
|
17
|
+
featured_image: "/static/images/hero-bg.png"
|
|
18
|
+
excerpt: "Service mesh evolution, WebAssembly at the edge, platform engineering, FinOps maturity — the trends shaping cloud-native in 2026 and beyond."
|
|
19
|
+
reading_time: "8 min"
|
|
20
|
+
seo:
|
|
21
|
+
title: "The Future of Cloud-Native Architecture in Enterprise IT — LokaTech Insights"
|
|
22
|
+
description: "Service mesh evolution, WebAssembly at the edge, platform engineering, FinOps maturity — the trends shaping cloud-native in 2026 and beyond."
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
The cloud-native landscape has matured dramatically since the early days of "just put it in containers." In 2026, enterprises are no longer debating whether to adopt Kubernetes — they're grappling with a far more nuanced set of challenges: how to manage sprawling service meshes, when to bet on WebAssembly, and how to make platform engineering a genuine force multiplier rather than another layer of bureaucracy.
|
|
26
|
+
|
|
27
|
+
## Service Mesh Evolution: Simplification Wins
|
|
28
|
+
|
|
29
|
+
The service mesh space has undergone a necessary correction. After years of complexity creep — where Istio configurations rivaled the applications they served — the industry is converging on sidecar-less architectures. Ambient mesh implementations that operate at the kernel level using eBPF have reduced the resource overhead and operational complexity that gave service meshes a reputation for being more trouble than they're worth. For enterprises running thousands of microservices, this shift is material: we're seeing 30-40% reductions in mesh-related infrastructure costs and dramatically simpler debugging workflows.
|
|
30
|
+
|
|
31
|
+
## WebAssembly at the Edge: Beyond the Browser
|
|
32
|
+
|
|
33
|
+
WebAssembly (Wasm) has broken free from the browser and is reshaping edge computing. The combination of near-native performance, language-agnostic compilation, and microsecond cold starts makes Wasm an ideal runtime for edge workloads that previously required full container infrastructure. We're deploying Wasm-based data transformation and validation logic at the edge for clients in financial services and IoT — processing that happens in 50ms instead of the 500ms round-trip to a regional data center. The WASI (WebAssembly System Interface) standard has matured enough that production workloads are no longer experimental.
|
|
34
|
+
|
|
35
|
+
## Platform Engineering: The Internal Developer Platform
|
|
36
|
+
|
|
37
|
+
The most significant organizational shift we're observing is the rise of platform engineering as a discipline. The best engineering organizations are building Internal Developer Platforms (IDPs) that abstract infrastructure complexity while preserving developer autonomy. Done well, an IDP reduces cognitive load — developers ship features instead of wrestling with YAML. Done poorly, it becomes a bottleneck that's slower than the ad-hoc scripts it replaced. The key insight from our work with large enterprises: start with golden paths (opinionated defaults) rather than golden cages (forced workflows). Developers adopt platforms that make the right thing the easy thing.
|
|
38
|
+
|
|
39
|
+
## FinOps Maturity: From Cost Reporting to Cost Engineering
|
|
40
|
+
|
|
41
|
+
Cloud cost management has evolved from reactive cost reporting to proactive cost engineering. Mature FinOps practices now integrate cost awareness directly into the development lifecycle — unit cost per transaction, cost per customer, cost per deployment. We're embedding cost metrics alongside latency and error rates in engineering dashboards, making cost a first-class engineering concern rather than a monthly surprise from finance. The organizations getting this right treat cloud spend as an engineering metric, not an accounting exercise.
|
|
42
|
+
|
|
43
|
+
## Multi-Cloud Standardization: Pragmatism Over Ideology
|
|
44
|
+
|
|
45
|
+
The multi-cloud debate has settled into pragmatism. Pure multi-cloud portability — write once, run anywhere — remains largely aspirational for stateful workloads. What we see working in practice is strategic multi-cloud: primary workloads on one provider, specific services (like AI/ML on GCP or data analytics on Snowflake) on others, with Terraform and Crossplane providing a consistent provisioning layer. The goal isn't portability for its own sake; it's leveraging each provider's genuine strengths while maintaining enough abstraction to avoid lock-in at the application layer.
|
|
46
|
+
|
|
47
|
+
The enterprises that will thrive in the next wave of cloud-native are those that resist the temptation to adopt every new tool and instead focus on fundamentals: developer experience, operational excellence, and cost discipline. The technology is mature. The competitive advantage now lies in how well you wield it.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
uuid: b2c3d4e5-f6a7-8901-bcde-f12345678901
|
|
3
|
+
title: Getting Started with Barka
|
|
4
|
+
status: draft
|
|
5
|
+
langcode: en
|
|
6
|
+
date: '2026-03-20'
|
|
7
|
+
slug: getting-started
|
|
8
|
+
fields:
|
|
9
|
+
summary: A step-by-step guide to building your first Barka site.
|
|
10
|
+
category: technology
|
|
11
|
+
seo:
|
|
12
|
+
description: Step-by-step guide to getting started with Barka CMS.
|
|
13
|
+
updated: '2026-03-21T16:11:33.000Z'
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Getting Started with Barka
|
|
17
|
+
|
|
18
|
+
This guide walks you through setting up a Barka project from scratch.
|
|
19
|
+
|
|
20
|
+
## Prerequisites
|
|
21
|
+
|
|
22
|
+
- Node.js 20 or later
|
|
23
|
+
- A text editor (VS Code recommended)
|
|
24
|
+
|
|
25
|
+
## Installation
|
|
26
|
+
|
|
27
|
+
Create a new project using the CLI:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npx create-barka-app my-site
|
|
31
|
+
cd my-site
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Project Structure
|
|
35
|
+
|
|
36
|
+
A fresh Barka project looks like this:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
my-site/
|
|
40
|
+
├── config/
|
|
41
|
+
│ ├── settings.yaml
|
|
42
|
+
│ ├── content-types.yaml
|
|
43
|
+
│ └── section-types.yaml
|
|
44
|
+
├── content/
|
|
45
|
+
│ ├── articles/
|
|
46
|
+
│ └── pages/
|
|
47
|
+
├── themes/
|
|
48
|
+
│ └── starter/
|
|
49
|
+
└── package.json
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Creating Content
|
|
53
|
+
|
|
54
|
+
Add a new Markdown file to `content/articles/`:
|
|
55
|
+
|
|
56
|
+
```markdown
|
|
57
|
+
---
|
|
58
|
+
title: "My First Post"
|
|
59
|
+
status: published
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
Hello from Barka!
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Running the Dev Server
|
|
66
|
+
|
|
67
|
+
Start the development server:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
barka dev
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Open `http://localhost:3000` and see your content rendered live.
|
|
74
|
+
|
|
75
|
+
## Building for Production
|
|
76
|
+
|
|
77
|
+
When you're ready to deploy:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
barka build
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
This generates a static `dist/` folder you can deploy to any hosting provider.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Headless CMS and Composable DXP: Building Experiences Without Locking the Stack"
|
|
3
|
+
type: article
|
|
4
|
+
status: published
|
|
5
|
+
langcode: en
|
|
6
|
+
slug: headless-cms-composable-architecture
|
|
7
|
+
date: 2026-03-05
|
|
8
|
+
fields:
|
|
9
|
+
category: "CMS & Content"
|
|
10
|
+
author: "Anna Kowalska"
|
|
11
|
+
author_role: "VP of Engineering at LokaTech"
|
|
12
|
+
author_image: "/static/images/team-anna-kowalska.png"
|
|
13
|
+
featured_image: "/static/images/hero-bg.png"
|
|
14
|
+
featured: true
|
|
15
|
+
excerpt: "Why enterprises adopt headless content platforms, how composable DXPs assemble best-of-breed services, and what to standardize so teams move fast safely."
|
|
16
|
+
tags:
|
|
17
|
+
- headless-cms
|
|
18
|
+
- composable
|
|
19
|
+
- dxp
|
|
20
|
+
seo:
|
|
21
|
+
title: "Headless CMS & Composable DXP Architecture | LokaTech Solutions"
|
|
22
|
+
description: "Enterprise headless CMS and composable DXP: content modeling, APIs, personalization, governance, and integration patterns for multi-channel delivery."
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
Headless content management separates **content from presentation**: editors work in a structured repository, and channels—web, mobile, kiosks, email—consume content through APIs. That separation is not academic; it is how large organizations ship omnichannel experiences without duplicating workflows in every codebase.
|
|
26
|
+
|
|
27
|
+
A composable digital experience platform (DXP) goes further: instead of a single vendor suite, teams assemble **specialized services**—search, personalization, DAM, experimentation—connected by APIs and shared identity. The promise is flexibility; the risk is integration sprawl if you do not govern boundaries.
|
|
28
|
+
|
|
29
|
+
We advise clients to invest early in **content modeling** and workflow: taxonomies, validation rules, preview environments, and roles that match how legal and marketing actually collaborate. A headless CMS with weak modeling becomes a JSON junk drawer; a strong model accelerates both editors and developers.
|
|
30
|
+
|
|
31
|
+
On the engineering side, caching and **CDN strategy** matter as much as the CMS choice. GraphQL can reduce round-trips; REST can be simpler to cache at the edge. We document SLAs, pagination, and webhook semantics so frontend teams know how to build resilient UIs.
|
|
32
|
+
|
|
33
|
+
Composable stacks need a **platform layer**: design tokens, component libraries, observability, and security reviews for third-party connectors. Without that, every team reinvents authentication hooks and audit trails differently.
|
|
34
|
+
|
|
35
|
+
The goal is not maximal vendor count—it is **replaceability**. When a service underperforms, you should swap it without rewriting your entire experience layer. Done well, composable architecture feels boring in operations and exciting in delivery.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Kubernetes Cost Optimization: FinOps Practices That Survive Real Clusters"
|
|
3
|
+
type: article
|
|
4
|
+
status: published
|
|
5
|
+
langcode: en
|
|
6
|
+
slug: kubernetes-cost-optimization-finops
|
|
7
|
+
date: 2026-03-03
|
|
8
|
+
fields:
|
|
9
|
+
category: "Cloud & DevOps"
|
|
10
|
+
author: "Tomasz Lewandowski"
|
|
11
|
+
author_role: "Head of Cloud at LokaTech"
|
|
12
|
+
author_image: "/static/images/team-tomasz-lewandowski.png"
|
|
13
|
+
featured_image: "/static/images/hero-bg.png"
|
|
14
|
+
featured: false
|
|
15
|
+
excerpt: "Rightsizing, autoscaling, spot strategy, and chargeback models—how we align engineering decisions with cloud spend without slowing delivery."
|
|
16
|
+
tags:
|
|
17
|
+
- kubernetes
|
|
18
|
+
- finops
|
|
19
|
+
- cost-optimization
|
|
20
|
+
seo:
|
|
21
|
+
title: "Kubernetes Cost Optimization & FinOps | LokaTech Solutions"
|
|
22
|
+
description: "Practical FinOps for Kubernetes: resource requests and limits, cluster autoscaling, spot instances, observability for waste, and accountable chargeback."
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
Kubernetes makes it easy to schedule work; it also makes it easy to **pay for idle capacity** disguised as “buffer.” FinOps on Kubernetes starts with honest measurement: per-namespace cost, per-workload efficiency, and trends—not a single monthly invoice nobody owns.
|
|
26
|
+
|
|
27
|
+
We begin with the basics that still trip teams: **requests and limits** aligned to real usage, vertical rightsizing informed by metrics, and horizontal pod autoscaling driven by meaningful signals—not CPU spikes from JVM warm-up alone.
|
|
28
|
+
|
|
29
|
+
Node pools and purchasing strategy matter. **Spot or preemptible instances** fit fault-tolerant batch and stateless tiers when interruptions are handled gracefully; mixed pools reduce risk while preserving savings. Cluster autoscaling should be tuned so scale-down is safe and predictable, not a game of whack-a-node.
|
|
30
|
+
|
|
31
|
+
Chargeback or showback changes behavior. When product teams see cost alongside latency and error budgets, trade-offs become explicit. We avoid punitive models that incentivize hiding workloads; we aim for **shared accountability** with guardrails.
|
|
32
|
+
|
|
33
|
+
Finally, cost optimization is continuous. New features add sidecars, new regions add egress, new dependencies add data transfer. We bake cost review into architecture checkpoints the same way we review security—because “cheap until it isn’t” is expensive at enterprise scale.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Legacy Modernization with the Strangler Fig Pattern: A Field-Tested Playbook"
|
|
3
|
+
type: article
|
|
4
|
+
status: published
|
|
5
|
+
langcode: en
|
|
6
|
+
slug: legacy-modernization-strangler-fig
|
|
7
|
+
date: 2026-03-07
|
|
8
|
+
fields:
|
|
9
|
+
category: "Digital Transformation"
|
|
10
|
+
author: "Jan Nowak"
|
|
11
|
+
author_role: "CTO at LokaTech"
|
|
12
|
+
author_image: "/static/images/team-jan-nowak.png"
|
|
13
|
+
featured_image: "/static/images/hero-bg.png"
|
|
14
|
+
featured: false
|
|
15
|
+
excerpt: "How we incrementally replace monoliths by routing traffic through a façade, carving bounded contexts, and de-risking cutovers with observability."
|
|
16
|
+
tags:
|
|
17
|
+
- modernization
|
|
18
|
+
- strangler-fig
|
|
19
|
+
- legacy
|
|
20
|
+
seo:
|
|
21
|
+
title: "Strangler Fig Pattern for Legacy Modernization | LokaTech Solutions"
|
|
22
|
+
description: "Incremental legacy replacement: routing layers, bounded contexts, data migration strategies, and risk reduction for enterprise modernization programs."
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
The strangler fig pattern is named after the plant that grows around a host tree: new capabilities wrap the old system until the legacy core can be retired safely. It is the antidote to “big bang” rewrites that stall for years while the business still needs daily changes.
|
|
26
|
+
|
|
27
|
+
We start by identifying **seams**: customer journeys, APIs, or batch jobs that can be redirected without rewriting the entire domain model. A routing layer—often an API gateway or BFF—lets us send traffic to new services while the monolith continues to serve what remains.
|
|
28
|
+
|
|
29
|
+
Data is the hard part. We prefer **incremental synchronization** and clear ownership boundaries over dual-writes that silently diverge. Event streams, change data capture, and reconciliation jobs are boring tools that prevent expensive surprises at cutover.
|
|
30
|
+
|
|
31
|
+
Each slice should deliver user or operator value on its own. If a migration only pays off after the final module moves, teams lose faith and funding evaporates. We ship thin vertical increments: authenticate here, price there, render this read model—each with monitoring and rollback.
|
|
32
|
+
|
|
33
|
+
Observability is non-negotiable. When two systems answer the same question, we compare outcomes, measure latency budgets, and alert on divergence. Modernization without metrics is hope; with metrics, it is engineering.
|
|
34
|
+
|
|
35
|
+
The end state is not “microservices everywhere”—it is **a maintainable architecture** aligned to how the business changes. Sometimes that means a smaller, well-factored modular monolith. The pattern is about risk-managed evolution, not fashion.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Fine-Tuning LLMs on Enterprise Data: When It Helps—and When It Hurts"
|
|
3
|
+
type: article
|
|
4
|
+
status: published
|
|
5
|
+
langcode: en
|
|
6
|
+
slug: llm-fine-tuning-enterprise-data
|
|
7
|
+
date: 2026-03-18
|
|
8
|
+
fields:
|
|
9
|
+
category: "AI & Machine Learning"
|
|
10
|
+
author: "Anna Kowalska"
|
|
11
|
+
author_role: "VP of Engineering at LokaTech"
|
|
12
|
+
author_image: "/static/images/team-anna-kowalska.png"
|
|
13
|
+
featured_image: "/static/images/hero-bg.png"
|
|
14
|
+
featured: false
|
|
15
|
+
excerpt: "A practical look at supervised fine-tuning for domain language, data governance constraints, and the baseline you should beat with retrieval before you train."
|
|
16
|
+
tags:
|
|
17
|
+
- llm
|
|
18
|
+
- fine-tuning
|
|
19
|
+
- mlops
|
|
20
|
+
seo:
|
|
21
|
+
title: "Fine-Tuning LLMs on Enterprise Data | LokaTech Solutions"
|
|
22
|
+
description: "Guidance on when to fine-tune LLMs on proprietary data: evaluation baselines, governance, drift, and how RAG compares for many enterprise use cases."
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
Fine-tuning large language models on enterprise data can sharpen tone, vocabulary, and task format—but it is not a substitute for **data quality**, **evaluation discipline**, or **access control**. Before we allocate GPU weeks, we insist on a crisp hypothesis: which failure mode does fine-tuning remove that prompt engineering and retrieval cannot?
|
|
26
|
+
|
|
27
|
+
In regulated environments, the training corpus is rarely “all internal documents.” Legal, privacy, and security teams need **lineage and purpose limitation**: what may enter a training set, how it is de-identified, and how we prove that sensitive payloads never leak into weights or logs. That often pushes teams toward smaller, curated datasets and frequent re-validation.
|
|
28
|
+
|
|
29
|
+
Technically, supervised fine-tuning shines when you need **consistent structure**—classification labels, JSON-shaped outputs, or domain phrasing that general models mishandle. We pair it with held-out evaluation suites that include adversarial cases and regression checks against prior model versions, not just aggregate accuracy on a static benchmark.
|
|
30
|
+
|
|
31
|
+
Operationalizing fine-tuned models introduces **MLOps** concerns: versioning datasets and checkpoints, canarying releases, monitoring data drift in inputs, and defining rollback when quality regresses. We treat the model artifact like any other service dependency with an owner, an SLO, and an incident playbook.
|
|
32
|
+
|
|
33
|
+
In many client programs, we still start with **retrieval-augmented generation** and strong prompting because it is easier to update knowledge without retraining. Fine-tuning becomes attractive once the retrieval stack is mature and the remaining gap is behavior, not facts. Choosing the right layer to optimize saves months of rework.
|