Compare commits

...

10 Commits

Author SHA1 Message Date
jeangab
5ad389dc8a feat(sreez): Add Dockerfile and helm chart 2024-04-12 16:05:50 -04:00
jeangab
1f057819bf feat: Fix alternating blocks on large screens 2024-04-12 16:05:21 -04:00
jeangab
f4b284606e feat: Sreez landing page v1 ready to go online 2024-04-12 14:21:44 -04:00
jeangab
9707bbafd9 feat: Sreez website maybe ready for initial release 2024-04-11 17:01:12 -04:00
jeangab
0d5a8334c8 feat: SREEZ, play with fonts and improve loook 2024-04-09 16:46:06 -04:00
5cf4501069 feat: New landing page first draft is up 2024-04-08 23:33:32 -04:00
jeangab
1911630fc4 Work on new landing page content 2024-04-05 17:22:47 -04:00
Jean-Gabriel Gill-Couture
84adc85b59 Work on new landing page content, including package 2024-04-04 23:22:19 -04:00
Jean-Gabriel Gill-Couture
e4b6346938 Working on landing page content 2024-04-03 23:08:41 -04:00
Jean-Gabriel Gill-Couture
3abbb61187 wip(sreez): initial offer landing page improving 2024-03-07 08:33:29 -05:00
53 changed files with 1489 additions and 468 deletions

95
CONTENT.md Normal file
View File

@ -0,0 +1,95 @@
# Accelerate your Software Delivery with SREEZ, your DevOps Sidekick 🍒
Are you struggling to keep up with your ever-growing DeOps toolchain and delivery processes ?
Unleash your full potential with NationTech's expert driven DevOps + SRE tools and services.
### What
Our platform engineering team will provide you with the tools that are only accessible by businesses hiring large dedicated teams.
### How
We build an efficient and scalable platform targeted at small to medium teams using the best practices in platform engineering, all based on fully open-source tools so you're never locked-in.
## Hire the best
Our team builds upon 50 years of passion for the entire software stack.
We've built, migrated and operated development and production platforms for companies of all sizes, from 1 to 300 000 employees.
Our team has deep expertise in anything deployment, automation, production management, migration, distributed systems, databases, backup, AI models customization and deployment, backend development, 3D printing, embedded programming, Linux administration, Kubernetes administration and much more
## Spending too much time and effort on your tooling ?
We understand the challenges small teams face in adopting DevOps practices. The principle of flow states that you should always strive to improve your lead time for changes and we help you do that by continuously improving your delivery times.
Our platform is specifically designed to alleviate the unnecessary burdens, allowing you to focus on what matters most - building great software.
## Stop accepting tools that are "just ok"
- Benefit right now from the same sophisticated tools as big corporations like Google, Spotify or RedHat
- Unlock yourself from closed platforms and providers that earn more when you use inefficient tools and processes
- Deliver more consistently with robust tools that can scale with your needs
- Don't fear the complexity of a large scale platform : we handle it for you and define the simplest and most efficient interfaces for your needs
## Delivering faster means a winning business : join the Elite
DORA (DevOps Research and Assessment) State of DevOps Report found that :
- Elite performers (those in the top 20% for the four metrics) deliver changes 973x faster than the bottom 20%
- Elite performers restore their services 6,570x faster than bottom 20%
- Elite performers have change failure rates 6.6x lower despite the much higher delivery rate than the bottom 20%
By providing a comprehensive software delivery platform and expert services aligned with DevOps and SRE best practives, NationTech helps organizations become Elite and gain a competitive edge in their market.
## Unleash Your Team's full Potential - Start Today
Don't let outdated processes and tools hold your team back from delivering software at the speed of innovation
Schedule a Demo
## Where is all this going : The Roadmap
The kind of features we're working on for your team :
- Automated infrastructure optimization - Reduce costs thanks to automatic serverless downscaling to zero and other optimizations
- One-click deployment pipelines - With a simple click, generate fully-configured CI/CD/SRE enabled projects tailored to your tech stack
- Automatic migration - Drag and drop an existing project in our import tool to benefit from the same State-Of-The-Art CI/CD/SRE platform as a fresh new project
- AI Assisted operations - Leverage advanced AI/ML capabilities for intelligent monitoring, anomaly detection, self-healing infrastructure and predictive scaling. Pioneers can provide real-world data to train our AI models.
- Unified security management - Centrally manage security policies, secrets, networking rules and compliance across your entire cloud estate.
## Early adopter program
Join the early adopter program : 3 spots left!
This includes a complete NationTech package including our platform, hosting and services.
Here is our suggested base package, customize it to your needs !
### Services
- Get 30 hours consulting per month on your specific Platform Engineering, DevOps, Coaching and SRE needs
- 24/7 monitoring and 2h incident response
- Unlimited support via chat and phone calls in french and english
### Platform
- Fully managed, Kubernetes Cluster and SREEZ platform
- Be part of the SREEZ founding group : the features that matter most to you will get prioritized
### Hosting on the most sustainable infrastructure
- Hosting of 16GB GPU Ram for AI models that we set up for you
- Custom chatbots and search engines trained on your own private data
- Image generation models
- Other open-source and custom models
- Hosting in our datacenter network of 20TB Storage, 100 CPU cores, 200GB RAM
- 5x lower energy consumption than the most efficient large datacenters
CONTACT US :
Email : sreez@nationtech.io
Discord : https://discord.gg/w3JDpvVTMw
LinkedIn : https://www.linkedin.com/company/nationtech-io/

51
CONTENT_claude3sonnet.md Normal file
View File

@ -0,0 +1,51 @@
# Accelerate Your Software Delivery with SREEZ, Your DevOps Sidekick 🍒
Are you tired of wrestling with outdated DevOps tools and processes that slow down your team? Say goodbye to unnecessary friction and unleash your full potential with NationTech's cutting-edge software delivery platform.
## The Struggle is Real 😩
As a developer or engineering leader, you know the pain points all too well:
- **Spending too much time** configuring and maintaining complex CI/CD pipelines instead of building awesome products
- Being **locked into inefficient tools** from big providers that make more money the slower you go
- Struggling to keep up with the latest DevOps and SRE best practices across your growing team
- Dealing with unpredictable delivery times and stability issues that frustrate customers
But fear not, our cherry-picking experts are here to help! 🍒
## Unlock Your Superpowers with NationTech 🚀
We're a passionate team of DevOps wizards and sustainability champions on a mission to reinvent cloud computing. Our innovative distributed micro data center network delivers powerful, eco-friendly solutions while pushing the boundaries of what's possible.
With NationTech, you'll gain access to:
**A comprehensive software delivery platform**: Benefit from the same sophisticated open-source tools used by tech giants like Google, but tailored for small to medium teams. No more compromises!
🧙 **Expert migration and DevOps services**: Our team has 50+ years of combined experience across the entire tech stack. We'll help you adopt cutting-edge practices and migrate seamlessly.
**Lightning-fast deployment**: Using our platform, elite performers deliver changes 973x faster than the bottom 20%. Imagine the competitive edge for your business!
🛡️ **Robust reliability**: With intelligent self-healing infrastructure and predictive scaling, you'll see 6,570x faster restores and 6.6x lower failure rates.
🌳 **Sustainable computing**: Our distributed micro data centers reuse energy for heating, slashing emissions while keeping your ops costs low.
## See the Future, Today 🔮
The NationTech roadmap is filled with game-changing innovations:
- 💥 Automated infrastructure optimization to reduce costs
- ⌛ One-click, fully configured CI/CD pipelines for any stack
- 🔃 Seamless migration of existing projects to our platform
- 🤖 AI-assisted operations for intelligent monitoring and self-healing
- 🔐 Unified security management across your cloud estate
## Join the Elite & Become a Legend 💎
Don't let outdated processes hold you back from industry-leading delivery speeds. **Sign up for our early adopter program today and be among the first to experience the full power of the NationTech platform!**
Together, we'll blaze a trail toward a future of sustainable, streamlined software operations. The journey starts now - are you ready to make history?
**Start Your Acceleration:**
1. Schedule a Demo
2. Email us: sreez@nationtech.io
3. Join our Discord: https://discord.gg/w3JDpvVTMw

38
CONTENT_v1.md Normal file
View File

@ -0,0 +1,38 @@
# Accelerate your Software Delivery with Expert DevOps Solutions
We empower small to medium sized teams with expert-driven DevOps tools and services. Our customers reduce their time-to-market through our comprehensive software delivery platform, expert migration service and Site Reliability Engineering (SRE) best practices.
## Hire the best
Our team builds upon 50 years of passion for the entire software stack.
They've built, migrated and operated development and production platforms for companies of all sizes, from 1 to 300 000 employees.
## Spending too much time and effort on your tooling ?
We understand the challenges small teams face in adopting DevOps practices. The principle of flow states that you should always strive to improve your lead time for changes and we help you do that by continuously improving your delivery times.
Our platform is specifically designed to alleviate the unnecessary burdens, allowing you to focus on what matters most - building great software.
## Achieve more
- Stop wasting energy trying to find the best tool and never fully utilize it
- Stop wasting hours every time you create a project to find the new best practices and libraries
- Stop getting lost in cryptic build and deployment failures
- Stop missing deadlines because your team spent weeks building and maintaining your pipeline
## Delivering faster means a winning business
DORA (DevOps Research and Assessment) State of DevOps Report found that :
- Elite performers (those in the top 20% for the four metrics) deliver changes 973x faster than the bottom 20%
- Elite performers restore their services 6,570x faster than bottom 20%
- Elite performers have change failure rates 6.6x lower despite the much higher delivery rate than the bottom 20%
By providing a comprehensive software delivery platform and expert services aligned with DevOps and SRE best practives, NationTech helps organizations become Elite and gain a competitive edge in their market.
## Unleash Your Team's full Potential - Start Today
Don't let outdated processes and tools hold your team back from delivering software at the speed of innovation
Schedule a Demo

85
CONTENT_v2.md Normal file
View File

@ -0,0 +1,85 @@
# Accelerate your Software Delivery with Expert DevOps Solutions
We empower small to medium sized teams with expert-driven DevOps tools and services. Our customers reduce their time-to-market through our comprehensive software delivery platform, expert migration service and Site Reliability Engineering (SRE) best practices.
## Hire the best
Our team builds upon 50 years of passion for the entire software stack.
We've built, migrated and operated development and production platforms for companies of all sizes, from 1 to 300 000 employees.
Our team has deep expertise in anything deployment, automation, production management, migration, distributed systems, databases, backup, AI models customization and deployment, backend development, 3D printing, embedded programming, Linux administration, Kubernetes administration and much more
## Spending too much time and effort on your tooling ?
We understand the challenges small teams face in adopting DevOps practices. The principle of flow states that you should always strive to improve your lead time for changes and we help you do that by continuously improving your delivery times.
Our platform is specifically designed to alleviate the unnecessary burdens, allowing you to focus on what matters most - building great software.
## Stop accepting tools that are "just ok"
- Benefit right now from the same sophisticated tools as big corporations like Google, Spotify or RedHat
- Unlock yourself from closed platforms and providers that earn more when you use inefficient tools and processes
- Deliver more consistently with robust tools that can scale with your needs
- Don't fear the complexity of a large scale platform : we handle it for you and define the simplest and most efficient interfaces for your needs
## Delivering faster means a winning business : join the Elite
DORA (DevOps Research and Assessment) State of DevOps Report found that :
- Elite performers (those in the top 20% for the four metrics) deliver changes 973x faster than the bottom 20%
- Elite performers restore their services 6,570x faster than bottom 20%
- Elite performers have change failure rates 6.6x lower despite the much higher delivery rate than the bottom 20%
By providing a comprehensive software delivery platform and expert services aligned with DevOps and SRE best practives, NationTech helps organizations become Elite and gain a competitive edge in their market.
## Unleash Your Team's full Potential - Start Today
Don't let outdated processes and tools hold your team back from delivering software at the speed of innovation
Schedule a Demo
## Where is all this going : The Roadmap
The kind of features we're working on for your team :
- Automated infrastructure optimization - Reduce costs thanks to automatic serverless downscaling to zero and other optimizations
- One-click deployment pipelines - With a simple click, generate fully-configured CI/CD/SRE enabled projects tailored to your tech stack
- Automatic migration - Drag and drop an existing project in our import tool to benefit from the same State-Of-The-Art CI/CD/SRE platform as a fresh new project
- AI Assisted operations - Leverage advanced AI/ML capabilities for intelligent monitoring, anomaly detection, self-healing infrastructure and predictive scaling. Pioneers can provide real-world data to train our AI models.
- Unified security management - Centrally manage security policies, secrets, networking rules and compliance across your entire cloud estate.
## Early adopter program
Join the early adopter program : 3 spots left!
This includes a complete NationTech package including our platform, hosting and services.
Here is our suggested base package, customize it to your needs !
### Services
- Get 30 hours consulting per month on your specific Platform Engineering, DevOps, Coaching and SRE needs
- 24/7 monitoring and 2h incident response
- Unlimited support via chat and phone calls in french and english
### Platform
- Fully managed, Kubernetes Cluster and SREEZ platform
- Be part of the SREEZ founding group : the features that matter most to you will get prioritized
### Hosting on the most sustainable infrastructure
- Hosting of 16GB GPU Ram for AI models that we set up for you
- Custom chatbots and search engines trained on your own private data
- Image generation models
- Other open-source and custom models
- Hosting in our datacenter network of 20TB Storage, 100 CPU cores, 200GB RAM
- 5x lower energy consumption than the most efficient large datacenters
CONTACT US :
Email : sreez@nationtech.io
Discord : https://discord.gg/w3JDpvVTMw
LinkedIn : https://www.linkedin.com/company/nationtech-io/

686
sreez/Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
[package]
name = "nationtech-io"
name = "sreez"
version = "0.1.0"
edition = "2021"
@ -15,7 +15,7 @@ leptos = { version = "0.6", features = ["nightly"] }
leptos_meta = { version = "0.6", features = ["nightly"] }
leptos_actix = { version = "0.6", optional = true }
leptos_router = { version = "0.6", features = ["nightly"] }
wasm-bindgen = "=0.2.89"
wasm-bindgen = "=0.2.92"
[features]
csr = ["leptos/csr", "leptos_meta/csr", "leptos_router/csr"]
@ -39,7 +39,7 @@ panic = "abort"
[package.metadata.leptos]
# The name used by wasm-bindgen/cargo-leptos for the JS/WASM bundle. Defaults to the crate name
output-name = "nationtech-io"
output-name = "sreez"
# The site root folder is where cargo-leptos generate all output. WARNING: all content of this folder will be erased on a rebuild. Use it in your server setup.
site-root = "target/site"
# The site-root relative folder where all compiled output (JS, WASM and CSS) is written

55
sreez/Dockerfile Normal file
View File

@ -0,0 +1,55 @@
# Get started with a build env with Rust nightly
FROM rustlang/rust:nightly-bullseye as base
# If youre using stable, use this instead
# FROM rust:1.74-bullseye as builder
# Install cargo-binstall, which makes it easier to install other
# cargo extensions like cargo-leptos
RUN wget https://github.com/cargo-bins/cargo-binstall/releases/latest/download/cargo-binstall-x86_64-unknown-linux-musl.tgz
RUN tar -xvf cargo-binstall-x86_64-unknown-linux-musl.tgz
RUN cp cargo-binstall /usr/local/cargo/bin
# Install cargo-leptos
RUN cargo binstall cargo-leptos -y
# Add the WASM target
RUN rustup target add wasm32-unknown-unknown
# Make an /app dir, which everything will eventually live in
RUN mkdir -p /app
WORKDIR /app
FROM base as builder
# Build the app
COPY . .
RUN cargo leptos build --release -vv
FROM debian:bookworm-slim as runtime
WORKDIR /app
RUN apt-get update -y \
&& apt-get install -y --no-install-recommends openssl ca-certificates \
&& apt-get autoremove -y \
&& apt-get clean -y \
&& rm -rf /var/lib/apt/lists/*
# -- NB: update binary name from "leptos_start" to match your app name in Cargo.toml --
# Copy the server binary to the /app directory
COPY --from=builder /app/target/release/sreez /app/
# /target/site contains our JS/WASM/CSS, etc.
COPY --from=builder /app/target/site /app/site
# Copy Cargo.toml if its needed at runtime
COPY --from=builder /app/Cargo.toml /app/
# Set any required env variables and
ENV RUST_LOG="info"
ENV LEPTOS_SITE_ADDR="0.0.0.0:8080"
ENV LEPTOS_SITE_ROOT="site"
EXPOSE 8080
# -- NB: update binary name from "leptos_start" to match your app name in Cargo.toml --
# Run the server
CMD ["/app/sreez"]

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"></path></svg>

After

Width:  |  Height:  |  Size: 681 B

View File

@ -0,0 +1,7 @@
<svg fill="#000000" height="800px" width="800px" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512" xml:space="preserve">
<g>
<g>
<path d="M256,0C114.62,0,0,114.62,0,256s114.62,256,256,256s256-114.62,256-256S397.38,0,256,0z M172.211,41.609 c-24.934,27.119-44.68,66.125-56.755,111.992H49.749C75.179,102.741,118.869,62.524,172.211,41.609z M25.6,256 c0-26.999,5.077-52.727,13.662-76.8h70.494c-4.608,24.294-7.356,49.963-7.356,76.8s2.748,52.506,7.347,76.8H39.262 C30.677,308.727,25.6,283,25.6,256z M49.749,358.4h65.707c12.083,45.867,31.821,84.872,56.755,111.991 C118.869,449.476,75.179,409.259,49.749,358.4z M243.2,485.188c-43.81-8.252-81.877-58.24-101.359-126.788H243.2V485.188z M243.2,332.8H135.74c-4.924-24.166-7.74-49.997-7.74-76.8s2.816-52.634,7.74-76.8H243.2V332.8z M243.2,153.6H141.841 C161.323,85.052,199.39,35.063,243.2,26.812V153.6z M462.251,153.6h-65.707c-12.083-45.867-31.821-84.873-56.755-111.992 C393.131,62.524,436.821,102.741,462.251,153.6z M268.8,26.812c43.81,8.252,81.877,58.24,101.359,126.788H268.8V26.812z M268.8,179.2h107.46c4.924,24.166,7.74,49.997,7.74,76.8s-2.816,52.634-7.74,76.8H268.8V179.2z M268.8,485.188V358.4h101.359 C350.677,426.948,312.61,476.937,268.8,485.188z M339.789,470.391c24.934-27.127,44.672-66.125,56.755-111.991h65.707 C436.821,409.259,393.131,449.476,339.789,470.391z M402.244,332.8c4.608-24.294,7.356-49.963,7.356-76.8 s-2.748-52.506-7.347-76.8h70.494c8.576,24.073,13.653,49.801,13.653,76.8c0,27-5.077,52.727-13.662,76.8H402.244z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

View File

@ -0,0 +1,16 @@
let h = window.location.hostname;
if (h === "localhost" || h.match(/\.\d\d\d$/)) {
console.log('Matomo tracking disabled, seems to be running on a development hostname', h);
} else {
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//matomo.qc1.nationtech.io/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '1']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
}

BIN
sreez/assets/sreez_logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 712 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 717 KiB

18
sreez/build_docker.sh Executable file
View File

@ -0,0 +1,18 @@
#!/bin/bash
if [[ -z "${1}" ]]
then
echo "Specify the image tag as first argument to this script"
exit 1
fi
REGISTRY=registry.nationtech.io
IMAGE_NAME=sreez-website
TAG="${1}"
IMAGE="${REGISTRY}/${IMAGE_NAME}:${TAG}"
echo "Going to build and push image ${IMAGE}"
docker build -t "${IMAGE}" .
# docker push "${1}"

View File

@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/

View File

@ -0,0 +1,24 @@
apiVersion: v2
name: sreez-website
description: NationTech public website for SREEZ
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "1.0.0"

View File

@ -0,0 +1,22 @@
1. Get the application URL by running these commands:
{{- if .Values.ingress.enabled }}
{{- range $host := .Values.ingress.hosts }}
{{- range .paths }}
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
{{- end }}
{{- end }}
{{- else if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "sreez-website.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "sreez-website.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "sreez-website.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "sreez-website.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT
{{- end }}

View File

@ -0,0 +1,62 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "sreez-website.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "sreez-website.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "sreez-website.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "sreez-website.labels" -}}
helm.sh/chart: {{ include "sreez-website.chart" . }}
{{ include "sreez-website.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "sreez-website.selectorLabels" -}}
app.kubernetes.io/name: {{ include "sreez-website.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "sreez-website.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "sreez-website.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}

View File

@ -0,0 +1,68 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "sreez-website.fullname" . }}
labels:
{{- include "sreez-website.labels" . | nindent 4 }}
spec:
{{- if not .Values.autoscaling.enabled }}
replicas: {{ .Values.replicaCount }}
{{- end }}
selector:
matchLabels:
{{- include "sreez-website.selectorLabels" . | nindent 6 }}
template:
metadata:
{{- with .Values.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "sreez-website.labels" . | nindent 8 }}
{{- with .Values.podLabels }}
{{- toYaml . | nindent 8 }}
{{- end }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ include "sreez-website.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
containers:
- name: {{ .Chart.Name }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- name: http
containerPort: {{ .Values.service.port }}
protocol: TCP
livenessProbe:
{{- toYaml .Values.livenessProbe | nindent 12 }}
readinessProbe:
{{- toYaml .Values.readinessProbe | nindent 12 }}
resources:
{{- toYaml .Values.resources | nindent 12 }}
{{- with .Values.volumeMounts }}
volumeMounts:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.volumes }}
volumes:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}

View File

@ -0,0 +1,32 @@
{{- if .Values.autoscaling.enabled }}
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: {{ include "sreez-website.fullname" . }}
labels:
{{- include "sreez-website.labels" . | nindent 4 }}
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ include "sreez-website.fullname" . }}
minReplicas: {{ .Values.autoscaling.minReplicas }}
maxReplicas: {{ .Values.autoscaling.maxReplicas }}
metrics:
{{- if .Values.autoscaling.targetCPUUtilizationPercentage }}
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }}
{{- end }}
{{- if .Values.autoscaling.targetMemoryUtilizationPercentage }}
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }}
{{- end }}
{{- end }}

View File

@ -0,0 +1,61 @@
{{- if .Values.ingress.enabled -}}
{{- $fullName := include "sreez-website.fullname" . -}}
{{- $svcPort := .Values.service.port -}}
{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
{{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }}
{{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}}
{{- end }}
{{- end }}
{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1
{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1beta1
{{- else -}}
apiVersion: extensions/v1beta1
{{- end }}
kind: Ingress
metadata:
name: {{ $fullName }}
labels:
{{- include "sreez-website.labels" . | nindent 4 }}
{{- with .Values.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
ingressClassName: {{ .Values.ingress.className }}
{{- end }}
{{- if .Values.ingress.tls }}
tls:
{{- range .Values.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
{{- range .Values.ingress.hosts }}
- host: {{ .host | quote }}
http:
paths:
{{- range .paths }}
- path: {{ .path }}
{{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
pathType: {{ .pathType }}
{{- end }}
backend:
{{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
service:
name: {{ $fullName }}
port:
number: {{ $svcPort }}
{{- else }}
serviceName: {{ $fullName }}
servicePort: {{ $svcPort }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}

View File

@ -0,0 +1,15 @@
apiVersion: v1
kind: Service
metadata:
name: {{ include "sreez-website.fullname" . }}
labels:
{{- include "sreez-website.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
ports:
- port: {{ .Values.service.port }}
targetPort: http
protocol: TCP
name: http
selector:
{{- include "sreez-website.selectorLabels" . | nindent 4 }}

View File

@ -0,0 +1,13 @@
{{- if .Values.serviceAccount.create -}}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ include "sreez-website.serviceAccountName" . }}
labels:
{{- include "sreez-website.labels" . | nindent 4 }}
{{- with .Values.serviceAccount.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
automountServiceAccountToken: {{ .Values.serviceAccount.automount }}
{{- end }}

View File

@ -0,0 +1,15 @@
apiVersion: v1
kind: Pod
metadata:
name: "{{ include "sreez-website.fullname" . }}-test-connection"
labels:
{{- include "sreez-website.labels" . | nindent 4 }}
annotations:
"helm.sh/hook": test
spec:
containers:
- name: wget
image: busybox
command: ['wget']
args: ['{{ include "sreez-website.fullname" . }}:{{ .Values.service.port }}']
restartPolicy: Never

View File

@ -0,0 +1,109 @@
# Default values for sreez-website.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
repository: registry.nationtech.io/sreez-website
pullPolicy: Always
# Overrides the image tag whose default is the chart appVersion.
tag: "v1.0.0"
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Automatically mount a ServiceAccount's API credentials?
automount: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
podAnnotations: {}
podLabels: {}
podSecurityContext: {}
# fsGroup: 2000
securityContext: {}
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
service:
type: ClusterIP
port: 8080
ingress:
enabled: true
className: "nginx"
annotations:
cert-manager.io/issuer: "letsencrypt-prod"
kubernetes.io/tls-acme: "true"
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
hosts:
- host: sreez.nationtech.io
paths:
- path: /
pathType: ImplementationSpecific
tls:
- secretName: sreez.nationtech.io-tls
hosts:
- sreez.nationtech.io
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
livenessProbe:
httpGet:
path: /
port: http
readinessProbe:
httpGet:
path: /
port: http
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 100
targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80
# Additional volumes on the output Deployment definition.
volumes: []
# - name: foo
# secret:
# secretName: mysecret
# optional: false
# Additional volumeMounts on the output Deployment definition.
volumeMounts: []
# - name: foo
# mountPath: "/etc/foo"
# readOnly: true
nodeSelector: {}
tolerations: []
affinity: {}

View File

@ -2,8 +2,10 @@ use leptos::*;
use leptos_meta::*;
use leptos_router::*;
use crate::pages::ShortLandingPage;
use crate::pages::HomePage;
use crate::pages::InitialOffer;
use crate::components::Matomo;
#[component]
pub fn App() -> impl IntoView {
@ -13,16 +15,19 @@ pub fn App() -> impl IntoView {
view! {
// injects a stylesheet into the document <head>
// id=leptos means cargo-leptos will hot-reload this stylesheet
<Stylesheet id="leptos" href="/pkg/nationtech-io.css"/>
<Stylesheet id="leptos" href="/pkg/sreez.css"/>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200" />
<Matomo />
// sets the document title
<Title text="SREEZ - Site Reliability Engineering for Everyone, eZ"/>
// content for this welcome page
<Router>
<main class="bg-main">
<main class="bg-main bg-light">
<Routes>
<Route path="" view=HomePage/>
<Route path="" view=ShortLandingPage/>
<Route path="/home-page" view=HomePage/>
<Route path="/initial-offer" view=InitialOffer/>
<Route path="/*any" view=NotFound/>
</Routes>

View File

@ -0,0 +1,19 @@
use leptos::*;
#[component]
pub fn BookADemo() -> impl IntoView {
let (is_clicked, set_clicked) = create_signal(false);
view! {
<div>
<button class="btn"
on:click=move |_| {
set_clicked.update(|is_clicked| *is_clicked = !*is_clicked)
}
>"Book a demo →"</button>
<div class="animate-vertical sm-margin-top-2" data-visible=is_clicked>
<script src="https://embed.ycb.me" async="true" data-domain="jggc"></script>
</div>
</div>
}
}

View File

@ -0,0 +1,38 @@
use leptos::*;
#[component]
pub fn Footer() -> impl IntoView {
let (is_clicked, set_clicked) = create_signal(false);
view! {
<div class="pad-y-4 margin-top-5 text-left max-width-900 margin-x-1 lg-margin-x-auto">
<p>"Reach us here :"</p>
<p>
<a href="linkedin" aria-label="NationTech LinkedIn page" aria-hidden="true" class="row items-center">
<img src="assets/icons/linkedin.svg" height="32px"/>
<span class="pad-left-1">"LinkedIn"</span>
</a>
</p>
<p>
<a href="https://jggc.youcanbook.me" aria-label="You Can Book Me" aria-hidden="true" class="row items-center">
<img src="assets/icons/youcanbookme_black.png" height="32px"/>
<span class="pad-left-1">"Book a meeting"</span>
</a>
</p>
<p>
<a href="https://nationtech.io" aria-label="NationTech website" aria-hidden="true" class="row items-center">
<img src="assets/icons/website.svg" height="32px"/>
<span class="pad-left-1">"nationtech.io"</span>
</a>
</p>
<p>
<a href="mailto=sreez@nationtech.io" aria-label="SREEZ Email Address" aria-hidden="true" class="row items-center no-decoration">
<span class="icon-as-image material-symbols-outlined">"mail"
</span>
<span class="pad-left-1 underline">"sreez@nationtech.io"</span>
</a>
</p>
</div>
}
}

View File

@ -0,0 +1,8 @@
use leptos::*;
#[component]
pub fn Matomo() -> impl IntoView {
view! {
<script src="assets/scripts/matomo.js" type="text/javascript" />
}
}

View File

@ -0,0 +1,6 @@
mod book_a_demo;
mod footer;
mod matomo;
pub use book_a_demo::*;
pub use footer::*;
pub use matomo::*;

View File

@ -1,5 +1,6 @@
pub mod app;
mod pages;
mod components;
#[cfg(feature = "hydrate")]
#[wasm_bindgen::prelude::wasm_bindgen]

View File

@ -5,7 +5,7 @@ async fn main() -> std::io::Result<()> {
use actix_web::*;
use leptos::*;
use leptos_actix::{generate_route_list, LeptosRoutes};
use nationtech_io::app::*;
use sreez::app::*;
let conf = get_configuration(None).await.unwrap();
let addr = conf.leptos_options.site_addr;

View File

@ -11,10 +11,10 @@ pub fn HomePage() -> impl IntoView {
<span class="font-size-xl color-gray">"Site Reliability Engineering for Everyone, eZ"</span>
</h1>
<h2 class="font-size-3xl">
<span>"Stay focused"</span><br/>
<span>"on your features,"</span><br/>
<span>"we take care"</span><br/>
<span>"of the infrastructure."</span>
<span>"Focus"</span><br/>
<span>"On features"</span><br/>
<span>"We perfect"</span><br/>
<span>"Your infrastructure."</span>
</h2>
</div>
</div>
@ -32,7 +32,7 @@ pub fn HomePage() -> impl IntoView {
<h3>"Batteries included"</h3>
<ul>
<li>"Managed Orchestrator : RedHat OpenShift Community (OKD) cluster"</li>
<li>"Marketplace : Easily install hundreds of apps, databases, productivity tools at no additional cost"</li>
<li>"Marketplace : Easily install, upgrade, rollback hundreds of apps, databases, productivity tools at no additional cost"</li>
<li>"CI/CD Pipeline : Source Control, Continuous Integration, Test Automation, Static Analysis, Continuous Delivery"</li>
<li>"AI Tools : Open source LLMs, Model Management and Deployment, Jupyter Notebooks, NVidia GPUs"</li>
</ul>

View File

@ -3,24 +3,24 @@ use leptos::*;
#[component]
pub fn InitialOffer() -> impl IntoView {
view! {
<div class="text-center margin-y-25vh">
<p class="text-3x font-bold max-width-900 margin-x-auto">"Imagine a world where your startup's infrastructure is as resilient as the biggest tech giants', but without the overhead."</p>
<p class="text-3x font-bold max-width-900 margin-x-auto">"Welcome to SREEZ, where we make that dream a reality"</p>
</div>
<div class="row margin-y-4 justify-center">
<img src="assets/sreez_transparent_bg.png" alt="SREEZ mascot. Yes it is text-to-image generated by GPT4/DALL·E" class="max-width-400 margin-x-3"/>
<div class="row wrap margin-y-4 justify-center">
<div class="margin-x-3 text-left column justify-center">
<h1>"SREEZ"
<h1 class="text-3x">"Site Reliability Engineering for Everyone, eZ : SREEZ"
<br/>
<span class="font-size-xl color-gray">"Site Reliability Engineering for Everyone, eZ"</span>
<span class="font-xl color-gray line-1">"Site Reliability Engineering for Everyone, eZ"</span>
</h1>
<h2 class="font-size-3xl">
<h2 class="font-3xl">
<span>"Stay focused"</span><br/>
<span>"on your features,"</span><br/>
<span>"we take care"</span><br/>
<span>"of the infrastructure."</span>
</h2>
</div>
<img src="assets/sreez_transparent_bg.png" alt="SREEZ mascot. Yes it is text-to-image generated by GPT4/DALL·E" class="max-width-400 margin-x-3"/>
</div>
<div class="text-center margin-y-25vh">
<p class="text-3x font-bold max-width-900 margin-x-auto">"Imagine a world where your startup's infrastructure is as resilient as the biggest tech giants', but without the overhead."</p>
<p class="text-3x font-bold max-width-900 margin-x-auto">"Welcome to SREEZ, where we make that dream a reality"</p>
</div>
<div class="row card-list">
<div class="card">
@ -49,7 +49,8 @@ pub fn InitialOffer() -> impl IntoView {
</ul>
</div>
</div>
<p>"And much more, just "<a href="mailto:sreez@nationtech.io">"ask us!"</a></p>
<p>"And much more, just "</p>
<a href="mailto:sreez@nationtech.io?subject=SREEZ: I want to know more" target="_blank" ><button class="btn btn-dark">"Ask us"</button></a>
<div class="row card-list">
<div class="card">
@ -58,7 +59,7 @@ pub fn InitialOffer() -> impl IntoView {
<p class="font-bold text-center ">"10 555 CAD / Year"</p>
<p class="font-bold text-center">"Coming soon"</p>
<p class="font-bold text-center">
<a href="mailto:sreez@nationtech.io?subject=SREEZ Bootstrap Package&body=I am interested in SREEZ Bootstrap Package">"Subscribe to waitlist"</a>
<a target="_blank" href="mailto:sreez@nationtech.io?subject=SREEZ Bootstrap Package&body=I am interested in SREEZ Bootstrap Package">"Subscribe to waitlist"</a>
</p>
<ul class="text-left">
<li>"Dedicated Kubernetes namespace - Auto-Healing, Auto-Scaling, Fully Managed"</li>
@ -79,7 +80,7 @@ pub fn InitialOffer() -> impl IntoView {
<p class="font-bold text-center ">"55 555 CAD / Year"</p>
<p class="font-bold text-center">"5 available "</p>
<p class="font-bold text-center">
<a href="mailto:sreez@nationtech.io?subject=SREEZ Startup Package&body=I am interested in SREEZ Startup Package">"Get it now"</a>
<a target="_blank" href="mailto:sreez@nationtech.io?subject=SREEZ Startup Package&body=I am interested in SREEZ Startup Package">"Get it now"</a>
</p>
<ul class="text-left">
<li>"Everything in lower package, plus"</li>
@ -101,7 +102,7 @@ pub fn InitialOffer() -> impl IntoView {
<p class="font-bold text-center">"555 555 CAD / Year"</p>
<p class="font-bold text-center">"1 available "</p>
<p class="font-bold text-center">
<a href="mailto:sreez@nationtech.io?subject=SREEZ Top package&body=I am interested in SREEZ Top Package">"Get it now"</a>
<a target="_blank" href="mailto:sreez@nationtech.io?subject=SREEZ Top package&body=I am interested in SREEZ Top Package">"Get it now"</a>
</p>
<ul class="text-left">
<li>"Everything in lower package, plus"</li>
@ -121,7 +122,7 @@ pub fn InitialOffer() -> impl IntoView {
<div class="margin-y-25vh">
<h2>"Not ready to make a move yet but want to improve your infrastructure"</h2>
<p>
<a href="mailto:sreez@nationtech.io?subject=Mailing list subscription&body=I want to get SREEZ news">"Subscribe to our mailing list"</a>
<a target="_blank" href="mailto:sreez@nationtech.io?subject=Mailing list subscription&body=I want to get SREEZ news">"Subscribe to our mailing list"</a>
" for SRE advice and events"
</p>
</div>

View File

@ -1,4 +1,6 @@
mod home_page;
mod initial_offer;
mod short_landing_page;
pub use short_landing_page::*;
pub use home_page::*;
pub use initial_offer::*;

View File

@ -0,0 +1,87 @@
use leptos::*;
use crate::components::BookADemo;
use crate::components::Footer;
/// Renders the home page of your application.
#[component]
pub fn ShortLandingPage() -> impl IntoView {
view! {
<div class="margin-x-auto lg-margin-x-3">
<img src="assets/sreez_logo_shaded_v2.png" aria-label="SREEZ mascot of a cherry because SREEZ sounds like 'cerise' in French which means Cherry" class="max-width-150"/>
</div>
<div class="max-width-900 margin-x-auto">
<div class="margin-x-1 lg-margin-x-3 text-left">
<h1>"Accelerate your software delivery with SREEZ."</h1>
<p>"Focus on what really matters."</p>
<p>"Stop being overwhelmed by platform and infrastructure work."</p>
<p>"Get our platform deployed and your projects migrated faster than you thought possible."</p>
<div class="margin-top-2 text-center lg-text-left">
<BookADemo />
</div>
</div>
<div class="card max-width-600 margin-x-auto margin-y-4">
<span class="material-symbols-outlined card-icon">"key"</span>
<ul class="text-left list-pad-1">
<li>"A single dashboard for your infrastructure"</li>
<li>"Pre-built platform combining the best tools available"</li>
<li>"Expert platform engineers with decades of DevOps and SRE experience"</li>
<li>"An all-in-one software delivery platform with services you didn't think you could afford"</li>
</ul>
</div>
<h2 class="margin-top-5">"Struggling to keep your DevOps tools up to par ?"</h2>
<div class="lg-lr-sections">
<div class="card max-width-600 margin-x-auto margin-y-4">
<span class="material-symbols-outlined card-icon">"price_change"</span>
<p>"With an ever-growing DevOps toolchain, most teams cannot afford to invest the time and money required to build the pipeline they know they need."</p>
</div>
<div class="card max-width-600 margin-x-auto margin-y-4">
<span class="material-symbols-outlined card-icon">"stacks"</span>
<p>"We fix that by building a unified platform for small and medium teams."</p>
</div>
<div class="card max-width-600 margin-x-auto margin-y-4">
<span class="material-symbols-outlined card-icon">"waving_hand"</span>
<div>
<p>"Our platform engineering experts work with you to select the best fitting open-source tools such as"</p>
<ul class="text-left list-pad-1">
<li>"Kubernetes"</li>
<li>"RedHat Developer Hub"</li>
<li>"ArgoCD"</li>
<li>"Grafana"</li>
<li>"HyperDX"</li>
</ul>
<img src="assets/sreez_stack_logos_flat.png" alt="SREEZ stack logos" class="width-600 max-width-100pct margin-top-2" />
</div>
</div>
<div class="card max-width-600 margin-x-auto margin-y-4">
<span class="material-symbols-outlined card-icon">"engineering"</span>
<div>
<h3>"Wo do all this for you"</h3>
<ul class="text-left list-pad-1">
<li>"Migrate your existing applications to the platform"</li>
<li>"Coach your team on best practices"</li>
<li>"Be the 24/7 first respondants to incidents, only waking you up when it really matters"</li>
<li>"Continuously improve your delivery speed, quality and reliability"</li>
</ul>
</div>
</div>
</div>
<h2 class="margin-top-8">"Delivering faster means your business wins : join the Elite with our unique early adopter offer!"</h2>
<div class="card max-width-600 margin-x-auto margin-top-5">
<span class="material-symbols-outlined card-icon">"editor_choice"</span>
<h3 class="pad-y-1">"Get a pioneer seat to be a key part of the SREEZ project's foundation."</h3>
<p><strong>"What you'll get"</strong></p>
<ul class="text-left list-pad-1">
<li>"20 to 100 hours of expert consulting from our team every month"</li>
<li>"Free hosting up to 500 CPUs, 2 000 GB RAM, 150 TB Storage, 128 GB GPU VRAM for AI models"</li>
<li>"Full SREEZ platform based on best-in-class open-source tools "</li>
<li>"Your features prioritized on the platform"</li>
<li>"DevOps and SRE best practices coaching and resources"</li>
</ul>
</div>
<div class="margin-top-5">
<BookADemo />
</div>
</div>
<Footer/>
}
}

View File

@ -1,22 +1,44 @@
@font-face {
font-family: "Fira Mono";
src:
url("/assets/fonts/FiraMono-Regular.woff2") format("woff2");
}
@font-face {
font-family: "Intel One";
src:
url("/assets/fonts/intelone-mono-font-family-regular.ttf") format("truetype");
}
@font-face {
font-family: "PT Mono";
src:
url("/assets/fonts/PTM55F.ttf") format("truetype");
}
body {
font-family: sans-serif;
// font-family: monospace;
font-family: "Fira Mono";
font-family: "Intel One";
font-family: "PT Mono";
text-align: center;
font-size: 1.25rem;
font-size: 1.4rem;
}
body {
background-color: #FAFAF5;
font-family: Roboto, helvetica;
font-family: Poppins, helvetica;
.line-2-5 {
line-height: 2.5rem;
}
.font-size-4xl {
.font-4xl {
font-size: 3rem;
}
.font-size-xl {
font-size: 1.5rem;
.font-xl {
font-size: 1.7rem;
}
.line-1 {
line-height: 1rem;
}
.color-gray {
@ -32,11 +54,29 @@ ol {
flex-direction: row;
}
.wrap {
flex-wrap: wrap;
}
.column {
display: flex;
flex-direction: column;
}
.no-decoration {
text-decoration: none;
}
.icon-as-image {
color: black;
text-decoration: none;
font-size: 32px !important;
}
.underline {
text-decoration: underline;
}
.items-center {
align-items: center;
}
@ -55,6 +95,24 @@ ol {
margin-bottom: 4rem;
}
.pad-y-4 {
padding-top: 4rem;
padding-bottom: 4rem;
}
.pad-y-1 {
padding-top: 1rem;
padding-bottom: 1rem;
}
.pad-left-3 {
padding-left: 3rem;
}
.pad-left-1 {
padding-left: 1rem;
}
.margin-x-3 {
margin-left: 3rem;
margin-right: 3rem;
@ -69,15 +127,71 @@ ol {
margin: 3rem;
}
.max-width-300 {
max-width: 300px;
}
.max-width-150 {
max-width: 150px;
}
.max-width-400 {
max-width: 400px;
}
.max-width-500 {
max-width: 500px;
}
.max-width-600 {
max-width: 600px;
}
.width-600 {
width: 600px;
}
.max-width-100pct {
max-width: 100%;
}
.max-width-900 {
max-width: 900px;
}
.list-pad-1 li {
margin-bottom: 1rem;
}
.margin-x-auto {
margin-left: auto;
margin-right: auto;
}
.margin-top-8 {
margin-top: 8rem;
}
.margin-top-5 {
margin-top: 5rem;
}
.margin-top-2 {
margin-top: 2rem;
}
.margin-top-1 {
margin-top: 1rem;
}
.card {
.card-icon {
font-size: 7rem;
color: #333;
}
}
.card-list {
text-align: left;
justify-content: center;
@ -88,12 +202,6 @@ ol {
flex: 1;
min-width: 250px;
max-width: 400px;
// border: solid 3px #ccc;
//border-radius: 20px;
// background-color: white;
//border: 2px solid #eee;
//border-right: 2px solid #fc314e88;
//border-left: 2px solid #fc314e88;
margin: 30px;
display: flex;
flex-direction: column;
@ -152,26 +260,122 @@ ol.huge-list-markers li{
}
}
@media (min-width: 900px) {
.text-2x {
font-size: 2rem;
}
.text-3x {
font-size: 3rem;
font-size: 3.5rem;
}
.text-4x {
font-size: 4rem;
}
}
.font-bold {
font-weight: 800;
}
.max-width-400 {
max-width: 400px;
.font-600 {
font-weight: 600;
}
.height-110 {
height: 110px;
}
.bg-light, body {
background-color: #F8F9F1;
}
.btn-dark {
background-color: #007488;
color: #FFF;
}
.btn {
border: none;
padding: 1rem 1.5rem;
border-radius: 0.75rem;
font-weight: 700;
font-size: inherit;
cursor: pointer;
background-color: #e72235;
color: white;
&:hover {
// background-color: #eee;
// color: black;
box-shadow: 5px 5px 27px 10px rgba(231,34,53,0.21);
//background-color: #66d500;
//background-color: white;
}
}
.material-symbols-outlined {
font-variation-settings:
'FILL' 0,
'wght' 400,
'GRAD' 0,
'opsz' 24
}
.animate-vertical {
overflow: hidden;
max-height: 0;
transition: max-height 0.5s ease-in-out;
}
/* CSS for when data-visible attribute is true */
.animate-vertical[data-visible] {
max-height: 900px;
}
@media screen and (max-width: 768px) {
.sm-margin-top-2 {
margin-top: 2rem;
}
}
@media screen and (min-width: 960px) {
.lg-margin-x-auto {
margin-left: auto;
margin-right: auto;
}
.lg-text-left {
text-align: left;
}
.lg-margin-x-3 {
margin-left: 3rem;
margin-right: 3rem;
}
.lg-lr-sections {
> div {
margin-right: 0;
display: flex;
flex-direction: row;
margin-left: 0;
margin-right: 0;
width: 100%;
min-width: 100%;
justify-content: space-around;
text-align: left;
align-items: center;
.card-icon {
padding-left: 7rem;
padding-right: 7rem;
}
}
> div:nth-child(even) {
flex-direction: row-reverse;
}
}
}