diff --git a/Gemfile b/Gemfile
index 50b96461..42b23af3 100644
--- a/Gemfile
+++ b/Gemfile
@@ -91,3 +91,5 @@ gem "rack", "~> 2.2"
gem "tailwindcss-rails", "~> 2.7"
gem "httparty", "~> 0.22.0"
+
+gem "redcarpet", "~> 3.6"
diff --git a/Gemfile.lock b/Gemfile.lock
index efe1a188..5161e416 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -385,6 +385,7 @@ GEM
rdoc (6.7.0)
psych (>= 4.0.0)
recursive-open-struct (1.1.3)
+ redcarpet (3.6.0)
redis (4.8.1)
regexp_parser (2.9.2)
reline (0.5.10)
@@ -547,6 +548,7 @@ DEPENDENCIES
pundit (~> 2.1)
rack (~> 2.2)
rails (~> 7.2.1)
+ redcarpet (~> 3.6)
redis (~> 4.8)
responders!
rqrcode (~> 2.2)
diff --git a/README.md b/README.md
index cd3e4d63..da9cb9c3 100644
--- a/README.md
+++ b/README.md
@@ -3,9 +3,7 @@
- [ ] Onboarding flow
- [ ] we should have a feature to continuously poll stuff and figure out if they are still alive
- [ ] Healthchecks and whatnot
-- [ ] Finish the landing page
- [ ] Write the manifesto
-- [ ] show last healthcheck
- [ ] allow public network access flag is not currently doing anything
* Make it show which git SHA is currently deployed on the homepage
* Or if there is currently a deploy happening
diff --git a/app/assets/stylesheets/custom.css b/app/assets/stylesheets/custom.css
index 08999009..9cfa9f73 100644
--- a/app/assets/stylesheets/custom.css
+++ b/app/assets/stylesheets/custom.css
@@ -16,4 +16,8 @@
.animate-click {
animation: click-animation 300ms ease-in-out;
+}
+
+.prose-lg th {
+ @apply text-left;
}
\ No newline at end of file
diff --git a/app/controllers/static_controller.rb b/app/controllers/static_controller.rb
index 1d6b7e56..4e66978c 100644
--- a/app/controllers/static_controller.rb
+++ b/app/controllers/static_controller.rb
@@ -1,6 +1,13 @@
class StaticController < ApplicationController
+ MANIFESTO_FILE = Rails.root.join("public", "manifesto.md")
skip_before_action :authenticate_user!
def index
end
+
+ def manifesto
+ @content = File.read(MANIFESTO_FILE)
+ renderer = Redcarpet::Render::HTML.new
+ @markdown = Redcarpet::Markdown.new(renderer, tables: true)
+ end
end
diff --git a/app/views/static/about.html.erb b/app/views/static/about.html.erb
deleted file mode 100644
index 2dea23f8..00000000
--- a/app/views/static/about.html.erb
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
Why do we exist?
- In a previous start up, I saw first hand how the cost of hosting a web app could explode over time.
-
- What was weird was that costs grew with organizational complexity, not compute complexity, and often in area's I never expected.
-
- As it turns out, the cost you pay to host your app is only a fraction of the total IT spend.
-
-
-
diff --git a/app/views/static/landing_page/_hero.html.erb b/app/views/static/landing_page/_hero.html.erb
index 9013f57a..b3787b56 100644
--- a/app/views/static/landing_page/_hero.html.erb
+++ b/app/views/static/landing_page/_hero.html.erb
@@ -20,6 +20,9 @@
Canine is a Kubernetes platform that makes it easy to deploy and manage your applications.
<%= link_to "Get started", new_user_registration_path, class: "rounded-md bg-indigo-500 px-3.5 py-2.5 text-sm font-semibold text-white shadow-sm hover:bg-indigo-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-400" %>
+ <%= link_to manifesto_path, class: "text-sm font-semibold leading-6 text-white" do %>
+ Our manifesto →
+ <% end %>
diff --git a/app/views/static/manifesto.html.erb b/app/views/static/manifesto.html.erb
new file mode 100644
index 00000000..d5de846c
--- /dev/null
+++ b/app/views/static/manifesto.html.erb
@@ -0,0 +1,5 @@
+
+
+ <%= @markdown.render(@content).html_safe %>
+
+
diff --git a/config/routes.rb b/config/routes.rb
index a8d62157..349576c3 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -7,6 +7,7 @@ Rails.application.routes.draw do
end
get "/privacy", to: "static#privacy"
get "/terms", to: "static#terms"
+ get "/manifesto", to: "static#manifesto"
authenticated :user do
root to: "projects#index", as: :user_root
diff --git a/public/manifesto.md b/public/manifesto.md
new file mode 100644
index 00000000..da21218d
--- /dev/null
+++ b/public/manifesto.md
@@ -0,0 +1,38 @@
+# Why does Canine exist?
+
+As a cofounder of a previous start up, I saw first hand how the cost of hosting a web app could explode over time.
+
+What I found weird was that costs grew with organizational complexity, not compute complexity, and often in area's I never expected.
+
+As it turns out, the cost you pay to host
your app is only a fraction of the total IT spend.
+
+I'll walk through the history of our IT spend and see how it grew over time.
+
+### At Launch
+| Service | Spend (monthly) |
+| -------- | ------- |
+| Heroku | $100 |
+| Google Maps | $50 |
+| Sentry | FREE |
+| Looker | $1000 |
+| Redshift | $800 |
+| FiveTran | $600 |
+| **TOTAL** | **$2950** |
+
+Interesting to note, the cost of hosting our app (Heroku) was a tiny portion of our IT spend.
+
+By year 1, we had grown our team (40+), and added a few more tools to our tech stack.
+
+### Year 1
+| Service | Spend (monthly) |
+| -------- | ------- |
+| Heroku | $1000 |
+| AWS | $1000 |
+| Google Maps | $500 |
+| Sentry | $300 |
+| Looker | $5000 |
+| DBT Cloud | $1000 |
+| Databricks | $5000 |
+| Redshift | $1500 |
+| FiveTran | $2000 |
+| **TOTAL** | **$16800** |
\ No newline at end of file