From a72fef6d6f0ef39ef11584b5b5f62d1133d5c8cc Mon Sep 17 00:00:00 2001 From: b5 Date: Thu, 24 Oct 2024 17:57:54 -0400 Subject: [PATCH 1/2] first crack at protocol services page --- content/_index.md | 2 +- content/n0ps.md | 5 ++ static/styles/style.css | 159 +++++++++++++++++++++++++++++++++------- templates/n0ps.html | 105 ++++++++++++++++++++++++++ 4 files changed, 244 insertions(+), 27 deletions(-) create mode 100644 content/n0ps.md create mode 100644 templates/n0ps.html diff --git a/content/_index.md b/content/_index.md index e979b7d..cb5bc3a 100644 --- a/content/_index.md +++ b/content/_index.md @@ -1,4 +1,4 @@ +++ -title = "number zero" +title = "number 0" description = "Less net work for networks" +++ diff --git a/content/n0ps.md b/content/n0ps.md new file mode 100644 index 0000000..d345a7c --- /dev/null +++ b/content/n0ps.md @@ -0,0 +1,5 @@ ++++ +title = "number 0 protocol services" +description = "Build on the edge with the team that lives there" +template="n0ps.html" ++++ diff --git a/static/styles/style.css b/static/styles/style.css index d195f09..fb8510b 100644 --- a/static/styles/style.css +++ b/static/styles/style.css @@ -307,6 +307,10 @@ img, video { margin-bottom: auto; } +.mt-5 { + margin-top: 1.25rem; +} + .mt-2 { margin-top: .5rem; } @@ -331,8 +335,20 @@ img, video { margin-bottom: 2rem; } -.mt-5 { - margin-top: 1.25rem; +.ml-10 { + margin-left: 2.5rem; +} + +.ml-20 { + margin-left: 5rem; +} + +.ml-16 { + margin-left: 4rem; +} + +.mb-1 { + margin-bottom: .25rem; } .block { @@ -351,6 +367,10 @@ img, video { display: inline-flex; } +.grid { + display: grid; +} + .hidden { display: none; } @@ -403,6 +423,10 @@ img, video { max-width: 72rem; } +.max-w-4xl { + max-width: 56rem; +} + .max-w-2xl { max-width: 42rem; } @@ -411,14 +435,6 @@ img, video { max-width: 48rem; } -.max-w-4xl { - max-width: 56rem; -} - -.max-w-xl { - max-width: 36rem; -} - .flex-1 { flex: 1; } @@ -431,6 +447,10 @@ img, video { cursor: pointer; } +.grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); +} + .flex-col { flex-direction: column; } @@ -447,6 +467,14 @@ img, video { justify-content: space-between; } +.gap-3 { + gap: .75rem; +} + +.gap-5 { + gap: 1.25rem; +} + .gap-y-6 { row-gap: 1.5rem; } @@ -467,6 +495,10 @@ img, video { border-radius: .375rem; } +.border-t { + border-top-width: 1px; +} + .border-dotted { border-style: dotted; } @@ -476,6 +508,21 @@ img, video { border-color: rgb(156 163 175 / var(--tw-border-opacity)); } +.border-gray-500 { + --tw-border-opacity: 1; + border-color: rgb(107 114 128 / var(--tw-border-opacity)); +} + +.border-gray-800 { + --tw-border-opacity: 1; + border-color: rgb(31 41 55 / var(--tw-border-opacity)); +} + +.border-gray-700 { + --tw-border-opacity: 1; + border-color: rgb(55 65 81 / var(--tw-border-opacity)); +} + .bg-white { --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity)); @@ -520,6 +567,16 @@ img, video { background-color: #0000; } +.bg-n0pink-500 { + --tw-bg-opacity: 1; + background-color: rgb(255 172 156 / var(--tw-bg-opacity)); +} + +.bg-n0gray-700 { + --tw-bg-opacity: 1; + background-color: rgb(63 63 70 / var(--tw-bg-opacity)); +} + .bg-cover { background-size: cover; } @@ -532,14 +589,14 @@ img, video { padding: .5rem; } -.p-4 { - padding: 1rem; -} - .p-6 { padding: 1.5rem; } +.p-4 { + padding: 1rem; +} + .px-4 { padding-left: 1rem; padding-right: 1rem; @@ -580,6 +637,16 @@ img, video { padding-right: .5rem; } +.py-6 { + padding-top: 1.5rem; + padding-bottom: 1.5rem; +} + +.py-10 { + padding-top: 2.5rem; + padding-bottom: 2.5rem; +} + .pt-40 { padding-top: 10rem; } @@ -654,6 +721,11 @@ img, video { line-height: 1.5rem; } +.text-xs { + font-size: .75rem; + line-height: 1rem; +} + .text-4xl { font-size: 2.25rem; line-height: 2.5rem; @@ -664,11 +736,6 @@ img, video { line-height: 1.75rem; } -.text-xs { - font-size: .75rem; - line-height: 1rem; -} - .font-bold { font-weight: 700; } @@ -693,6 +760,26 @@ img, video { line-height: 1.625; } +.leading-9 { + line-height: 2.25rem; +} + +.leading-7 { + line-height: 1.75rem; +} + +.leading-8 { + line-height: 2rem; +} + +.leading-10 { + line-height: 2.5rem; +} + +.leading-6 { + line-height: 1.5rem; +} + .text-n0pink-300 { --tw-text-opacity: 1; color: rgb(255 210 204 / var(--tw-text-opacity)); @@ -718,6 +805,11 @@ img, video { color: rgb(228 228 231 / var(--tw-text-opacity)); } +.text-n0gray-700 { + --tw-text-opacity: 1; + color: rgb(63 63 70 / var(--tw-text-opacity)); +} + .text-gray-400 { --tw-text-opacity: 1; color: rgb(156 163 175 / var(--tw-text-opacity)); @@ -748,9 +840,17 @@ img, video { color: rgb(209 213 219 / var(--tw-text-opacity)); } -.text-n0gray-700 { +.text-n0gray-500 { --tw-text-opacity: 1; - color: rgb(63 63 70 / var(--tw-text-opacity)); + color: rgb(113 113 122 / var(--tw-text-opacity)); +} + +.underline { + text-decoration-line: underline; +} + +.decoration-dotted { + text-decoration-style: dotted; } .shadow-inner { @@ -899,6 +999,10 @@ img, video { display: block; } + .sm\:grid { + display: grid; + } + .sm\:hidden { display: none; } @@ -935,6 +1039,14 @@ img, video { width: 33.3333%; } + .sm\:w-1\/2 { + width: 50%; + } + + .sm\:grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + .sm\:flex-row { flex-direction: row; } @@ -957,11 +1069,6 @@ img, video { padding-bottom: 20rem; } - .sm\:px-10 { - padding-left: 2.5rem; - padding-right: 2.5rem; - } - .sm\:pr-0 { padding-right: 0; } diff --git a/templates/n0ps.html b/templates/n0ps.html new file mode 100644 index 0000000..17a8bc5 --- /dev/null +++ b/templates/n0ps.html @@ -0,0 +1,105 @@ +{% extends "layout.html" %} {% block content %} +
+
+
+

+ number 0 protocol services +

+

+ A network engineering team, for less than the cost of one dev. +

+ +
+

+ Shipping software that works is hard as is. Much worse if + you need to connect devices directly. You’ll have to hire at + least one distributed systems engineer, they’ll pull & + configure a library for you, throw a dart at a pile of + whitepapers, and hope they’ve chosen the right techniques. + If you’re lucky the first version will land after 6 months + of work. When it finally does ship, + the bug reports start. +

+ +

+ “doesn’t work on hotel wifi”, “laggy connections at work”, + “my phone is hot”, your networking engineer is now a + networking team, you’re 8 months behind schedule, three + quarters of your innovation budget is spent, and your vision + of building something with deep technical roots & real user + benefits starts to slip. +

+ +

+ It doesn’t have to be this way. The number 0 team can get + you out of the food, water, and shelter phase of direct + connections. We can get you up & running in weeks, with + software that just works, so you can focus on delivering + meaningful software. +

+ Let's chat +
+
+
+
+
+

+ A Custom Protocol stack tailored to your project +

+
+
+

+ Ship a bespoke API with exactly the feature set you + need, in the language you’re already working in. We’ll + integrate directly with your existing engineering team + to surface the exact feature set your project needs. +

+
+
+
+
+

+ Expert Engineering +

+
+
+

+ With a combined 70+ years of distributed systems design + & development experience, we represent one of the very + few teams on the planet with a proven track record of + shipping direct connection topologies into production + apps. +

+
+
+
+
+

+ Ongoing Support +

+
+
+

+ We’ll keep iroh up to date for you, bringing the full + value of a thriving open source project into your + codebase on a regular cadence. +

+
+
+
+
+
+{% endblock %} {% block pagination %} {% if page.earlier or page.later or +page.lighter or page.heavier %} + +{% endif %} {% endblock %} From 52bb2fd4081d961aecc3c747b08cf311362fd4e2 Mon Sep 17 00:00:00 2001 From: b5 Date: Fri, 25 Oct 2024 10:40:11 -0400 Subject: [PATCH 2/2] refine protocol services page --- static/styles/style.css | 146 ++++++++++++++-------------------------- templates/layout.html | 6 +- templates/n0ps.html | 112 ++++++++++++++++-------------- 3 files changed, 116 insertions(+), 148 deletions(-) diff --git a/static/styles/style.css b/static/styles/style.css index fb8510b..7272e1e 100644 --- a/static/styles/style.css +++ b/static/styles/style.css @@ -311,6 +311,22 @@ img, video { margin-top: 1.25rem; } +.ml-16 { + margin-left: 4rem; +} + +.mb-1 { + margin-bottom: .25rem; +} + +.mb-2 { + margin-bottom: .5rem; +} + +.mr-10 { + margin-right: 2.5rem; +} + .mt-2 { margin-top: .5rem; } @@ -327,30 +343,10 @@ img, video { margin-right: 1rem; } -.mb-2 { - margin-bottom: .5rem; -} - .mb-8 { margin-bottom: 2rem; } -.ml-10 { - margin-left: 2.5rem; -} - -.ml-20 { - margin-left: 5rem; -} - -.ml-16 { - margin-left: 4rem; -} - -.mb-1 { - margin-bottom: .25rem; -} - .block { display: block; } @@ -367,10 +363,6 @@ img, video { display: inline-flex; } -.grid { - display: grid; -} - .hidden { display: none; } @@ -423,6 +415,10 @@ img, video { max-width: 72rem; } +.max-w-3xl { + max-width: 48rem; +} + .max-w-4xl { max-width: 56rem; } @@ -431,10 +427,6 @@ img, video { max-width: 42rem; } -.max-w-3xl { - max-width: 48rem; -} - .flex-1 { flex: 1; } @@ -447,10 +439,6 @@ img, video { cursor: pointer; } -.grid-cols-2 { - grid-template-columns: repeat(2, minmax(0, 1fr)); -} - .flex-col { flex-direction: column; } @@ -467,10 +455,6 @@ img, video { justify-content: space-between; } -.gap-3 { - gap: .75rem; -} - .gap-5 { gap: 1.25rem; } @@ -503,24 +487,14 @@ img, video { border-style: dotted; } -.border-gray-400 { - --tw-border-opacity: 1; - border-color: rgb(156 163 175 / var(--tw-border-opacity)); -} - -.border-gray-500 { - --tw-border-opacity: 1; - border-color: rgb(107 114 128 / var(--tw-border-opacity)); -} - -.border-gray-800 { +.border-gray-700 { --tw-border-opacity: 1; - border-color: rgb(31 41 55 / var(--tw-border-opacity)); + border-color: rgb(55 65 81 / var(--tw-border-opacity)); } -.border-gray-700 { +.border-gray-400 { --tw-border-opacity: 1; - border-color: rgb(55 65 81 / var(--tw-border-opacity)); + border-color: rgb(156 163 175 / var(--tw-border-opacity)); } .bg-white { @@ -567,16 +541,6 @@ img, video { background-color: #0000; } -.bg-n0pink-500 { - --tw-bg-opacity: 1; - background-color: rgb(255 172 156 / var(--tw-bg-opacity)); -} - -.bg-n0gray-700 { - --tw-bg-opacity: 1; - background-color: rgb(63 63 70 / var(--tw-bg-opacity)); -} - .bg-cover { background-size: cover; } @@ -593,10 +557,6 @@ img, video { padding: 1.5rem; } -.p-4 { - padding: 1rem; -} - .px-4 { padding-left: 1rem; padding-right: 1rem; @@ -642,11 +602,6 @@ img, video { padding-bottom: 1.5rem; } -.py-10 { - padding-top: 2.5rem; - padding-bottom: 2.5rem; -} - .pt-40 { padding-top: 10rem; } @@ -671,6 +626,18 @@ img, video { padding-bottom: 4rem; } +.pt-6 { + padding-top: 1.5rem; +} + +.pb-12 { + padding-bottom: 3rem; +} + +.pr-24 { + padding-right: 6rem; +} + .pt-12 { padding-top: 3rem; } @@ -760,24 +727,12 @@ img, video { line-height: 1.625; } -.leading-9 { - line-height: 2.25rem; -} - -.leading-7 { - line-height: 1.75rem; -} - .leading-8 { line-height: 2rem; } -.leading-10 { - line-height: 2.5rem; -} - -.leading-6 { - line-height: 1.5rem; +.leading-7 { + line-height: 1.75rem; } .text-n0pink-300 { @@ -810,6 +765,16 @@ img, video { color: rgb(63 63 70 / var(--tw-text-opacity)); } +.text-n0gray-500 { + --tw-text-opacity: 1; + color: rgb(113 113 122 / var(--tw-text-opacity)); +} + +.text-n0pink-500 { + --tw-text-opacity: 1; + color: rgb(255 172 156 / var(--tw-text-opacity)); +} + .text-gray-400 { --tw-text-opacity: 1; color: rgb(156 163 175 / var(--tw-text-opacity)); @@ -830,21 +795,11 @@ img, video { color: rgb(243 244 246 / var(--tw-text-opacity)); } -.text-n0pink-500 { - --tw-text-opacity: 1; - color: rgb(255 172 156 / var(--tw-text-opacity)); -} - .text-gray-300 { --tw-text-opacity: 1; color: rgb(209 213 219 / var(--tw-text-opacity)); } -.text-n0gray-500 { - --tw-text-opacity: 1; - color: rgb(113 113 122 / var(--tw-text-opacity)); -} - .underline { text-decoration-line: underline; } @@ -1039,8 +994,9 @@ img, video { width: 33.3333%; } - .sm\:w-1\/2 { - width: 50%; + .sm\:scroll-px-6 { + scroll-padding-left: 1.5rem; + scroll-padding-right: 1.5rem; } .sm\:grid-cols-2 { diff --git a/templates/layout.html b/templates/layout.html index 9ed9238..7151045 100644 --- a/templates/layout.html +++ b/templates/layout.html @@ -50,7 +50,7 @@ {% block navbar %}