@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.
Files changed (621) hide show
  1. package/CLAUDE.md +64 -0
  2. package/INVARIANTS.json +43 -0
  3. package/LICENSE +19 -0
  4. package/README.md +566 -0
  5. package/dist/app.d.ts +22 -0
  6. package/dist/app.d.ts.map +1 -0
  7. package/dist/app.js +464 -0
  8. package/dist/app.js.map +1 -0
  9. package/dist/built-in-theme/components/cta/cta.d.ts +5 -0
  10. package/dist/built-in-theme/components/cta/cta.d.ts.map +1 -0
  11. package/dist/built-in-theme/components/cta/cta.js +6 -0
  12. package/dist/built-in-theme/components/cta/cta.js.map +1 -0
  13. package/dist/built-in-theme/components/features/features.d.ts +5 -0
  14. package/dist/built-in-theme/components/features/features.d.ts.map +1 -0
  15. package/dist/built-in-theme/components/features/features.js +7 -0
  16. package/dist/built-in-theme/components/features/features.js.map +1 -0
  17. package/dist/built-in-theme/components/hero/hero.d.ts +5 -0
  18. package/dist/built-in-theme/components/hero/hero.d.ts.map +1 -0
  19. package/dist/built-in-theme/components/hero/hero.js +6 -0
  20. package/dist/built-in-theme/components/hero/hero.js.map +1 -0
  21. package/dist/built-in-theme/components/text/text.d.ts +4 -0
  22. package/dist/built-in-theme/components/text/text.d.ts.map +1 -0
  23. package/dist/built-in-theme/components/text/text.js +7 -0
  24. package/dist/built-in-theme/components/text/text.js.map +1 -0
  25. package/dist/built-in-theme/layouts/article.d.ts +4 -0
  26. package/dist/built-in-theme/layouts/article.d.ts.map +1 -0
  27. package/dist/built-in-theme/layouts/article.js +11 -0
  28. package/dist/built-in-theme/layouts/article.js.map +1 -0
  29. package/dist/built-in-theme/layouts/base.d.ts +7 -0
  30. package/dist/built-in-theme/layouts/base.d.ts.map +1 -0
  31. package/dist/built-in-theme/layouts/base.js +21 -0
  32. package/dist/built-in-theme/layouts/base.js.map +1 -0
  33. package/dist/built-in-theme/layouts/landing-page.d.ts +6 -0
  34. package/dist/built-in-theme/layouts/landing-page.d.ts.map +1 -0
  35. package/dist/built-in-theme/layouts/landing-page.js +6 -0
  36. package/dist/built-in-theme/layouts/landing-page.js.map +1 -0
  37. package/dist/built-in-theme/layouts/page.d.ts +4 -0
  38. package/dist/built-in-theme/layouts/page.d.ts.map +1 -0
  39. package/dist/built-in-theme/layouts/page.js +7 -0
  40. package/dist/built-in-theme/layouts/page.js.map +1 -0
  41. package/dist/cli/build.d.ts +11 -0
  42. package/dist/cli/build.d.ts.map +1 -0
  43. package/dist/cli/build.js +271 -0
  44. package/dist/cli/build.js.map +1 -0
  45. package/dist/cli/create-app.d.ts +4 -0
  46. package/dist/cli/create-app.d.ts.map +1 -0
  47. package/dist/cli/create-app.js +179 -0
  48. package/dist/cli/create-app.js.map +1 -0
  49. package/dist/cli/db-init.d.ts +6 -0
  50. package/dist/cli/db-init.d.ts.map +1 -0
  51. package/dist/cli/db-init.js +28 -0
  52. package/dist/cli/db-init.js.map +1 -0
  53. package/dist/cli/dev.d.ts +10 -0
  54. package/dist/cli/dev.d.ts.map +1 -0
  55. package/dist/cli/dev.js +68 -0
  56. package/dist/cli/dev.js.map +1 -0
  57. package/dist/cli/export-cmd.d.ts +6 -0
  58. package/dist/cli/export-cmd.d.ts.map +1 -0
  59. package/dist/cli/export-cmd.js +12 -0
  60. package/dist/cli/export-cmd.js.map +1 -0
  61. package/dist/cli/import-cmd.d.ts +6 -0
  62. package/dist/cli/import-cmd.d.ts.map +1 -0
  63. package/dist/cli/import-cmd.js +11 -0
  64. package/dist/cli/import-cmd.js.map +1 -0
  65. package/dist/cli/index.d.ts +3 -0
  66. package/dist/cli/index.d.ts.map +1 -0
  67. package/dist/cli/index.js +163 -0
  68. package/dist/cli/index.js.map +1 -0
  69. package/dist/cli/init-cmd.d.ts +20 -0
  70. package/dist/cli/init-cmd.d.ts.map +1 -0
  71. package/dist/cli/init-cmd.js +116 -0
  72. package/dist/cli/init-cmd.js.map +1 -0
  73. package/dist/cli/sync-cmd.d.ts +5 -0
  74. package/dist/cli/sync-cmd.d.ts.map +1 -0
  75. package/dist/cli/sync-cmd.js +17 -0
  76. package/dist/cli/sync-cmd.js.map +1 -0
  77. package/dist/content-engine.d.ts +50 -0
  78. package/dist/content-engine.d.ts.map +1 -0
  79. package/dist/content-engine.js +240 -0
  80. package/dist/content-engine.js.map +1 -0
  81. package/dist/db/connection.d.ts +9 -0
  82. package/dist/db/connection.d.ts.map +1 -0
  83. package/dist/db/connection.js +121 -0
  84. package/dist/db/connection.js.map +1 -0
  85. package/dist/db/schema.d.ts +1178 -0
  86. package/dist/db/schema.d.ts.map +1 -0
  87. package/dist/db/schema.js +79 -0
  88. package/dist/db/schema.js.map +1 -0
  89. package/dist/index.d.ts +12 -0
  90. package/dist/index.d.ts.map +1 -0
  91. package/dist/index.js +8 -0
  92. package/dist/index.js.map +1 -0
  93. package/dist/lib/auth.d.ts +14 -0
  94. package/dist/lib/auth.d.ts.map +1 -0
  95. package/dist/lib/auth.js +40 -0
  96. package/dist/lib/auth.js.map +1 -0
  97. package/dist/lib/config-files.d.ts +8 -0
  98. package/dist/lib/config-files.d.ts.map +1 -0
  99. package/dist/lib/config-files.js +72 -0
  100. package/dist/lib/config-files.js.map +1 -0
  101. package/dist/lib/content-files.d.ts +5 -0
  102. package/dist/lib/content-files.d.ts.map +1 -0
  103. package/dist/lib/content-files.js +156 -0
  104. package/dist/lib/content-files.js.map +1 -0
  105. package/dist/lib/i18n.d.ts +33 -0
  106. package/dist/lib/i18n.d.ts.map +1 -0
  107. package/dist/lib/i18n.js +247 -0
  108. package/dist/lib/i18n.js.map +1 -0
  109. package/dist/lib/multisite.d.ts +23 -0
  110. package/dist/lib/multisite.d.ts.map +1 -0
  111. package/dist/lib/multisite.js +73 -0
  112. package/dist/lib/multisite.js.map +1 -0
  113. package/dist/lib/paths.d.ts +6 -0
  114. package/dist/lib/paths.d.ts.map +1 -0
  115. package/dist/lib/paths.js +25 -0
  116. package/dist/lib/paths.js.map +1 -0
  117. package/dist/lib/schema-loader.d.ts +25 -0
  118. package/dist/lib/schema-loader.d.ts.map +1 -0
  119. package/dist/lib/schema-loader.js +45 -0
  120. package/dist/lib/schema-loader.js.map +1 -0
  121. package/dist/lib/seo.d.ts +18 -0
  122. package/dist/lib/seo.d.ts.map +1 -0
  123. package/dist/lib/seo.js +212 -0
  124. package/dist/lib/seo.js.map +1 -0
  125. package/dist/lib/sync.d.ts +33 -0
  126. package/dist/lib/sync.d.ts.map +1 -0
  127. package/dist/lib/sync.js +308 -0
  128. package/dist/lib/sync.js.map +1 -0
  129. package/dist/lib/taxonomy.d.ts +29 -0
  130. package/dist/lib/taxonomy.d.ts.map +1 -0
  131. package/dist/lib/taxonomy.js +170 -0
  132. package/dist/lib/taxonomy.js.map +1 -0
  133. package/dist/lib/template-renderer.d.ts +6 -0
  134. package/dist/lib/template-renderer.d.ts.map +1 -0
  135. package/dist/lib/template-renderer.js +80 -0
  136. package/dist/lib/template-renderer.js.map +1 -0
  137. package/dist/lib/theme-loader.d.ts +5 -0
  138. package/dist/lib/theme-loader.d.ts.map +1 -0
  139. package/dist/lib/theme-loader.js +199 -0
  140. package/dist/lib/theme-loader.js.map +1 -0
  141. package/dist/lib/theme-types.d.ts +39 -0
  142. package/dist/lib/theme-types.d.ts.map +1 -0
  143. package/dist/lib/theme-types.js +2 -0
  144. package/dist/lib/theme-types.js.map +1 -0
  145. package/dist/lib/types.d.ts +91 -0
  146. package/dist/lib/types.d.ts.map +1 -0
  147. package/dist/lib/types.js +2 -0
  148. package/dist/lib/types.js.map +1 -0
  149. package/dist/routes/admin/content-edit.d.ts +10 -0
  150. package/dist/routes/admin/content-edit.d.ts.map +1 -0
  151. package/dist/routes/admin/content-edit.js +325 -0
  152. package/dist/routes/admin/content-edit.js.map +1 -0
  153. package/dist/routes/admin/content-list.d.ts +10 -0
  154. package/dist/routes/admin/content-list.d.ts.map +1 -0
  155. package/dist/routes/admin/content-list.js +162 -0
  156. package/dist/routes/admin/content-list.js.map +1 -0
  157. package/dist/routes/admin/content.d.ts +3 -0
  158. package/dist/routes/admin/content.d.ts.map +1 -0
  159. package/dist/routes/admin/content.js +12 -0
  160. package/dist/routes/admin/content.js.map +1 -0
  161. package/dist/routes/admin/dashboard.d.ts +4 -0
  162. package/dist/routes/admin/dashboard.d.ts.map +1 -0
  163. package/dist/routes/admin/dashboard.js +121 -0
  164. package/dist/routes/admin/dashboard.js.map +1 -0
  165. package/dist/routes/admin/export-route.d.ts +10 -0
  166. package/dist/routes/admin/export-route.d.ts.map +1 -0
  167. package/dist/routes/admin/export-route.js +19 -0
  168. package/dist/routes/admin/export-route.js.map +1 -0
  169. package/dist/routes/admin/index.d.ts +9 -0
  170. package/dist/routes/admin/index.d.ts.map +1 -0
  171. package/dist/routes/admin/index.js +27 -0
  172. package/dist/routes/admin/index.js.map +1 -0
  173. package/dist/routes/admin/layout.d.ts +17 -0
  174. package/dist/routes/admin/layout.d.ts.map +1 -0
  175. package/dist/routes/admin/layout.js +110 -0
  176. package/dist/routes/admin/layout.js.map +1 -0
  177. package/dist/routes/admin/login.d.ts +5 -0
  178. package/dist/routes/admin/login.d.ts.map +1 -0
  179. package/dist/routes/admin/login.js +113 -0
  180. package/dist/routes/admin/login.js.map +1 -0
  181. package/dist/routes/admin/media.d.ts +10 -0
  182. package/dist/routes/admin/media.d.ts.map +1 -0
  183. package/dist/routes/admin/media.js +192 -0
  184. package/dist/routes/admin/media.js.map +1 -0
  185. package/dist/routes/admin/middleware.d.ts +8 -0
  186. package/dist/routes/admin/middleware.d.ts.map +1 -0
  187. package/dist/routes/admin/middleware.js +29 -0
  188. package/dist/routes/admin/middleware.js.map +1 -0
  189. package/dist/routes/admin/section-builder.d.ts +10 -0
  190. package/dist/routes/admin/section-builder.d.ts.map +1 -0
  191. package/dist/routes/admin/section-builder.js +487 -0
  192. package/dist/routes/admin/section-builder.js.map +1 -0
  193. package/dist/routes/admin/settings.d.ts +10 -0
  194. package/dist/routes/admin/settings.d.ts.map +1 -0
  195. package/dist/routes/admin/settings.js +209 -0
  196. package/dist/routes/admin/settings.js.map +1 -0
  197. package/dist/routes/admin/site-switcher.d.ts +3 -0
  198. package/dist/routes/admin/site-switcher.d.ts.map +1 -0
  199. package/dist/routes/admin/site-switcher.js +36 -0
  200. package/dist/routes/admin/site-switcher.js.map +1 -0
  201. package/dist/routes/admin/taxonomy.d.ts +10 -0
  202. package/dist/routes/admin/taxonomy.d.ts.map +1 -0
  203. package/dist/routes/admin/taxonomy.js +297 -0
  204. package/dist/routes/admin/taxonomy.js.map +1 -0
  205. package/dist/routes/admin/users.d.ts +10 -0
  206. package/dist/routes/admin/users.d.ts.map +1 -0
  207. package/dist/routes/admin/users.js +227 -0
  208. package/dist/routes/admin/users.js.map +1 -0
  209. package/package.json +75 -0
  210. package/src/built-in-theme/components/cta/cta.tsx +18 -0
  211. package/src/built-in-theme/components/cta/schema.yaml +17 -0
  212. package/src/built-in-theme/components/features/features.tsx +18 -0
  213. package/src/built-in-theme/components/features/schema.yaml +22 -0
  214. package/src/built-in-theme/components/hero/hero.tsx +18 -0
  215. package/src/built-in-theme/components/hero/schema.yaml +17 -0
  216. package/src/built-in-theme/components/text/schema.yaml +12 -0
  217. package/src/built-in-theme/components/text/text.tsx +11 -0
  218. package/src/built-in-theme/layouts/article.tsx +20 -0
  219. package/src/built-in-theme/layouts/base.tsx +50 -0
  220. package/src/built-in-theme/layouts/landing-page.tsx +15 -0
  221. package/src/built-in-theme/layouts/page.tsx +11 -0
  222. package/src/built-in-theme/theme.yaml +4 -0
  223. package/starters/blank/config/content-types.yaml +47 -0
  224. package/starters/blank/config/section-types.yaml +115 -0
  225. package/starters/blank/config/settings.yaml +12 -0
  226. package/starters/blank/content/landing-pages/homepage.yaml +55 -0
  227. package/starters/blank/content/pages/about.md +27 -0
  228. package/starters/blank/starter.yaml +14 -0
  229. package/starters/blank/themes/starter/_types.ts +93 -0
  230. package/starters/blank/themes/starter/components/blog-listing/blog-listing.tsx +102 -0
  231. package/starters/blank/themes/starter/components/blog-listing/schema.yaml +21 -0
  232. package/starters/blank/themes/starter/components/columns/columns.tsx +101 -0
  233. package/starters/blank/themes/starter/components/columns/schema.yaml +23 -0
  234. package/starters/blank/themes/starter/components/counters/counters.css +13 -0
  235. package/starters/blank/themes/starter/components/counters/counters.tsx +81 -0
  236. package/starters/blank/themes/starter/components/counters/schema.yaml +23 -0
  237. package/starters/blank/themes/starter/components/cta/cta.tsx +57 -0
  238. package/starters/blank/themes/starter/components/cta/schema.yaml +30 -0
  239. package/starters/blank/themes/starter/components/faq/faq.tsx +77 -0
  240. package/starters/blank/themes/starter/components/faq/schema.yaml +20 -0
  241. package/starters/blank/themes/starter/components/features/features.tsx +82 -0
  242. package/starters/blank/themes/starter/components/features/schema.yaml +19 -0
  243. package/starters/blank/themes/starter/components/form/form.tsx +126 -0
  244. package/starters/blank/themes/starter/components/form/schema.yaml +18 -0
  245. package/starters/blank/themes/starter/components/gallery/gallery.tsx +85 -0
  246. package/starters/blank/themes/starter/components/gallery/schema.yaml +27 -0
  247. package/starters/blank/themes/starter/components/hero/hero.tsx +77 -0
  248. package/starters/blank/themes/starter/components/hero/schema.yaml +26 -0
  249. package/starters/blank/themes/starter/components/logo-slider/logo-slider.css +21 -0
  250. package/starters/blank/themes/starter/components/logo-slider/logo-slider.tsx +81 -0
  251. package/starters/blank/themes/starter/components/logo-slider/schema.yaml +23 -0
  252. package/starters/blank/themes/starter/components/pricing/pricing.tsx +141 -0
  253. package/starters/blank/themes/starter/components/pricing/schema.yaml +44 -0
  254. package/starters/blank/themes/starter/components/testimonials/schema.yaml +26 -0
  255. package/starters/blank/themes/starter/components/testimonials/testimonials.tsx +100 -0
  256. package/starters/blank/themes/starter/components/text/schema.yaml +12 -0
  257. package/starters/blank/themes/starter/components/text/text.tsx +62 -0
  258. package/starters/blank/themes/starter/components/text-with-image/schema.yaml +30 -0
  259. package/starters/blank/themes/starter/components/text-with-image/text-with-image.tsx +86 -0
  260. package/starters/blank/themes/starter/components/video/schema.yaml +19 -0
  261. package/starters/blank/themes/starter/components/video/video.tsx +98 -0
  262. package/starters/blank/themes/starter/layouts/article.tsx +42 -0
  263. package/starters/blank/themes/starter/layouts/base.tsx +92 -0
  264. package/starters/blank/themes/starter/layouts/landing-page.tsx +14 -0
  265. package/starters/blank/themes/starter/layouts/page.tsx +29 -0
  266. package/starters/blank/themes/starter/partials/footer.tsx +22 -0
  267. package/starters/blank/themes/starter/partials/header.tsx +32 -0
  268. package/starters/blank/themes/starter/static/style.css +125 -0
  269. package/starters/blank/themes/starter/theme.yaml +16 -0
  270. package/starters/kadoservices/config/content-types.yaml +239 -0
  271. package/starters/kadoservices/config/languages.yaml +12 -0
  272. package/starters/kadoservices/config/section-types.yaml +379 -0
  273. package/starters/kadoservices/config/settings.yaml +15 -0
  274. package/starters/kadoservices/config/sites.yaml +14 -0
  275. package/starters/kadoservices/config/taxonomies.yaml +61 -0
  276. package/starters/kadoservices/config/translations/de.yaml +120 -0
  277. package/starters/kadoservices/config/translations/en.yaml +120 -0
  278. package/starters/kadoservices/config/translations/pl.yaml +120 -0
  279. package/starters/kadoservices/content/articles/employer-branding-strategies.md +61 -0
  280. package/starters/kadoservices/content/articles/hiring-trends-2026.md +61 -0
  281. package/starters/kadoservices/content/articles/hiring-trends-2026.pl.md +61 -0
  282. package/starters/kadoservices/content/articles/labor-law-changes.md +78 -0
  283. package/starters/kadoservices/content/articles/temporary-staffing-guide.md +76 -0
  284. package/starters/kadoservices/content/articles/temporary-staffing-guide.pl.md +76 -0
  285. package/starters/kadoservices/content/case-studies/finance-rpo-program.md +68 -0
  286. package/starters/kadoservices/content/case-studies/manufacturing-mass-recruitment.md +65 -0
  287. package/starters/kadoservices/content/case-studies/manufacturing-mass-recruitment.pl.md +65 -0
  288. package/starters/kadoservices/content/case-studies/retail-seasonal-staffing.md +69 -0
  289. package/starters/kadoservices/content/industries/finance-shared-services.md +59 -0
  290. package/starters/kadoservices/content/industries/healthcare.md +64 -0
  291. package/starters/kadoservices/content/industries/it-technology.md +61 -0
  292. package/starters/kadoservices/content/industries/logistics.md +54 -0
  293. package/starters/kadoservices/content/industries/manufacturing.md +61 -0
  294. package/starters/kadoservices/content/industries/retail.md +56 -0
  295. package/starters/kadoservices/content/landing-pages/homepage.pl.yaml +198 -0
  296. package/starters/kadoservices/content/landing-pages/homepage.yaml +198 -0
  297. package/starters/kadoservices/content/locations/gdansk.md +32 -0
  298. package/starters/kadoservices/content/locations/krakow.md +30 -0
  299. package/starters/kadoservices/content/locations/warsaw.md +30 -0
  300. package/starters/kadoservices/content/locations/wroclaw.md +32 -0
  301. package/starters/kadoservices/content/pages/about.md +58 -0
  302. package/starters/kadoservices/content/pages/about.pl.md +58 -0
  303. package/starters/kadoservices/content/pages/careers.md +55 -0
  304. package/starters/kadoservices/content/pages/clients.md +65 -0
  305. package/starters/kadoservices/content/pages/contact.md +74 -0
  306. package/starters/kadoservices/content/pages/contact.pl.md +74 -0
  307. package/starters/kadoservices/content/pages/faq.md +76 -0
  308. package/starters/kadoservices/content/services/employer-branding.md +70 -0
  309. package/starters/kadoservices/content/services/hr-consulting.md +64 -0
  310. package/starters/kadoservices/content/services/outsourcing-rpo.md +78 -0
  311. package/starters/kadoservices/content/services/outsourcing-rpo.pl.md +67 -0
  312. package/starters/kadoservices/content/services/payroll-hr-admin.md +66 -0
  313. package/starters/kadoservices/content/services/permanent-recruitment.md +78 -0
  314. package/starters/kadoservices/content/services/permanent-recruitment.pl.md +78 -0
  315. package/starters/kadoservices/content/services/temporary-staffing.md +78 -0
  316. package/starters/kadoservices/content/team/anna-kowalska.md +26 -0
  317. package/starters/kadoservices/content/team/jan-lewandowski.md +26 -0
  318. package/starters/kadoservices/content/team/katarzyna-zielinska.md +26 -0
  319. package/starters/kadoservices/content/team/maria-wisniewska.md +28 -0
  320. package/starters/kadoservices/content/team/tomasz-nowak.md +26 -0
  321. package/starters/kadoservices/starter.yaml +15 -0
  322. package/starters/kadoservices/themes/kadoservices/_types.ts +93 -0
  323. package/starters/kadoservices/themes/kadoservices/components/blog-listing/blog-listing.tsx +197 -0
  324. package/starters/kadoservices/themes/kadoservices/components/blog-listing/schema.yaml +21 -0
  325. package/starters/kadoservices/themes/kadoservices/components/columns/columns.tsx +104 -0
  326. package/starters/kadoservices/themes/kadoservices/components/columns/schema.yaml +23 -0
  327. package/starters/kadoservices/themes/kadoservices/components/counters/counters.css +13 -0
  328. package/starters/kadoservices/themes/kadoservices/components/counters/counters.tsx +103 -0
  329. package/starters/kadoservices/themes/kadoservices/components/counters/schema.yaml +23 -0
  330. package/starters/kadoservices/themes/kadoservices/components/cta/cta.tsx +100 -0
  331. package/starters/kadoservices/themes/kadoservices/components/cta/schema.yaml +30 -0
  332. package/starters/kadoservices/themes/kadoservices/components/faq/faq.tsx +77 -0
  333. package/starters/kadoservices/themes/kadoservices/components/faq/schema.yaml +20 -0
  334. package/starters/kadoservices/themes/kadoservices/components/features/features.tsx +151 -0
  335. package/starters/kadoservices/themes/kadoservices/components/features/schema.yaml +19 -0
  336. package/starters/kadoservices/themes/kadoservices/components/form/form.tsx +135 -0
  337. package/starters/kadoservices/themes/kadoservices/components/form/schema.yaml +18 -0
  338. package/starters/kadoservices/themes/kadoservices/components/gallery/gallery.tsx +90 -0
  339. package/starters/kadoservices/themes/kadoservices/components/gallery/schema.yaml +27 -0
  340. package/starters/kadoservices/themes/kadoservices/components/hero/hero.tsx +175 -0
  341. package/starters/kadoservices/themes/kadoservices/components/hero/schema.yaml +26 -0
  342. package/starters/kadoservices/themes/kadoservices/components/logo-slider/logo-slider.css +21 -0
  343. package/starters/kadoservices/themes/kadoservices/components/logo-slider/logo-slider.tsx +83 -0
  344. package/starters/kadoservices/themes/kadoservices/components/logo-slider/schema.yaml +23 -0
  345. package/starters/kadoservices/themes/kadoservices/components/pricing/pricing.tsx +161 -0
  346. package/starters/kadoservices/themes/kadoservices/components/pricing/schema.yaml +44 -0
  347. package/starters/kadoservices/themes/kadoservices/components/testimonials/schema.yaml +26 -0
  348. package/starters/kadoservices/themes/kadoservices/components/testimonials/testimonials.css +13 -0
  349. package/starters/kadoservices/themes/kadoservices/components/testimonials/testimonials.tsx +150 -0
  350. package/starters/kadoservices/themes/kadoservices/components/text/schema.yaml +12 -0
  351. package/starters/kadoservices/themes/kadoservices/components/text/text.tsx +67 -0
  352. package/starters/kadoservices/themes/kadoservices/components/text-with-image/schema.yaml +30 -0
  353. package/starters/kadoservices/themes/kadoservices/components/text-with-image/text-with-image.tsx +92 -0
  354. package/starters/kadoservices/themes/kadoservices/components/video/schema.yaml +19 -0
  355. package/starters/kadoservices/themes/kadoservices/components/video/video.tsx +103 -0
  356. package/starters/kadoservices/themes/kadoservices/layouts/404.tsx +96 -0
  357. package/starters/kadoservices/themes/kadoservices/layouts/article.tsx +140 -0
  358. package/starters/kadoservices/themes/kadoservices/layouts/base.tsx +669 -0
  359. package/starters/kadoservices/themes/kadoservices/layouts/case-study.tsx +240 -0
  360. package/starters/kadoservices/themes/kadoservices/layouts/index--articles.tsx +250 -0
  361. package/starters/kadoservices/themes/kadoservices/layouts/index--case-studies.tsx +232 -0
  362. package/starters/kadoservices/themes/kadoservices/layouts/index--services.tsx +237 -0
  363. package/starters/kadoservices/themes/kadoservices/layouts/index.tsx +96 -0
  364. package/starters/kadoservices/themes/kadoservices/layouts/industry.tsx +121 -0
  365. package/starters/kadoservices/themes/kadoservices/layouts/landing-page.tsx +14 -0
  366. package/starters/kadoservices/themes/kadoservices/layouts/page--about.tsx +158 -0
  367. package/starters/kadoservices/themes/kadoservices/layouts/page--careers.tsx +214 -0
  368. package/starters/kadoservices/themes/kadoservices/layouts/page--contact.tsx +218 -0
  369. package/starters/kadoservices/themes/kadoservices/layouts/page.tsx +45 -0
  370. package/starters/kadoservices/themes/kadoservices/layouts/service.tsx +235 -0
  371. package/starters/kadoservices/themes/kadoservices/partials/footer.tsx +109 -0
  372. package/starters/kadoservices/themes/kadoservices/partials/header.tsx +53 -0
  373. package/starters/kadoservices/themes/kadoservices/static/images/article-platform-engineering.jpg +0 -0
  374. package/starters/kadoservices/themes/kadoservices/static/images/barka-logo.png +0 -0
  375. package/starters/kadoservices/themes/kadoservices/static/images/case-study-banking-dashboard.jpg +0 -0
  376. package/starters/kadoservices/themes/kadoservices/static/images/case-study-banking.png +0 -0
  377. package/starters/kadoservices/themes/kadoservices/static/images/case-study-ecommerce-dashboard.jpg +0 -0
  378. package/starters/kadoservices/themes/kadoservices/static/images/case-study-healthcare-dashboard.jpg +0 -0
  379. package/starters/kadoservices/themes/kadoservices/static/images/case-study-healthcare.png +0 -0
  380. package/starters/kadoservices/themes/kadoservices/static/images/case-study-retail.png +0 -0
  381. package/starters/kadoservices/themes/kadoservices/static/images/handshake.jpg +0 -0
  382. package/starters/kadoservices/themes/kadoservices/static/images/hero-bg.jpg +0 -0
  383. package/starters/kadoservices/themes/kadoservices/static/images/hero-bg.png +0 -0
  384. package/starters/kadoservices/themes/kadoservices/static/images/lokatech-logo.png +0 -0
  385. package/starters/kadoservices/themes/kadoservices/static/images/office-warsaw.png +0 -0
  386. package/starters/kadoservices/themes/kadoservices/static/images/office.jpg +0 -0
  387. package/starters/kadoservices/themes/kadoservices/static/images/team-anna-kowalska.png +0 -0
  388. package/starters/kadoservices/themes/kadoservices/static/images/team-collaboration.jpg +0 -0
  389. package/starters/kadoservices/themes/kadoservices/static/images/team-jan-nowak.png +0 -0
  390. package/starters/kadoservices/themes/kadoservices/static/images/team-katarzyna-kaminska.png +0 -0
  391. package/starters/kadoservices/themes/kadoservices/static/images/team-maria-wisniewska.png +0 -0
  392. package/starters/kadoservices/themes/kadoservices/static/images/team-meeting.jpg +0 -0
  393. package/starters/kadoservices/themes/kadoservices/static/images/team-strategy-session.jpg +0 -0
  394. package/starters/kadoservices/themes/kadoservices/static/images/team-tomasz-lewandowski.png +0 -0
  395. package/starters/kadoservices/themes/kadoservices/static/style.css +542 -0
  396. package/starters/kadoservices/themes/kadoservices/theme.yaml +21 -0
  397. package/starters/kadoservices/themes/starter/_types.ts +93 -0
  398. package/starters/kadoservices/themes/starter/components/blog-listing/blog-listing.tsx +102 -0
  399. package/starters/kadoservices/themes/starter/components/blog-listing/schema.yaml +21 -0
  400. package/starters/kadoservices/themes/starter/components/columns/columns.tsx +101 -0
  401. package/starters/kadoservices/themes/starter/components/columns/schema.yaml +23 -0
  402. package/starters/kadoservices/themes/starter/components/counters/counters.css +13 -0
  403. package/starters/kadoservices/themes/starter/components/counters/counters.tsx +81 -0
  404. package/starters/kadoservices/themes/starter/components/counters/schema.yaml +23 -0
  405. package/starters/kadoservices/themes/starter/components/cta/cta.tsx +57 -0
  406. package/starters/kadoservices/themes/starter/components/cta/schema.yaml +30 -0
  407. package/starters/kadoservices/themes/starter/components/faq/faq.tsx +77 -0
  408. package/starters/kadoservices/themes/starter/components/faq/schema.yaml +20 -0
  409. package/starters/kadoservices/themes/starter/components/features/features.tsx +82 -0
  410. package/starters/kadoservices/themes/starter/components/features/schema.yaml +19 -0
  411. package/starters/kadoservices/themes/starter/components/form/form.tsx +126 -0
  412. package/starters/kadoservices/themes/starter/components/form/schema.yaml +18 -0
  413. package/starters/kadoservices/themes/starter/components/gallery/gallery.tsx +85 -0
  414. package/starters/kadoservices/themes/starter/components/gallery/schema.yaml +27 -0
  415. package/starters/kadoservices/themes/starter/components/hero/hero.tsx +77 -0
  416. package/starters/kadoservices/themes/starter/components/hero/schema.yaml +26 -0
  417. package/starters/kadoservices/themes/starter/components/logo-slider/logo-slider.css +21 -0
  418. package/starters/kadoservices/themes/starter/components/logo-slider/logo-slider.tsx +81 -0
  419. package/starters/kadoservices/themes/starter/components/logo-slider/schema.yaml +23 -0
  420. package/starters/kadoservices/themes/starter/components/pricing/pricing.tsx +141 -0
  421. package/starters/kadoservices/themes/starter/components/pricing/schema.yaml +44 -0
  422. package/starters/kadoservices/themes/starter/components/testimonials/schema.yaml +26 -0
  423. package/starters/kadoservices/themes/starter/components/testimonials/testimonials.tsx +100 -0
  424. package/starters/kadoservices/themes/starter/components/text/schema.yaml +12 -0
  425. package/starters/kadoservices/themes/starter/components/text/text.tsx +62 -0
  426. package/starters/kadoservices/themes/starter/components/text-with-image/schema.yaml +30 -0
  427. package/starters/kadoservices/themes/starter/components/text-with-image/text-with-image.tsx +86 -0
  428. package/starters/kadoservices/themes/starter/components/video/schema.yaml +19 -0
  429. package/starters/kadoservices/themes/starter/components/video/video.tsx +98 -0
  430. package/starters/kadoservices/themes/starter/layouts/article.tsx +42 -0
  431. package/starters/kadoservices/themes/starter/layouts/base.tsx +92 -0
  432. package/starters/kadoservices/themes/starter/layouts/landing-page.tsx +14 -0
  433. package/starters/kadoservices/themes/starter/layouts/page.tsx +29 -0
  434. package/starters/kadoservices/themes/starter/partials/footer.tsx +22 -0
  435. package/starters/kadoservices/themes/starter/partials/header.tsx +32 -0
  436. package/starters/kadoservices/themes/starter/static/style.css +125 -0
  437. package/starters/kadoservices/themes/starter/theme.yaml +16 -0
  438. package/starters/lokatech/config/content-types.yaml +226 -0
  439. package/starters/lokatech/config/languages.yaml +12 -0
  440. package/starters/lokatech/config/section-types.yaml +379 -0
  441. package/starters/lokatech/config/settings.yaml +15 -0
  442. package/starters/lokatech/config/sites.yaml +21 -0
  443. package/starters/lokatech/config/taxonomies.yaml +65 -0
  444. package/starters/lokatech/config/translations/de.yaml +108 -0
  445. package/starters/lokatech/config/translations/en.yaml +108 -0
  446. package/starters/lokatech/config/translations/pl.yaml +108 -0
  447. package/starters/lokatech/content/articles/ai-in-enterprise.md +51 -0
  448. package/starters/lokatech/content/articles/api-gateway-patterns-enterprise.md +35 -0
  449. package/starters/lokatech/content/articles/design-system-enterprise-scale.md +35 -0
  450. package/starters/lokatech/content/articles/domain-driven-design-bounded-contexts.md +35 -0
  451. package/starters/lokatech/content/articles/engineering-team-scaling-50-to-200.md +33 -0
  452. package/starters/lokatech/content/articles/event-driven-architecture-microservices.md +35 -0
  453. package/starters/lokatech/content/articles/future-of-cloud-native.md +47 -0
  454. package/starters/lokatech/content/articles/getting-started.md +83 -0
  455. package/starters/lokatech/content/articles/headless-cms-composable-architecture.md +35 -0
  456. package/starters/lokatech/content/articles/kubernetes-cost-optimization-finops.md +33 -0
  457. package/starters/lokatech/content/articles/legacy-modernization-strangler-fig.md +35 -0
  458. package/starters/lokatech/content/articles/llm-fine-tuning-enterprise-data.md +33 -0
  459. package/starters/lokatech/content/articles/observability-opentelemetry-stack.md +35 -0
  460. package/starters/lokatech/content/articles/platform-engineering-internal-developer-portals.md +33 -0
  461. package/starters/lokatech/content/articles/platform-engineering-internal-developer-portals.pl.md +33 -0
  462. package/starters/lokatech/content/articles/rag-retrieval-augmented-generation-production.md +35 -0
  463. package/starters/lokatech/content/articles/remote-engineering-culture-distributed-teams.md +35 -0
  464. package/starters/lokatech/content/articles/supply-chain-security-sbom.md +35 -0
  465. package/starters/lokatech/content/articles/welcome.md +42 -0
  466. package/starters/lokatech/content/articles/welcome.pl.md +39 -0
  467. package/starters/lokatech/content/articles/zero-trust-network-architecture.md +35 -0
  468. package/starters/lokatech/content/articles/zero-trust-security.md +55 -0
  469. package/starters/lokatech/content/case-studies/banking-platform-modernization.md +67 -0
  470. package/starters/lokatech/content/case-studies/ecommerce-platform-rewrite.md +64 -0
  471. package/starters/lokatech/content/case-studies/govtech-citizen-portal.md +59 -0
  472. package/starters/lokatech/content/case-studies/healthcare-data-pipeline.md +67 -0
  473. package/starters/lokatech/content/case-studies/healthcare-data-pipeline.pl.md +60 -0
  474. package/starters/lokatech/content/case-studies/insurance-claims-automation.md +58 -0
  475. package/starters/lokatech/content/case-studies/manufacturing-iot-digital-twin.md +58 -0
  476. package/starters/lokatech/content/case-studies/retail-cloud-migration.md +49 -0
  477. package/starters/lokatech/content/case-studies/telecom-5g-platform.md +57 -0
  478. package/starters/lokatech/content/industries/energy-utilities.md +35 -0
  479. package/starters/lokatech/content/industries/financial-services.md +35 -0
  480. package/starters/lokatech/content/industries/healthcare.md +35 -0
  481. package/starters/lokatech/content/industries/manufacturing.md +35 -0
  482. package/starters/lokatech/content/industries/retail-ecommerce.md +35 -0
  483. package/starters/lokatech/content/industries/telecom-media.md +35 -0
  484. package/starters/lokatech/content/landing-pages/homepage.pl.yaml +182 -0
  485. package/starters/lokatech/content/landing-pages/homepage.yaml +236 -0
  486. package/starters/lokatech/content/locations/berlin.md +22 -0
  487. package/starters/lokatech/content/locations/krakow.md +22 -0
  488. package/starters/lokatech/content/locations/london.md +22 -0
  489. package/starters/lokatech/content/locations/warsaw.md +22 -0
  490. package/starters/lokatech/content/locations/wroclaw.md +22 -0
  491. package/starters/lokatech/content/pages/about.md +55 -0
  492. package/starters/lokatech/content/pages/about.pl.md +36 -0
  493. package/starters/lokatech/content/pages/careers.md +50 -0
  494. package/starters/lokatech/content/pages/contact.md +51 -0
  495. package/starters/lokatech/content/pages/contact.pl.md +51 -0
  496. package/starters/lokatech/content/pages/security-compliance.md +66 -0
  497. package/starters/lokatech/content/services/cloud-infrastructure.md +73 -0
  498. package/starters/lokatech/content/services/custom-software-development.md +74 -0
  499. package/starters/lokatech/content/services/custom-software-development.pl.md +80 -0
  500. package/starters/lokatech/content/services/cybersecurity.md +72 -0
  501. package/starters/lokatech/content/services/data-ai.md +74 -0
  502. package/starters/lokatech/content/services/digital-transformation.md +70 -0
  503. package/starters/lokatech/content/services/it-outsourcing.md +72 -0
  504. package/starters/lokatech/content/team/anna-kowalska.md +21 -0
  505. package/starters/lokatech/content/team/jan-nowak.md +21 -0
  506. package/starters/lokatech/content/team/katarzyna-kaminska.md +20 -0
  507. package/starters/lokatech/content/team/maria-wisniewska.md +20 -0
  508. package/starters/lokatech/content/team/tomasz-lewandowski.md +20 -0
  509. package/starters/lokatech/starter.yaml +15 -0
  510. package/starters/lokatech/themes/lokatech/_types.ts +93 -0
  511. package/starters/lokatech/themes/lokatech/components/blog-listing/blog-listing.tsx +197 -0
  512. package/starters/lokatech/themes/lokatech/components/blog-listing/schema.yaml +21 -0
  513. package/starters/lokatech/themes/lokatech/components/columns/columns.tsx +104 -0
  514. package/starters/lokatech/themes/lokatech/components/columns/schema.yaml +23 -0
  515. package/starters/lokatech/themes/lokatech/components/counters/counters.css +13 -0
  516. package/starters/lokatech/themes/lokatech/components/counters/counters.tsx +103 -0
  517. package/starters/lokatech/themes/lokatech/components/counters/schema.yaml +23 -0
  518. package/starters/lokatech/themes/lokatech/components/cta/cta.tsx +100 -0
  519. package/starters/lokatech/themes/lokatech/components/cta/schema.yaml +30 -0
  520. package/starters/lokatech/themes/lokatech/components/faq/faq.tsx +77 -0
  521. package/starters/lokatech/themes/lokatech/components/faq/schema.yaml +20 -0
  522. package/starters/lokatech/themes/lokatech/components/features/features.tsx +149 -0
  523. package/starters/lokatech/themes/lokatech/components/features/schema.yaml +19 -0
  524. package/starters/lokatech/themes/lokatech/components/form/form.tsx +135 -0
  525. package/starters/lokatech/themes/lokatech/components/form/schema.yaml +18 -0
  526. package/starters/lokatech/themes/lokatech/components/gallery/gallery.tsx +90 -0
  527. package/starters/lokatech/themes/lokatech/components/gallery/schema.yaml +27 -0
  528. package/starters/lokatech/themes/lokatech/components/hero/hero.tsx +167 -0
  529. package/starters/lokatech/themes/lokatech/components/hero/schema.yaml +26 -0
  530. package/starters/lokatech/themes/lokatech/components/logo-slider/logo-slider.css +21 -0
  531. package/starters/lokatech/themes/lokatech/components/logo-slider/logo-slider.tsx +83 -0
  532. package/starters/lokatech/themes/lokatech/components/logo-slider/schema.yaml +23 -0
  533. package/starters/lokatech/themes/lokatech/components/pricing/pricing.tsx +161 -0
  534. package/starters/lokatech/themes/lokatech/components/pricing/schema.yaml +44 -0
  535. package/starters/lokatech/themes/lokatech/components/testimonials/schema.yaml +26 -0
  536. package/starters/lokatech/themes/lokatech/components/testimonials/testimonials.css +13 -0
  537. package/starters/lokatech/themes/lokatech/components/testimonials/testimonials.tsx +150 -0
  538. package/starters/lokatech/themes/lokatech/components/text/schema.yaml +12 -0
  539. package/starters/lokatech/themes/lokatech/components/text/text.tsx +67 -0
  540. package/starters/lokatech/themes/lokatech/components/text-with-image/schema.yaml +30 -0
  541. package/starters/lokatech/themes/lokatech/components/text-with-image/text-with-image.tsx +92 -0
  542. package/starters/lokatech/themes/lokatech/components/video/schema.yaml +19 -0
  543. package/starters/lokatech/themes/lokatech/components/video/video.tsx +103 -0
  544. package/starters/lokatech/themes/lokatech/layouts/404.tsx +96 -0
  545. package/starters/lokatech/themes/lokatech/layouts/article.tsx +140 -0
  546. package/starters/lokatech/themes/lokatech/layouts/base.tsx +672 -0
  547. package/starters/lokatech/themes/lokatech/layouts/case-study.tsx +233 -0
  548. package/starters/lokatech/themes/lokatech/layouts/index--articles.tsx +246 -0
  549. package/starters/lokatech/themes/lokatech/layouts/index--case-studies.tsx +230 -0
  550. package/starters/lokatech/themes/lokatech/layouts/index--services.tsx +237 -0
  551. package/starters/lokatech/themes/lokatech/layouts/index.tsx +96 -0
  552. package/starters/lokatech/themes/lokatech/layouts/industry.tsx +121 -0
  553. package/starters/lokatech/themes/lokatech/layouts/landing-page.tsx +14 -0
  554. package/starters/lokatech/themes/lokatech/layouts/page--about.tsx +158 -0
  555. package/starters/lokatech/themes/lokatech/layouts/page--careers.tsx +125 -0
  556. package/starters/lokatech/themes/lokatech/layouts/page--contact.tsx +235 -0
  557. package/starters/lokatech/themes/lokatech/layouts/page.tsx +45 -0
  558. package/starters/lokatech/themes/lokatech/layouts/service.tsx +235 -0
  559. package/starters/lokatech/themes/lokatech/partials/footer.tsx +109 -0
  560. package/starters/lokatech/themes/lokatech/partials/header.tsx +53 -0
  561. package/starters/lokatech/themes/lokatech/static/images/article-platform-engineering.jpg +0 -0
  562. package/starters/lokatech/themes/lokatech/static/images/barka-logo.png +0 -0
  563. package/starters/lokatech/themes/lokatech/static/images/case-study-banking-dashboard.jpg +0 -0
  564. package/starters/lokatech/themes/lokatech/static/images/case-study-banking.png +0 -0
  565. package/starters/lokatech/themes/lokatech/static/images/case-study-ecommerce-dashboard.jpg +0 -0
  566. package/starters/lokatech/themes/lokatech/static/images/case-study-healthcare-dashboard.jpg +0 -0
  567. package/starters/lokatech/themes/lokatech/static/images/case-study-healthcare.png +0 -0
  568. package/starters/lokatech/themes/lokatech/static/images/case-study-retail.png +0 -0
  569. package/starters/lokatech/themes/lokatech/static/images/hero-bg.png +0 -0
  570. package/starters/lokatech/themes/lokatech/static/images/lokatech-logo.png +0 -0
  571. package/starters/lokatech/themes/lokatech/static/images/office-warsaw.png +0 -0
  572. package/starters/lokatech/themes/lokatech/static/images/team-anna-kowalska.png +0 -0
  573. package/starters/lokatech/themes/lokatech/static/images/team-collaboration.jpg +0 -0
  574. package/starters/lokatech/themes/lokatech/static/images/team-jan-nowak.png +0 -0
  575. package/starters/lokatech/themes/lokatech/static/images/team-katarzyna-kaminska.png +0 -0
  576. package/starters/lokatech/themes/lokatech/static/images/team-maria-wisniewska.png +0 -0
  577. package/starters/lokatech/themes/lokatech/static/images/team-strategy-session.jpg +0 -0
  578. package/starters/lokatech/themes/lokatech/static/images/team-tomasz-lewandowski.png +0 -0
  579. package/starters/lokatech/themes/lokatech/static/style.css +495 -0
  580. package/starters/lokatech/themes/lokatech/theme.yaml +21 -0
  581. package/starters/lokatech/themes/starter/_types.ts +93 -0
  582. package/starters/lokatech/themes/starter/components/blog-listing/blog-listing.tsx +102 -0
  583. package/starters/lokatech/themes/starter/components/blog-listing/schema.yaml +21 -0
  584. package/starters/lokatech/themes/starter/components/columns/columns.tsx +101 -0
  585. package/starters/lokatech/themes/starter/components/columns/schema.yaml +23 -0
  586. package/starters/lokatech/themes/starter/components/counters/counters.css +13 -0
  587. package/starters/lokatech/themes/starter/components/counters/counters.tsx +81 -0
  588. package/starters/lokatech/themes/starter/components/counters/schema.yaml +23 -0
  589. package/starters/lokatech/themes/starter/components/cta/cta.tsx +57 -0
  590. package/starters/lokatech/themes/starter/components/cta/schema.yaml +30 -0
  591. package/starters/lokatech/themes/starter/components/faq/faq.tsx +77 -0
  592. package/starters/lokatech/themes/starter/components/faq/schema.yaml +20 -0
  593. package/starters/lokatech/themes/starter/components/features/features.tsx +82 -0
  594. package/starters/lokatech/themes/starter/components/features/schema.yaml +19 -0
  595. package/starters/lokatech/themes/starter/components/form/form.tsx +126 -0
  596. package/starters/lokatech/themes/starter/components/form/schema.yaml +18 -0
  597. package/starters/lokatech/themes/starter/components/gallery/gallery.tsx +85 -0
  598. package/starters/lokatech/themes/starter/components/gallery/schema.yaml +27 -0
  599. package/starters/lokatech/themes/starter/components/hero/hero.tsx +77 -0
  600. package/starters/lokatech/themes/starter/components/hero/schema.yaml +26 -0
  601. package/starters/lokatech/themes/starter/components/logo-slider/logo-slider.css +21 -0
  602. package/starters/lokatech/themes/starter/components/logo-slider/logo-slider.tsx +81 -0
  603. package/starters/lokatech/themes/starter/components/logo-slider/schema.yaml +23 -0
  604. package/starters/lokatech/themes/starter/components/pricing/pricing.tsx +141 -0
  605. package/starters/lokatech/themes/starter/components/pricing/schema.yaml +44 -0
  606. package/starters/lokatech/themes/starter/components/testimonials/schema.yaml +26 -0
  607. package/starters/lokatech/themes/starter/components/testimonials/testimonials.tsx +100 -0
  608. package/starters/lokatech/themes/starter/components/text/schema.yaml +12 -0
  609. package/starters/lokatech/themes/starter/components/text/text.tsx +62 -0
  610. package/starters/lokatech/themes/starter/components/text-with-image/schema.yaml +30 -0
  611. package/starters/lokatech/themes/starter/components/text-with-image/text-with-image.tsx +86 -0
  612. package/starters/lokatech/themes/starter/components/video/schema.yaml +19 -0
  613. package/starters/lokatech/themes/starter/components/video/video.tsx +98 -0
  614. package/starters/lokatech/themes/starter/layouts/article.tsx +42 -0
  615. package/starters/lokatech/themes/starter/layouts/base.tsx +92 -0
  616. package/starters/lokatech/themes/starter/layouts/landing-page.tsx +14 -0
  617. package/starters/lokatech/themes/starter/layouts/page.tsx +29 -0
  618. package/starters/lokatech/themes/starter/partials/footer.tsx +22 -0
  619. package/starters/lokatech/themes/starter/partials/header.tsx +32 -0
  620. package/starters/lokatech/themes/starter/static/style.css +125 -0
  621. package/starters/lokatech/themes/starter/theme.yaml +16 -0
package/README.md ADDED
@@ -0,0 +1,566 @@
1
+ <p align="center">
2
+ <img src="https://img.shields.io/badge/barka-0.1.0-000000?style=for-the-badge&labelColor=000" alt="Barka 0.1.0" />
3
+ </p>
4
+
5
+ <h1 align="center">Barka<br/>AI-Native Progressive Content-as-Code CMS</h1>
6
+
7
+ <p align="center">
8
+ <strong>The first CMS designed for AI coding agents.</strong><br/>
9
+ Write in Markdown. Configure in YAML. Let AI build features.<br/>
10
+ Start as a static site generator — grow into a full CMS when you need it.
11
+ </p>
12
+
13
+ <p align="center">
14
+ <a href="https://github.com/barkajs/barka/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License" /></a>
15
+ <a href="https://github.com/barkajs/barka/pulls"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="PRs Welcome" /></a>
16
+ <a href="https://github.com/barkajs/barka"><img src="https://img.shields.io/badge/TypeScript-5.7-blue?logo=typescript&logoColor=white" alt="TypeScript" /></a>
17
+ <a href="https://hono.dev"><img src="https://img.shields.io/badge/Hono-4.7-E36002?logo=hono&logoColor=white" alt="Hono" /></a>
18
+ </p>
19
+
20
+ <p align="center">
21
+ <a href="#quickstart">Quickstart</a> · <a href="#why-barka">Why Barka</a> · <a href="#features">Features</a> · <a href="#starters">Starters</a> · <a href="#comparison">Comparison</a> · <a href="#testing-smoke">Smoke tests</a> · <a href="https://github.com/barkajs/barka">GitHub</a>
22
+ </p>
23
+
24
+ > **Early Access — v0.1.0**
25
+ >
26
+ > Barka is in early development. The core engine, CLI, theme system, i18n, multi-site, and static build are functional and tested (151 unit tests). The admin UI and database layer work but are less polished. Some features (workflow approvals, scheduled publishing, role-based permissions) are planned but not yet implemented.
27
+ >
28
+ > We welcome testers, feedback, and contributions. If you hit a bug or have an idea — [open an issue](https://github.com/barkajs/barka/issues). If you build a site with Barka, we'd love to hear about it.
29
+
30
+ ---
31
+
32
+ # What is Barka?
33
+
34
+ Barka is the first **progressive CMS built for AI agents**. It bridges the gap between static site generators and traditional content management systems — combining the simplicity of Astro/Hugo (Markdown files, free hosting) with the power of Drupal/WordPress (structured content, page builder, multi-language, admin UI).
35
+
36
+ **Born from real frustration.** Barka was created after extensive work with AI coding agents (Claude Code, Cursor, Codex, Copilot) on existing CMS platforms — Payload, Astro, Drupal, WordPress, Strapi. The problems hit hardest in the scenarios that matter most for marketing teams: multi-language sites across multiple domains, rapid creation of custom landing pages, and high-volume content publishing (blog posts, case studies, service pages). Every existing CMS made these tasks painful with AI — complex configs, binary formats, database-dependent workflows, and opaque abstractions meant that building a simple landing page with AI required fighting the framework instead of creating content.
37
+
38
+ **Barka is designed to be the #1 CMS for marketing-driven companies** that need rich, multi-language websites across multiple domains — and need to publish a lot, fast. With AI agents, you can generate a complete landing page with 10 sections in minutes, translate it to 3 languages instantly, and deploy to a new domain without touching the admin panel. Barka was built to eliminate every barrier between "I need a page" and "it's live."
39
+
40
+ **Designed from the ground up for AI-assisted development.** Content in Markdown, config in YAML, themes in JSX — all plain text formats that AI coding agents can read, modify, and extend without APIs or authentication. The repo ships with `CLAUDE.md` and `INVARIANTS.json` — built-in guardrails that keep AI agents aligned with project rules across tasks. An AI agent can create an entire website — content, theme, config — in a single session.
41
+
42
+ **No database required to start.** Content lives in Markdown files and YAML configs — version-controlled with Git, deployable to Cloudflare Pages for $0. When editors need a UI, add SQLite with one command and unlock a full admin panel.
43
+
44
+ ## Why Barka?
45
+
46
+ - **Built for AI Agents** — Every file is plain text (Markdown, YAML, JSX). AI tools can create content, add features, modify themes, and extend the CMS — no API calls, no auth tokens, no binary formats. Ships with agent guardrails (`CLAUDE.md`, `INVARIANTS.json`) to prevent drift across tasks.
47
+ - **Progressive Complexity** — Start with files only, add a database when you actually need one. No upfront infrastructure decisions.
48
+ - **Zero JavaScript on Frontend** — Public pages ship 0 bytes of JS. Pure server-rendered HTML with perfect Lighthouse scores.
49
+ - **Full Code Ownership** — No vendor lock-in, no SaaS fees. Your content lives in Git. Self-host anywhere or deploy static for free.
50
+ - **Drupal-Grade Features** — Page builder with 15 section types, multi-language, multi-site, taxonomy, revisions — without the Drupal complexity.
51
+
52
+ ---
53
+
54
+ # Features
55
+
56
+ **Content as Code**
57
+ Write content in Markdown with YAML frontmatter. Define content types, taxonomies, and section types in simple YAML config files. Everything is a file — version-controlled, diffable, AI-friendly.
58
+
59
+ **Page Builder — 15 Section Types**
60
+ Compose landing pages from reusable sections: Hero, Features, CTA, Testimonials, FAQ, Pricing, Gallery, Counters, Logo Slider, Text with Image, Blog Listing, Columns, Video, Form, and Text — inspired by [Droopler](https://droopler.dev). Each section supports per-instance settings (background, spacing, width, CSS class).
61
+
62
+ **Single Directory Components (SDC)**
63
+ Each section component lives in its own directory with co-located template (`.tsx`), scoped styles (`.css`), and schema definition (`schema.yaml`). CSS is automatically collected and served via a dynamic `/static/components.css` route — no build step needed.
64
+
65
+ ```
66
+ themes/lokatech/components/
67
+ ├── hero/
68
+ │ ├── hero.tsx # Hono JSX template
69
+ │ ├── hero.css # Scoped styles (animations, gradients)
70
+ │ └── schema.yaml # Field definitions
71
+ ├── features/
72
+ │ ├── features.tsx
73
+ │ ├── features.css
74
+ │ └── schema.yaml
75
+ └── ... (15 components)
76
+ ```
77
+
78
+ **Starter Profiles (Distributions)**
79
+ Self-contained starter profiles — like Drupal distributions (Droopler, OpenIntranet). Each starter bundles themes, config, and demo content. After `barka init`, everything in `content/`, `config/`, and `themes/` is yours — framework updates never touch these directories.
80
+
81
+ **Admin UI with HTMX**
82
+ A full content management interface at `/admin` — content CRUD with revisions, section builder, media library, taxonomy management, user accounts, settings. Built with server-rendered HTML + HTMX for instant interactivity. No React, no JS build step.
83
+
84
+ **Multi-Language**
85
+ Built-in i18n via filename suffixes (`about.pl.md`, `about.de.md`). Language negotiation (URL prefix → cookie → Accept-Language). Hreflang tags auto-generated. A scalable **language switcher** (dropdown: code + label, active checkmark) lives in the header and matches mobile drawer styling. On the **default language**, URLs have no prefix (`/`); prefixed routes (`/pl/...`, `/de/...`) serve the matching translation. If two files share the same slug (e.g. `page.md` and `page.pl.md`), the unprefixed URL always resolves to the **site default language** — not “first file on disk.” Listings (`/articles`, `/case-studies`, `/services`) filter by language so you never mix EN and PL on the same index. Config in one YAML file:
86
+
87
+ ```yaml
88
+ # config/languages.yaml
89
+ default: en
90
+ languages:
91
+ en:
92
+ label: "English"
93
+ direction: ltr
94
+ pl:
95
+ label: "Polski"
96
+ direction: ltr
97
+ ```
98
+
99
+ **UI strings (theme / admin copy)**
100
+ Navigation labels, mega-menu copy, footer headings, and other **non-content** strings are not stored in Markdown. They live in `config/translations/<lang>.yaml` (dot keys, e.g. `nav.services: "Services"`). At render time the active theme receives a Drupal-style **`t()`** helper via theme settings (`themeSettings._t`) with fallback to the site default language. Add or edit keys there — same idea as Drupal’s string translations.
101
+
102
+ **Base path & internal URLs**
103
+ Templates get **`_basePath`** (empty for the default language, or `/<lang>` when prefixed) and **`_url('/path')`** so links stay correct when the user is on `/pl/...` (logo, nav, footer, CTAs). You don’t hardcode `/pl` in JSX.
104
+
105
+ **Multi-Site / Multi-Domain**
106
+ Serve multiple sites from a single Barka instance. Each site can have its own domain, language set, and theme settings — while sharing the same components and content engine. Content **without** optional `siteId` in frontmatter is **shared** across sites; content **with** `siteId` is scoped to that site. `barka dev` prints a table mapping each site’s production domain to its `.localhost` alias and languages. Local development uses RFC 6761 `.localhost` subdomains (zero config, no `/etc/hosts` editing):
107
+
108
+ ```yaml
109
+ # config/sites.yaml
110
+ sites:
111
+ main:
112
+ label: "Barka"
113
+ domain: "barka.dev"
114
+ localhost: "barka.localhost" # http://barka.localhost:3000
115
+ default_lang: en
116
+ languages: [en, pl, de]
117
+
118
+ blog:
119
+ label: "Blog"
120
+ domain: "blog.barka.dev"
121
+ localhost: "blog.localhost" # http://blog.localhost:3000
122
+ default_lang: en
123
+ languages: [en]
124
+ ```
125
+
126
+ **Themes**
127
+ Drupal-style theme system with inheritance and a resolution chain: `active theme → base theme → built-in fallback`. Themes include layouts, SDC components, partials, and static assets. Slug-specific templates (`page--contact.tsx`), collection listings (`index--articles.tsx`). Shipped inside starters so they're fully customizable.
128
+
129
+ **Bidirectional Sync**
130
+ Edit in files, edit in admin UI — it all stays in sync. `barka sync` merges changes from both directions with conflict detection. Export from DB to files for Git versioning anytime.
131
+
132
+ **SEO-First**
133
+ Zero JS on public pages. Auto-generated meta tags (Open Graph, Twitter), JSON-LD structured data, sitemap.xml, robots.txt, RSS feed, clean URLs, hreflang tags. Sitemap and RSS are **site-scoped** when multi-site is enabled. Static HTML output scores 100/100 on Lighthouse.
134
+
135
+ **Themed 404**
136
+ Unknown routes render through your active theme (navigation, language switcher, translated UI) — not a bare HTML error page.
137
+
138
+ **Mobile-First Navigation**
139
+ Responsive design with a hamburger menu that opens a slide-in drawer with full accordion sub-navigation (Services, Industries, Insights sub-items), app-style bottom navigation bar, and a prominent Contact CTA.
140
+
141
+ ---
142
+
143
+ # Progressive Complexity
144
+
145
+ Barka grows with your project. Start simple, scale up only when needed.
146
+
147
+ ```
148
+ Level 1: Files Only Level 2: Dev Server Level 3: + Database Level 4: Full CMS
149
+ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
150
+ │ content/*.md │ │ barka dev │ │ + SQLite │ │ + Multi-lang │
151
+ │ config/*.yaml │ → │ Hot reload │ → │ + Admin UI │ → │ + Multi-site │
152
+ │ barka build │ │ Live preview │ │ + Auth │ │ + Workflows │
153
+ │ Deploy: $0 │ │ Local only │ │ Deploy: $0-5 │ │ Deploy: $5-20 │
154
+ └─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────────────┘
155
+ No DB No DB SQLite SQLite or PG
156
+ ```
157
+
158
+ ---
159
+
160
+ # Quickstart
161
+
162
+ **Step 1:** Create a new Barka project:
163
+
164
+ ```bash
165
+ npx @barkajs/barka create my-site
166
+ ```
167
+
168
+ **Step 2:** Install dependencies and start:
169
+
170
+ ```bash
171
+ cd my-site
172
+ npm install
173
+ npm run dev
174
+ ```
175
+
176
+ **Step 4:** Open your site at `http://localhost:3000`
177
+
178
+ **Step 5 (optional):** Add a database and admin UI:
179
+
180
+ ```bash
181
+ npx barka db:init
182
+ ```
183
+
184
+ Access the admin panel at `http://localhost:3000/admin`
185
+ Default credentials: `admin@example.com` / `Admin123!SecurePass`
186
+
187
+ ## Prerequisites
188
+
189
+ - Node.js v20+
190
+ - npm, pnpm, or bun
191
+
192
+ That's it. No Docker, no PostgreSQL, no Redis — unless you want them later.
193
+
194
+ ---
195
+
196
+ <h2 id="starters">Starter Profiles</h2>
197
+
198
+ Starters are self-contained distributions — like Drupal installation profiles (Droopler, OpenIntranet). Each starter bundles a premium theme, full configuration, demo content, and translations. After `barka init`, everything becomes yours to customize. More starters are coming.
199
+
200
+ ```bash
201
+ barka starters # list available starters
202
+ barka init --starter lokatech # enterprise IT company
203
+ barka init --starter kadoservices # staffing & HR company
204
+ barka init --starter blank # clean starting point
205
+ ```
206
+
207
+ ### LokaTech — Enterprise IT Demo (default)
208
+
209
+ A complete website for a fictional enterprise IT services company. Dark navy + emerald green theme with premium animations (floating blobs, grid patterns, glow lines, stagger reveals).
210
+
211
+ - **Content**: 62 files — 6 services, 6 industries, 8 case studies, 22 articles, 5 team members, 5 locations, homepage with 10 sections
212
+ - **Theme**: 14 layouts, 15 SDC section components, CSS-only mega menu, mobile drawer nav, frosted glass header
213
+ - **Languages**: EN + PL translations, language switcher, hreflang tags
214
+ - **Use case**: IT outsourcing, software house, digital agency, consulting firm
215
+
216
+ ### KadoServices — Staffing & HR Demo
217
+
218
+ A complete website for a fictional staffing and HR services company. Warm amber + deep plum theme with a completely different visual language (numbered rows, split hero, dual CTA, slim dropdowns).
219
+
220
+ - **Content**: 42 files — 6 services (recruitment, temp staffing, RPO, consulting, branding, payroll), 6 industries, 3 case studies, 4 articles, 5 team members, 4 locations, homepage with 10 sections
221
+ - **Theme**: 14 layouts, 15 SDC components, DM Sans + Source Sans 3 typography, pre-footer dual audience strip
222
+ - **Languages**: EN + PL translations
223
+ - **Use case**: Staffing agency, HR consulting, recruitment firm, outsourcing company
224
+
225
+ ### Blank — Clean Starting Point
226
+
227
+ Minimal setup for starting from scratch. Just a homepage, about page, and the base Starter theme.
228
+
229
+ - **Content**: 2 files — homepage + about page
230
+ - **Config**: 3 content types (article, page, landing_page)
231
+ - **Theme**: Starter base theme (clean, unstyled)
232
+ - **Use case**: Custom project where you build your own theme and content
233
+
234
+ ### How to use a starter for a new site
235
+
236
+ ```bash
237
+ # Create a new project
238
+ npx @barkajs/barka create my-company
239
+ cd my-company && npm install
240
+
241
+ # Pick a starter that matches your industry
242
+ barka init --starter kadoservices --force
243
+
244
+ # Customize: edit content, change colors, add your logo
245
+ # Then start the dev server
246
+ barka dev
247
+ ```
248
+
249
+ After init, you own everything:
250
+ - `content/` — your content, edit freely (or let AI agents generate it)
251
+ - `config/` — your content types, taxonomies, languages, sites
252
+ - `themes/` — your theme layouts, components, styles
253
+
254
+ Framework updates (`npm update @barkajs/barka`) never touch these directories.
255
+
256
+ ---
257
+
258
+ ## For AI Coding Agents
259
+
260
+ Copy the prompt below into **Claude Code**, **Cursor**, **Codex**, **Aider**, or any AI coding tool to start building a new Barka site from scratch. The agent will ask you a few questions, recommend the best starter, and generate a customized website.
261
+
262
+ ````markdown
263
+ # Build a new website with Barka CMS
264
+
265
+ ## Step 1 — Set up the project
266
+
267
+ ```bash
268
+ npx @barkajs/barka create my-site
269
+ cd my-site
270
+ npm install
271
+ ```
272
+
273
+ Read the files `CLAUDE.md` and `INVARIANTS.json` in the project root before making
274
+ any changes — they contain the rules you must follow.
275
+
276
+ ## Step 2 — Gather requirements
277
+
278
+ Before choosing a starter or generating content, ask me (the human) these questions
279
+ and wait for answers:
280
+
281
+ 1. **Company / website name** — What is the company called? What should the site title be?
282
+ 2. **Main goal** — What is the primary goal of the website?
283
+ (lead generation, brand awareness, recruitment, e-commerce, portfolio, internal tool, etc.)
284
+ 3. **Services / products** — What does the company offer? List the main services or product categories.
285
+ 4. **Target audience** — Who are the ideal customers? Which industries or verticals?
286
+ 5. **Languages** — How many languages are needed and which ones? (e.g. EN + PL, EN only, EN + DE + FR)
287
+ 6. **Brand identity** — Do you have a brand book, existing website, or logo I can use to match colors and typography? Paste a link or describe the palette.
288
+ 7. **Content volume** — How much content do you plan to publish?
289
+ (a few static pages, regular blog posts, case studies, landing pages for campaigns, etc.)
290
+
291
+ ## Step 3 — Choose a starter and initialize
292
+
293
+ Based on the answers, pick the best starter:
294
+
295
+ | Starter | Best for | Theme style |
296
+ |---------|----------|-------------|
297
+ | `lokatech` | IT services, software houses, consulting, digital agencies | Dark navy + emerald, premium animations |
298
+ | `kadoservices` | HR, staffing, recruitment, outsourcing, business services | Warm amber + deep plum, professional |
299
+ | `blank` | Fully custom design, e-commerce, portfolio, non-standard layouts | Minimal base theme |
300
+
301
+ > More industry-specific starters are coming (healthcare, real estate, SaaS, education).
302
+ > For now, pick the closest match and customize from there.
303
+
304
+ ```bash
305
+ barka init --starter <recommended> --force
306
+ ```
307
+
308
+ ## Step 4 — Customize for the company
309
+
310
+ 1. Edit `config/settings.yaml` — set `site_name`, `site_url`, `tagline`, and theme colors
311
+ to match the brand book or provided palette.
312
+ 2. Edit `config/languages.yaml` — configure the languages from the requirements.
313
+ 3. Edit `config/sites.yaml` — set the production domain and localhost alias.
314
+ 4. Update `config/translations/en.yaml` (and other language files) — replace demo
315
+ navigation labels, footer text, and CTA copy with the real company content.
316
+
317
+ ## Step 5 — Generate content
318
+
319
+ Replace the demo content in `content/` with real pages tailored to the company:
320
+
321
+ - `content/landing-pages/homepage.yaml` — hero, features, CTA, testimonials sections
322
+ - `content/pages/about.md` — company story, mission, values
323
+ - `content/services/*.md` — one file per service/product
324
+ - `content/articles/*.md` — blog posts relevant to the industry
325
+ - `content/landing-pages/*.yaml` — campaign landing pages with section builder
326
+
327
+ For each non-default language, create translated files with the language suffix
328
+ (e.g. `homepage.pl.yaml`, `about.pl.md`).
329
+
330
+ ## Step 6 — Preview and iterate
331
+
332
+ ```bash
333
+ barka dev
334
+ # Open http://localhost:3000
335
+ ```
336
+
337
+ Use Playwright or a browser to verify every page renders correctly.
338
+ Check all languages, navigation, footer links, and mobile responsiveness.
339
+
340
+ ## Rules to follow
341
+
342
+ - NEVER delete content/, config/, or themes/ directories
343
+ - NEVER hardcode language prefixes (/pl/, /de/) — use `_url()` and `_t()` in templates
344
+ - ALWAYS run `npm test && npm run typecheck` before committing
345
+ - Content files use YAML frontmatter; landing pages are pure YAML with sections
346
+ - Theme components are Single Directory Components (SDC) in `themes/<name>/components/`
347
+ - UI strings live in `config/translations/<lang>.yaml` — not hardcoded in JSX
348
+ ````
349
+
350
+ ---
351
+
352
+ # CLI
353
+
354
+ ```bash
355
+ barka create <name> # Scaffold a new project
356
+ barka init -s <starter> # Initialize from a starter profile (lokatech, blank)
357
+ barka starters # List available starter profiles
358
+ barka dev # Dev server with hot reload
359
+ barka build # Static HTML output to dist/
360
+ barka build --site X # Build for a specific site
361
+ barka db:init # Initialize SQLite + seed data
362
+ barka import # Files → Database
363
+ barka export # Database → Files
364
+ barka sync # Bidirectional sync with conflict detection
365
+ ```
366
+
367
+ ---
368
+
369
+ # Content
370
+
371
+ Content lives in `content/` as Markdown with YAML frontmatter:
372
+
373
+ ```markdown
374
+ ---
375
+ title: "Getting Started with Barka"
376
+ type: article
377
+ status: published
378
+ date: 2026-03-21
379
+ fields:
380
+ category: technology
381
+ author: "Jane Doe"
382
+ featured_image: "/static/images/article-hero.jpg"
383
+ ---
384
+
385
+ Your markdown content here. Supports **bold**, *italic*, [links](https://example.com),
386
+ code blocks, images, and everything else Markdown offers.
387
+ ```
388
+
389
+ Landing pages use pure YAML with sections:
390
+
391
+ ```yaml
392
+ title: "Homepage"
393
+ type: landing_page
394
+ status: published
395
+ sections:
396
+ - type: hero
397
+ heading: "Build websites the simple way"
398
+ subheading: "Content in files. Deploy anywhere."
399
+ cta_text: "Get Started"
400
+ cta_url: "/docs"
401
+ settings:
402
+ background: dark
403
+ spacing: large
404
+ - type: features
405
+ heading: "Why Barka?"
406
+ items:
407
+ - title: "Files First"
408
+ description: "No database needed to start"
409
+ icon: "file-text"
410
+ ```
411
+
412
+ ## Multi-Language Content
413
+
414
+ Add a translation by creating a file with a language suffix:
415
+
416
+ ```
417
+ content/
418
+ ├── articles/
419
+ │ ├── platform-engineering.md # English (default)
420
+ │ └── platform-engineering.pl.md # Polish translation
421
+ ├── pages/
422
+ │ ├── contact.md # English
423
+ │ └── contact.pl.md # Polish
424
+ └── landing-pages/
425
+ ├── homepage.yaml # English
426
+ └── homepage.pl.yaml # Polish
427
+ ```
428
+
429
+ The system automatically detects the language from the filename, associates translations with the same slug, and serves them at prefixed URLs (`/pl/articles/platform-engineering`).
430
+
431
+ **Missing translation:** If there is no content file for a language (e.g. no German homepage), that URL may show a **404** — UI chrome still uses `config/translations/de.yaml` for nav/footer. Add `homepage.de.yaml` (or the relevant `.de.md`) when you want a full page.
432
+
433
+ ---
434
+
435
+ # Configuration
436
+
437
+ All configuration in `config/` — simple YAML files:
438
+
439
+ | File | Purpose |
440
+ |------|---------|
441
+ | `settings.yaml` | Site name, URL, theme, SEO defaults |
442
+ | `content-types.yaml` | Content type definitions with fields |
443
+ | `section-types.yaml` | Section types for the page builder |
444
+ | `languages.yaml` | i18n language definitions |
445
+ | `taxonomies.yaml` | Vocabularies and terms |
446
+ | `sites.yaml` | Multi-site domains, per-site languages, `.localhost` aliases |
447
+ | `translations/*.yaml` | UI strings per language (`en.yaml`, `pl.yaml`, …) — keys consumed by `t()` in themes |
448
+
449
+ ---
450
+
451
+ <h2 id="testing-smoke">Smoke tests (manual / Playwright)</h2>
452
+
453
+ After changes to routing, i18n, `sites.yaml`, or theme navigation, verify at least:
454
+
455
+ | Area | Checks |
456
+ |------|--------|
457
+ | **EN** | `/` — logo → `/`, nav without `/pl`, English body copy |
458
+ | **PL** | `/pl` — logo → `/pl`, nav/footer links prefixed `/pl/`, Polish copy where translated |
459
+ | **Same slug, two langs** | `/services/...` = default lang; `/pl/services/...` = Polish — no cross-leak |
460
+ | **Listings** | `/articles` vs `/pl/articles` — only items for that language |
461
+ | **404** | `/missing` vs `/pl/missing` — themed page + matching nav language |
462
+ | **Switcher** | Dropdown lists all configured languages; links use correct prefix |
463
+
464
+ The Barka wrapper documents a fuller checklist in `.claude/skills/role-qa-testing/SKILL.md` (section **Frontend Smoke Tests — Barka v2**).
465
+
466
+ ---
467
+
468
+ # Tech Stack
469
+
470
+ | Layer | Technology | Why |
471
+ |-------|-----------|-----|
472
+ | Web framework | **Hono** | Ultrafast, runs on Cloudflare Workers, Bun, Deno, Node.js |
473
+ | Database | **SQLite** (optional) | Zero-config, embedded, no server process |
474
+ | ORM | **Drizzle** | Type-safe, SQL-like API, lazy-loaded |
475
+ | Admin UI | **HTMX** | Server-rendered interactivity, no JS build step |
476
+ | Templates | **Hono JSX** | Fast server-side rendering |
477
+ | Styling | **Tailwind CSS** | Utility-first, CDN-friendly |
478
+ | CLI | **Commander.js** | Standard Node.js CLI framework |
479
+ | Content | **gray-matter** + **marked** | Frontmatter parsing + Markdown rendering |
480
+
481
+ ---
482
+
483
+ <h2 id="comparison">Comparison vs Other Tools</h2>
484
+
485
+ | Feature | Astro | Hugo | Drupal | WordPress | Payload CMS | Keystatic | **Barka** |
486
+ |---------|:-----:|:----:|:------:|:---------:|:-----------:|:---------:|:---------:|
487
+ | Content in files | :white_check_mark: | :white_check_mark: | :x: | :x: | :x: | :white_check_mark: | :white_check_mark: |
488
+ | Admin UI for editors | :x: | :x: | :white_check_mark: | :white_check_mark: | :white_check_mark: | Partial | :white_check_mark: |
489
+ | Page builder / sections | :x: | :x: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :white_check_mark: |
490
+ | Starter distributions | :x: | :x: | :white_check_mark: | :x: | :x: | :x: | :white_check_mark: |
491
+ | Database optional | :white_check_mark: | :white_check_mark: | :x: | :x: | :x: | :white_check_mark: | :white_check_mark: |
492
+ | Multi-language | Plugin | Built-in | Built-in | Plugin | Plugin | :x: | Built-in |
493
+ | Multi-site | :x: | :x: | :white_check_mark: | :white_check_mark: | :x: | :x: | :white_check_mark: |
494
+ | Content revisions | Git | Git | DB | DB | DB | Git | Git + DB |
495
+ | 0 JS on frontend | :x: | :white_check_mark: | Depends | :x: | Depends | :white_check_mark: | :white_check_mark: |
496
+ | AI-friendly content | :white_check_mark: | :white_check_mark: | :x: | :x: | Partial | Partial | :white_check_mark: |
497
+ | Free static hosting | :white_check_mark: | :white_check_mark: | :x: | :x: | :x: | :white_check_mark: | :white_check_mark: |
498
+ | Self-contained | :x: | :white_check_mark: | :x: | :x: | :x: | Partial | :white_check_mark: |
499
+ | SDC / co-located styles | :white_check_mark: | :x: | :white_check_mark: | :x: | :x: | :x: | :white_check_mark: |
500
+ | Setup complexity | `npm create` | `brew install` | Docker + server | PHP + MySQL | Node + DB | `npm create` | **`npx barka create`** |
501
+ | Hosting cost | $0 | $0 | $10-50/mo | $5-30/mo | $10-30/mo | $0 | **$0-5/mo** |
502
+
503
+ ---
504
+
505
+ # Project Structure
506
+
507
+ ```
508
+ my-site/
509
+ ├── content/ # Your content (Markdown + YAML) — user-owned
510
+ │ ├── articles/ # 22 articles (+ .pl.md translations)
511
+ │ ├── pages/ # Static pages (about, contact + PL)
512
+ │ ├── services/ # 7 service pages (+ PL)
513
+ │ ├── case-studies/ # 9 case studies (+ PL)
514
+ │ ├── industries/ # Industry pages
515
+ │ ├── landing-pages/ # Homepage and landing pages (YAML + PL)
516
+ │ ├── team/ # Team member profiles
517
+ │ └── locations/ # Office locations
518
+ ├── config/ # Configuration (YAML) — user-owned
519
+ │ ├── settings.yaml # Site name, theme, SEO
520
+ │ ├── content-types.yaml # 8 content types with fields
521
+ │ ├── section-types.yaml # Section type definitions
522
+ │ ├── languages.yaml # en, pl, de
523
+ │ ├── taxonomies.yaml # Vocabularies and terms
524
+ │ ├── sites.yaml # Multi-site domains
525
+ │ └── translations/ # UI strings per locale (en.yaml, pl.yaml, …)
526
+ ├── themes/ # Themes (Hono JSX + SDC) — user-owned
527
+ │ ├── lokatech/ # Premium theme
528
+ │ │ ├── theme.yaml # Theme config and settings
529
+ │ │ ├── layouts/ # 14 layout templates
530
+ │ │ ├── components/ # 15 SDC section components
531
+ │ │ │ ├── hero/ # hero.tsx + hero.css + schema.yaml
532
+ │ │ │ ├── features/ # features.tsx + features.css + schema.yaml
533
+ │ │ │ └── ...
534
+ │ │ └── static/ # CSS, images, fonts
535
+ │ └── starter/ # Base theme (fallback)
536
+ ├── starters/ # Starter profiles (framework-managed)
537
+ │ ├── lokatech/ # Enterprise demo distribution
538
+ │ └── blank/ # Clean starting point
539
+ ├── src/ # Framework source code
540
+ │ ├── lib/ # Content engine, i18n, themes, SEO
541
+ │ ├── built-in-theme/ # Minimal fallback theme
542
+ │ └── cli/ # CLI commands
543
+ ├── public/ # Static assets
544
+ └── dist/ # Build output (generated)
545
+ ```
546
+
547
+ ---
548
+
549
+ # Contributing
550
+
551
+ Barka is an open source project and we welcome contributions. If you're interested in contributing, please read our contributing guide.
552
+
553
+ Found a bug or have a feature idea? [Create an issue](https://github.com/barkajs/barka/issues).
554
+
555
+ ---
556
+
557
+ # Resources
558
+
559
+ - [GitHub Repository](https://github.com/barkajs/barka)
560
+ - [Issue Tracker](https://github.com/barkajs/barka/issues)
561
+
562
+ ---
563
+
564
+ # License
565
+
566
+ [MIT](LICENSE)
package/dist/app.d.ts ADDED
@@ -0,0 +1,22 @@
1
+ import { Hono } from 'hono';
2
+ import { type ContentEngine } from './content-engine.js';
3
+ import { type SiteDefinition } from './lib/multisite.js';
4
+ type AppVariables = {
5
+ site: SiteDefinition | null;
6
+ siteId: string | undefined;
7
+ };
8
+ export declare function createApp(options: {
9
+ contentDir: string;
10
+ configDir: string;
11
+ themesDir: string;
12
+ publicDir: string;
13
+ dataDir: string;
14
+ distDir?: string;
15
+ }): {
16
+ app: Hono<{
17
+ Variables: AppVariables;
18
+ }>;
19
+ engine: ContentEngine;
20
+ };
21
+ export {};
22
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAK5B,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAgB7B,OAAO,EAA+C,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AActG,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,CAAC;AAEF,wBAAgB,SAAS,CAAC,OAAO,EAAE;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG;IAAE,GAAG,EAAE,IAAI,CAAC;QAAE,SAAS,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,CA6fpE"}