Continue home and features pages

This commit is contained in:
Matthew Holt 2023-10-10 12:03:33 -06:00 committed by Francis Lavoie
parent 08076c325b
commit 5819cf9e5a
No known key found for this signature in database
GPG key ID: 0F66EE1687682239
6 changed files with 186 additions and 63 deletions

View file

@ -67,10 +67,15 @@
font-weight: 500;
}
.feature-row ul.detail {
.feature-row ul.detail,
.feature-row .detail ul {
margin-left: 1em;
}
.feature-row .detail ul {
margin-top: 1em;
}
.feature-row ul li {
margin-bottom: .5em;
}

View file

@ -324,10 +324,11 @@ div.ap-wrapper:fullscreen div.ap-player {
.testimonials {
--testimonial-spacing: 25px;
display: grid;
grid-auto-columns: minmax(0, 1fr);
grid-auto-flow: column;
gap: 25px;
gap: var(--testimonial-spacing);
position: relative;
}
.testimonials::before {
@ -351,9 +352,12 @@ div.ap-wrapper:fullscreen div.ap-player {
border: 1px solid rgb(174, 181, 185);
border-radius: 5px;
padding: 1em;
margin: var(--testimonial-spacing) 0;
}
.testimonial-quote {
margin-bottom: 1em;
font-size: 16px;
line-height: 1.4;
}
.testimonial-name,
.testimonial-role {

View file

@ -1,5 +1,16 @@
ready(async function() {
const resp = await fetch("/resources/testimonials.json");
const testimonials = await resp.json();
const resp = fetch("/resources/testimonials.json").then(async resp => {
const testimonials = await resp.json();
console.log(testimonials);
});
ready(function() {
for (let i = 0; i < testimonials.length; i++) {
const testimonial = testimonials[i];
const tpl = cloneTemplate('#tpl-testimonial');
$('.testimonial-picture', tpl).src = testimonial.picture || "";
$('.testimonial-quote', tpl).innerText = `"${testimonial.quote}"`;
$('.testimonial-name', tpl).innerText = testimonial.name || "";
$('.testimonial-role', tpl).innerText = testimonial.role || "";
$(`.testimonial-col:nth-child(${i%3 + 1})`).append(tpl);
}
});
});

View file

@ -3,8 +3,34 @@
"name": "First last",
"role": "9999x developer",
"company": "Bigcorp",
"picture": "https://...",
"picture": "https://pbs.twimg.com/profile_images/1624497316366528512/fBMXDuiZ_400x400.jpg",
"quote": "Caddy is cool.",
"link": "https://..."
},
{
"name": "Brad Warren",
"role": "Lead Engineer of Certbot",
"company": "Electronic Frontier Foundation (EFF)",
"picture": "https://sea1.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/bmw/144/7797_2.png",
"quote": "I think we should consider making Caddy the default ACME client recommendation. … It allows for better integration between the TLS server and the ACME management of those certificates. … [ACME clients with] Apache and NGINX are inherently more error prone and brittle than having the TLS server manage its certificates itself. … Caddy is written in a memory-safe language. Adoption of memory-safe programming languages is something that both ISRG and the broader computer security community have been encouraging more and more lately.",
"link": "https://community.letsencrypt.org/t/should-our-default-client-recommendation-be-caddy-if-not-why-not/199949?u=mholt"
},
{
"name": "Josh Aas",
"role": "Executive Director",
"company": "Let's Encrypt",
"picture": "https://sea1.discourse-cdn.com/letsencrypt/user_avatar/community.letsencrypt.org/josh/144/10641_2.png",
"quote": "Caddy is impressive. This is what we want, setting up a secure website.",
"link": "https://www.youtube.com/watch?v=OE5UhQGg_Fo"
},
{
"name": "Stripe",
"role": "Global Leader of Fintech",
"quote": "With its extensible architecture and on-line config API, Caddy powers many of Stripe's internal systems."
},
{
"name": "Robert Melton",
"role": "Software Developer",
"quote": "Our client was in deep trouble: they were about to fail PCI compliance. We tossed Caddy in front hours before the deadline and went from 40 to 0 security errors in just minutes. … We have put over 1,000 domains on Caddy so far."
}
]