- Je na čase pozvednout vaši infrastrukturu na dnešní standardy.
- Vaše infrastruktura by měla nabídnout Vaši aplikaci světu, ne ji držet zpátky.
+ Je na čase pozvednout vaši infrastrukturu na dnešní standardy. Vaše
+ infrastruktura by měla nabídnout Vaši aplikaci světu, ne ji držet
+ zpátky.
-
- )
+ );
}
diff --git a/components/TechStack.tsx b/components/TechStack.tsx
index 2ac4c64..ba32b83 100644
--- a/components/TechStack.tsx
+++ b/components/TechStack.tsx
@@ -1,122 +1,125 @@
-import { ReactNode } from 'react'
-import Image, { StaticImageData } from 'next/image'
-import { Tab } from '@headlessui/react'
-import clsx from 'clsx'
+import { ReactNode } from "react";
+import Image, { StaticImageData } from "next/image";
+import { Tab } from "@headlessui/react";
+import clsx from "clsx";
-import { Container } from '@/components/Container'
+import { Container } from "@/components/Container";
+import screenshotArgoCD from "@/images/screenshots/argocd.png";
+import screenshotGitLab from "@/images/screenshots/gitlab.png";
+import screenshotTerraform from "@/images/screenshots/terraform.png";
+import screenshotKubernetes from "@/images/screenshots/kubernetes.png";
+import screenshotGrafana from "@/images/screenshots/grafana.png";
+import screenshotPrometheus from "@/images/screenshots/prometheus.png";
-import screenshotArgoCD from '@/images/screenshots/argocd.png'
-import screenshotGitLab from '@/images/screenshots/gitlab.png'
-import screenshotTerraform from '@/images/screenshots/terraform.png'
-import screenshotKubernetes from '@/images/screenshots/kubernetes.png'
-import screenshotGrafana from '@/images/screenshots/grafana.png'
-import screenshotPrometheus from '@/images/screenshots/prometheus.png'
-
-import logoTerraform from '@/images/logos/tools/terraform.svg'
-import logoGit from '@/images/logos/tools/git.svg'
-import logoKubernetes from '@/images/logos/tools/kubernetes.svg'
-import logoPrometheus from '@/images/logos/tools/prometheus.svg'
-import logoArgo from '@/images/logos/tools/argo.svg'
-import logoGrafana from '@/images/logos/tools/grafana.svg'
-
+import logoTerraform from "@/images/logos/tools/terraform.svg";
+import logoGit from "@/images/logos/tools/git.svg";
+import logoKubernetes from "@/images/logos/tools/kubernetes.svg";
+import logoPrometheus from "@/images/logos/tools/prometheus.svg";
+import logoArgo from "@/images/logos/tools/argo.svg";
+import logoGrafana from "@/images/logos/tools/grafana.svg";
const features = [
{
- name: 'Verzování',
- summary:
- 'Spravujte svůj kód pomocí verzovacího nástroje Git.',
+ name: "Verzování",
+ summary: "Spravujte svůj kód pomocí verzovacího nástroje Git.",
description:
- 'Mějte historii změn v aplikaci od začátku až do dnes, můžete se kdykoliv vrátit do bodu v čase. Řešte konflikty včas, předtím než je nasadíte do produkce a umožněte vaším programátorům spolupracovat na jednou, aniž by si překáželi.',
+ "Mějte historii změn v aplikaci od začátku až do dnes, můžete se kdykoliv vrátit do bodu v čase. Řešte konflikty včas, předtím než je nasadíte do produkce a umožněte vaším programátorům spolupracovat na jednou, aniž by si překáželi.",
image: screenshotGitLab,
icon: logoGit,
},
{
- name: 'Infastruktura jako kód',
- summary: 'Mějte vaši infrastrukturu deklarativně definovanou a verzovanou, díky Terraformu.',
+ name: "Infastruktura jako kód",
+ summary:
+ "Mějte vaši infrastrukturu deklarativně definovanou a verzovanou, díky Terraformu.",
description:
- 'Vaši infrastrukturu můžete snadno přesunout k jinému poskytovateli, a nebo jen vytvořit nové prostředí pro zákazníka, aby si váš produkt vyzkoušel a to během minut.',
+ "Vaši infrastrukturu můžete snadno přesunout k jinému poskytovateli, a nebo jen vytvořit nové prostředí pro zákazníka, aby si váš produkt vyzkoušel a to během minut.",
image: screenshotTerraform,
icon: logoTerraform,
},
{
- name: 'Orchestrace',
+ name: "Orchestrace",
summary:
- 'Nechte vaši aplikaci běžet napříč mnoha servery a škálovat dle potřeb.',
+ "Nechte vaši aplikaci běžet napříč mnoha servery a škálovat dle potřeb.",
description:
- 'Kubernetes se stalo nejen standardem, ale i hlavní platformou pro vývoj aplikací ať SaaS nebo dodávaných třetím stranám. Jde o skvělou platformu pro provoz vaší aplikace ať ve veřejném cloudu nebo na vlastním hardwaru popř. on edge blízko koncových uživatelů.',
+ "Kubernetes se stalo nejen standardem, ale i hlavní platformou pro vývoj aplikací ať SaaS nebo dodávaných třetím stranám. Jde o skvělou platformu pro provoz vaší aplikace ať ve veřejném cloudu nebo na vlastním hardwaru popř. on edge blízko koncových uživatelů.",
image: screenshotKubernetes,
icon: logoKubernetes,
},
{
- name: 'Monitoring',
- summary:
- 'Sledujte Vaši aplikaci, jak se chová v čase.',
+ name: "Monitoring",
+ summary: "Sledujte Vaši aplikaci, jak se chová v čase.",
description:
- 'Prometheus je standard pro monitoring aplikací, ať v Kubernetes ale i mimo. Sbírejte telemetrická data v čase o vaši aplikaci. Vyhodnoťte, kde má vaše aplikace slabá místa. Zároveň můžete tvořit pravidla, dle kterých vás AlertManager upozorní, když se něco pokazí.',
+ "Prometheus je standard pro monitoring aplikací, ať v Kubernetes ale i mimo. Sbírejte telemetrická data v čase o vaši aplikaci. Vyhodnoťte, kde má vaše aplikace slabá místa. Zároveň můžete tvořit pravidla, dle kterých vás AlertManager upozorní, když se něco pokazí.",
image: screenshotPrometheus,
icon: logoPrometheus,
},
{
- name: 'Vizualizace',
+ name: "Vizualizace",
summary:
- 'Od grafů zatížení procesoru po počet otevřených TCP spojení, vše jasně a přehledně.',
+ "Od grafů zatížení procesoru po počet otevřených TCP spojení, vše jasně a přehledně.",
description:
- 'Grafana je skvělý nástroj pro vizualizaci dat z monitoringu, vytvořte si dashboardy pro jednotlivé části vaší aplikace, mějte pohromadě infrastrukturu, provoz na síti, dostupnost a třeba počet neúspěšných pokusů o přihlášení, zda vůči vaší aplikaci neprobíhá hackerský útok.',
+ "Grafana je skvělý nástroj pro vizualizaci dat z monitoringu, vytvořte si dashboardy pro jednotlivé části vaší aplikace, mějte pohromadě infrastrukturu, provoz na síti, dostupnost a třeba počet neúspěšných pokusů o přihlášení, zda vůči vaší aplikaci neprobíhá hackerský útok.",
image: screenshotGrafana,
icon: logoGrafana,
},
{
- name: 'GitOps',
+ name: "GitOps",
summary:
- 'Spravujte stav Vašich prostředí deklarativně, ať vždy víte, jaký je aktuální stav.',
+ "Spravujte stav Vašich prostředí deklarativně, ať vždy víte, jaký je aktuální stav.",
description:
- 'ArgoCD je spolehlivý nástroj pro práci s Kubernetes a nasazováním změn a přitom si udržovat přehled o právě nasazených aplikacích, verzím a konfiguraci, snadno, soplehlivě, verzovaně.',
+ "ArgoCD je spolehlivý nástroj pro práci s Kubernetes a nasazováním změn a přitom si udržovat přehled o právě nasazených aplikacích, verzím a konfiguraci, snadno, soplehlivě, verzovaně.",
image: screenshotArgoCD,
icon: logoArgo,
},
-]
+];
type FeatureType = {
- name: string|ReactNode,
- summary: string,
- description: string,
- image: StaticImageData,
- icon: any,
-}
+ name: string | ReactNode;
+ summary: string;
+ description: string;
+ image: StaticImageData;
+ icon: any;
+};
type FeatureProps = {
- feature: FeatureType,
- isActive: boolean,
- className?: string,
- props?: any,
-}
+ feature: FeatureType;
+ isActive: boolean;
+ className?: string;
+ props?: any;
+};
-function Feature({ feature, isActive, className, ...props }: FeatureProps ) {
+function Feature({ feature, isActive, className, ...props }: FeatureProps) {
return (
-
+ )}
+ alt=""
+ />
{feature.name}
-
+
{feature.summary}
{feature.description}
- )
+ );
}
function FeaturesMobile() {
@@ -141,7 +144,7 @@ function FeaturesMobile() {
))}
- )
+ );
}
function FeaturesDesktop() {
@@ -167,15 +170,15 @@ function FeaturesDesktop() {
/>
))}
-
+
{features.map((feature, featureIndex) => (
))}
-
+
>
)}
- )
+ );
}
export function TechStack() {
@@ -214,13 +217,13 @@ export function TechStack() {
Open Source DevOps stack
- Věřím v Open Source technologie, prakticky všichni je denně využíváme
- a jsou naší budoucností.
+ Věřím v Open Source technologie, prakticky všichni je denně
+ využíváme a jsou naší budoucností.
- )
+ );
}
diff --git a/components/Testimonials.tsx b/components/Testimonials.tsx
index 690e3ac..4d63df0 100644
--- a/components/Testimonials.tsx
+++ b/components/Testimonials.tsx
@@ -1,29 +1,29 @@
-import Image from 'next/image'
+import Image from "next/image";
-import { Container } from '@/components/Container'
-import avatarImage1 from '@/images/avatars/avatar-1.png'
-import avatarImage2 from '@/images/avatars/avatar-2.png'
-import avatarImage3 from '@/images/avatars/avatar-3.png'
-import avatarImage4 from '@/images/avatars/avatar-4.png'
-import avatarImage5 from '@/images/avatars/avatar-5.png'
+import { Container } from "@/components/Container";
+import avatarImage1 from "@/images/avatars/avatar-1.png";
+import avatarImage2 from "@/images/avatars/avatar-2.png";
+import avatarImage3 from "@/images/avatars/avatar-3.png";
+import avatarImage4 from "@/images/avatars/avatar-4.png";
+import avatarImage5 from "@/images/avatars/avatar-5.png";
const testimonials = [
[
{
content:
- 'TaxPal is so easy to use I can’t help but wonder if it’s really doing the things the government expects me to do.',
+ "TaxPal is so easy to use I can’t help but wonder if it’s really doing the things the government expects me to do.",
author: {
- name: 'Sheryl Berge',
- role: 'CEO at Lynch LLC',
+ name: "Sheryl Berge",
+ role: "CEO at Lynch LLC",
image: avatarImage1,
},
},
{
content:
- 'I’m trying to get a hold of someone in support, I’m in a lot of trouble right now and they are saying it has something to do with my books. Please get back to me right away.',
+ "I’m trying to get a hold of someone in support, I’m in a lot of trouble right now and they are saying it has something to do with my books. Please get back to me right away.",
author: {
- name: 'Amy Hahn',
- role: 'Director at Velocity Industries',
+ name: "Amy Hahn",
+ role: "Director at Velocity Industries",
image: avatarImage4,
},
},
@@ -31,19 +31,19 @@ const testimonials = [
[
{
content:
- 'The best part about TaxPal is every time I pay my employees, my bank balance doesn’t go down like it used to. Looking forward to spending this extra cash when I figure out why my card is being declined.',
+ "The best part about TaxPal is every time I pay my employees, my bank balance doesn’t go down like it used to. Looking forward to spending this extra cash when I figure out why my card is being declined.",
author: {
- name: 'Leland Kiehn',
- role: 'Founder of Kiehn and Sons',
+ name: "Leland Kiehn",
+ role: "Founder of Kiehn and Sons",
image: avatarImage5,
},
},
{
content:
- 'There are so many things I had to do with my old software that I just don’t do at all with TaxPal. Suspicious but I can’t say I don’t love it.',
+ "There are so many things I had to do with my old software that I just don’t do at all with TaxPal. Suspicious but I can’t say I don’t love it.",
author: {
- name: 'Erin Powlowski',
- role: 'COO at Armstrong Inc',
+ name: "Erin Powlowski",
+ role: "COO at Armstrong Inc",
image: avatarImage2,
},
},
@@ -51,31 +51,31 @@ const testimonials = [
[
{
content:
- 'I used to have to remit tax to the EU and with TaxPal I somehow don’t have to do that anymore. Nervous to travel there now though.',
+ "I used to have to remit tax to the EU and with TaxPal I somehow don’t have to do that anymore. Nervous to travel there now though.",
author: {
- name: 'Peter Renolds',
- role: 'Founder of West Inc',
+ name: "Peter Renolds",
+ role: "Founder of West Inc",
image: avatarImage3,
},
},
{
content:
- 'This is the fourth email I’ve sent to your support team. I am literally being held in jail for tax fraud. Please answer your damn emails, this is important.',
+ "This is the fourth email I’ve sent to your support team. I am literally being held in jail for tax fraud. Please answer your damn emails, this is important.",
author: {
- name: 'Amy Hahn',
- role: 'Director at Velocity Industries',
+ name: "Amy Hahn",
+ role: "Director at Velocity Industries",
image: avatarImage4,
},
},
],
-]
+];
function QuoteIcon(props: any) {
return (
- )
+ );
}
export function Testimonials() {
@@ -140,5 +140,5 @@ export function Testimonials() {
- )
+ );
}
diff --git a/components/Training.tsx b/components/Training.tsx
index a820d68..69055f0 100644
--- a/components/Training.tsx
+++ b/components/Training.tsx
@@ -1,45 +1,66 @@
-import Image from "next/image"
+import Image from "next/image";
-import TrainingType from "@/types/training"
-import { Container } from "./Container"
-import { Button } from "./Button"
+import TrainingType from "@/types/training";
+import { Container } from "./Container";
+import { Button } from "./Button";
type Props = {
- training: TrainingType
-}
+ training: TrainingType;
+};
export const Training = ({ training }: Props) => {
- const formatter = new Intl.NumberFormat('cs', { style: 'currency', currency: 'CZK', maximumFractionDigits: 0})
+ const formatter = new Intl.NumberFormat("cs", {
+ style: "currency",
+ currency: "CZK",
+ maximumFractionDigits: 0,
+ });
return (
<>
-
+
-
-
+
+
Školení {training.name}
-
-
+
+
-
+
-
+
-
- { training.days === 2 ? (
-
+
+ {training.days === 2 ? (
+
{/* */}
-
- Toto školení je{' '}
+ Toto školení je{" "}
dvoudenní.
@@ -47,20 +68,32 @@ export const Training = ({ training }: Props) => {
- ) : <>>}
-
+ ) : (
+ <>>
+ )}
+
-
Cena za školení
+
+ Cena za školení
+
-
Veřejný termín
-
{formatter.format(training.priceOpen)} bez DPH
+
+ Veřejný termín
+
+
+ {formatter.format(training.priceOpen)} bez DPH
+
-
Firemní školení
-
{formatter.format(training.priceCompany)} bez DPH
+
+ Firemní školení
+
+
+ {formatter.format(training.priceCompany)} bez DPH
+
@@ -80,5 +113,5 @@ export const Training = ({ training }: Props) => {
- Od veřejného cloudu přes on-premise až po serverless, se vším vám poradím.
+ Od veřejného cloudu přes on-premise až po serverless, se vším vám
+ poradím.