landing_boi 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +51 -0
  4. data/Rakefile +32 -0
  5. data/app/assets/config/landing_boi_manifest.js +3 -0
  6. data/app/assets/images/landing_boi/avatar_charlie.png +0 -0
  7. data/app/assets/images/landing_boi/avatar_tom.jpg +0 -0
  8. data/app/assets/images/landing_boi/logo.svg +11 -0
  9. data/app/assets/images/landing_boi/screenshot.png +0 -0
  10. data/app/assets/javascripts/landing_boi/application.js +18 -0
  11. data/app/assets/stylesheets/bootstrap_customizer.scss +6 -0
  12. data/app/assets/stylesheets/landing_boi/_header.scss +6 -0
  13. data/app/assets/stylesheets/landing_boi/_index.scss +59 -0
  14. data/app/assets/stylesheets/landing_boi/application.scss +37 -0
  15. data/app/assets/stylesheets/landing_boi/bootstrap_overrides.scss +7 -0
  16. data/app/controllers/landing_boi/application_controller.rb +5 -0
  17. data/app/controllers/landing_boi/landing_controller.rb +25 -0
  18. data/app/helpers/landing_boi/application_helper.rb +16 -0
  19. data/app/jobs/landing_boi/application_job.rb +4 -0
  20. data/app/mailers/landing_boi/application_mailer.rb +6 -0
  21. data/app/models/landing_boi/application_record.rb +5 -0
  22. data/app/views/landing_boi/landing/_faqs.html.erb +19 -0
  23. data/app/views/landing_boi/landing/_features.html.erb +24 -0
  24. data/app/views/landing_boi/landing/_hero_a.html.erb +13 -0
  25. data/app/views/landing_boi/landing/_pricing_blurb.html.erb +23 -0
  26. data/app/views/landing_boi/landing/_recommendations.html.erb +30 -0
  27. data/app/views/landing_boi/landing/_screenshot.html.erb +9 -0
  28. data/app/views/landing_boi/landing/_signup_buttons.html.erb +7 -0
  29. data/app/views/landing_boi/landing/_social_proof.html.erb +13 -0
  30. data/app/views/landing_boi/landing/about.html.erb +42 -0
  31. data/app/views/landing_boi/landing/features.html.erb +25 -0
  32. data/app/views/landing_boi/landing/features/_final_blurb.html.erb +9 -0
  33. data/app/views/landing_boi/landing/features/_hero.html.erb +7 -0
  34. data/app/views/landing_boi/landing/features/_social_proof.html.erb +9 -0
  35. data/app/views/landing_boi/landing/index.html.erb +23 -0
  36. data/app/views/landing_boi/landing/pricing.html.erb +49 -0
  37. data/app/views/landing_boi/landing/pricing/_pricing_tiles.html.erb +28 -0
  38. data/app/views/landing_boi/landing/pricing/_social_proof.html.erb +9 -0
  39. data/app/views/landing_boi/landing/privacy.html.erb +19 -0
  40. data/app/views/landing_boi/landing/terms.html.erb +42 -0
  41. data/app/views/layouts/landing_boi/_footer.html.erb +60 -0
  42. data/app/views/layouts/landing_boi/_header.html.erb +23 -0
  43. data/app/views/layouts/landing_boi/application.html.erb +22 -0
  44. data/config/routes.rb +8 -0
  45. data/lib/generators/landing_boi/config_generator.rb +15 -0
  46. data/lib/generators/landing_boi/views_generator.rb +11 -0
  47. data/lib/landing_boi.rb +263 -0
  48. data/lib/landing_boi/engine.rb +16 -0
  49. data/lib/landing_boi/version.rb +3 -0
  50. data/lib/tasks/landing_boi_tasks.rake +4 -0
  51. metadata +189 -0
@@ -0,0 +1,9 @@
1
+ <div class="mt-5 pt-3 pt-md-5">
2
+
3
+ <a href="<%= urls[:demo] %>">
4
+
5
+ <%= image_tag(assets[:screenshot_path], class: 'w-100 rounded grow') %>
6
+
7
+ </a>
8
+
9
+ </div>
@@ -0,0 +1,7 @@
1
+ <a href="<%= urls[:get_started] %>" class="btn btn-primary mt-2 py-2_5 px-4 mr-md-3 d-block d-md-inline-block">
2
+ <%= text[:buttons][:get_started] %>
3
+ </a>
4
+
5
+ <a href="<%= urls[:demo] %>" class="btn btn-light text-secondary mt-2 py-2_5 px-4 d-block d-md-inline-block">
6
+ <%= text[:buttons][:demo] %>
7
+ </a>
@@ -0,0 +1,13 @@
1
+ <div class="pt-3 pt-md-5 social-proof">
2
+
3
+ <h3 class="mt-5 h3 text-inter">
4
+ <%= raw text[:index][:social_proof][:title] %>
5
+ </h3>
6
+
7
+ <p class="mb-0 mt-3 text-secondary">
8
+ <%= raw text[:index][:social_proof][:p] %>
9
+ </p>
10
+
11
+ <%= render 'recommendations' %>
12
+
13
+ </div>
@@ -0,0 +1,42 @@
1
+ <main class="container index">
2
+
3
+ <div class="row pb-5">
4
+
5
+ <div class="<%= css[:col_class] %>">
6
+
7
+ <h1 class="mt-4 h1 text-inter">
8
+ <%= raw text[:about][:h1] %>
9
+ </h1>
10
+
11
+ <p class="text-secondary mt-3">
12
+ <%= raw text[:about][:h1_subtitle] %>
13
+ </p>
14
+
15
+
16
+ <% text[:about][:sections].each do |sec| %>
17
+
18
+ <div>
19
+
20
+ <h3 class="h3 text-inter mt-5 pt-md-2 mb-4">
21
+ <%= raw sec[:h3] %>
22
+ </h3>
23
+
24
+ <% sec[:ps].each do |p| %>
25
+
26
+ <p class="mt-3 mb-0 text-secondary">
27
+
28
+ <%= raw p %>
29
+
30
+ </p>
31
+
32
+ <% end %>
33
+
34
+ </div>
35
+
36
+ <% end %>
37
+
38
+ </div>
39
+
40
+ </div>
41
+
42
+ </main>
@@ -0,0 +1,25 @@
1
+ <main class="container index">
2
+
3
+ <div class="row">
4
+
5
+ <div class="<%= css[:col_class] %>">
6
+
7
+ <%= render 'landing_boi/landing/features/hero' %>
8
+
9
+ <%= render 'screenshot' %>
10
+
11
+ <%= render 'features', all_features: 'true' %>
12
+
13
+ <%= render 'landing_boi/landing/features/social_proof' %>
14
+
15
+ <%= render 'landing_boi/landing/features/final_blurb' %>
16
+
17
+ <div class="my-5">
18
+ <%= render 'signup_buttons' %>
19
+ </div>
20
+
21
+ </div>
22
+
23
+ </div>
24
+
25
+ </main>
@@ -0,0 +1,9 @@
1
+ <div class="mt-5 pt-5">
2
+ <h3 class="h5 mt-3 text-inter">
3
+ <%= raw text[:features_page][:final_blurb][:title] %>
4
+ </h3>
5
+
6
+ <p class="text-secondary mb-0 mt-3">
7
+ <%= raw text[:features_page][:final_blurb][:p] %>
8
+ </p>
9
+ </div>
@@ -0,0 +1,7 @@
1
+ <h1 class="mt-4 h1 text-inter">
2
+ <%= raw text[:features_page][:h1] %>
3
+ </h1>
4
+
5
+ <p class="text-secondary mt-3">
6
+ <%= raw text[:features_page][:h1_subtitle] %>
7
+ </p>
@@ -0,0 +1,9 @@
1
+ <div class="pt-3 pt-md-5 social-proof">
2
+
3
+ <h3 class="mt-5 h3 text-inter">
4
+ <%= raw text[:features_page][:social_proof][:title] %>
5
+ </h3>
6
+
7
+ <%= render 'recommendations' %>
8
+
9
+ </div>
@@ -0,0 +1,23 @@
1
+ <main class="container index">
2
+
3
+ <div class="row">
4
+
5
+ <div class="<%= css[:col_class] %>">
6
+
7
+ <%= render 'hero_a' %>
8
+
9
+ <%= render 'features' %>
10
+
11
+ <%= render 'screenshot' %>
12
+
13
+ <%= render 'social_proof' %>
14
+
15
+ <%= render 'faqs' %>
16
+
17
+ <%= render 'pricing_blurb' %>
18
+
19
+ </div>
20
+
21
+ </div>
22
+
23
+ </main>
@@ -0,0 +1,49 @@
1
+ <main class="container index">
2
+
3
+ <div class="row">
4
+
5
+ <div class="<%= css[:col_class] %>">
6
+
7
+ <h1 class="mt-4 h1 text-inter">
8
+ <%= raw text[:pricing][:h1] %>
9
+ </h1>
10
+
11
+ <p class="text-secondary mt-3">
12
+ <%= raw text[:pricing][:h1_subtitle] %>
13
+ </p>
14
+
15
+ <%= render 'landing_boi/landing/pricing/pricing_tiles' %>
16
+
17
+ <div class="mt-4">
18
+
19
+ <% text[:pricing][:notes].each do |note| %>
20
+
21
+ <p class="mt-2 mb-0 text-secondary">
22
+ <%= raw note %>
23
+ </p>
24
+
25
+ <% end %>
26
+
27
+ </div>
28
+
29
+ <%= render 'landing_boi/landing/pricing/social_proof' %>
30
+
31
+ <div class="pt-3 pt-md-5 pb-3 pb-md-5">
32
+
33
+ <h3 class="mt-5 h3 mb-4 text-inter">
34
+ <%= raw text[:pricing][:assurance][:title] %>
35
+ </h3>
36
+
37
+ <% text[:pricing][:assurance][:paragraphs].each do |p| %>
38
+ <p class="mt-3 mb-0 text-secondary">
39
+ <%= raw p %>
40
+ </p>
41
+ <% end %>
42
+
43
+ </div>
44
+
45
+ </div>
46
+
47
+ </div>
48
+
49
+ </main>
@@ -0,0 +1,28 @@
1
+ <% plans.each do |plan|
2
+ %><div class="plan col-12 col-md-4 mx-auto pl-0 pr-3 pr-xl-4 mt-5 d-inline-block">
3
+
4
+ <div class="shadow text-center grow pb-4">
5
+
6
+ <h5 class="bg-light p-3 rounded text-inter mb-0">
7
+ <%= raw plan[:title] %>
8
+ </h5>
9
+
10
+ <%= image_tag plan[:image], class: 'mt-4' %>
11
+
12
+ <h4 class="mt-4 text-inter mb-0">
13
+ <%= raw plan[:price] %> / <%= raw plan[:freq] %>
14
+ </h4>
15
+
16
+ <p class="mt-4 mb-0 text-secondary">
17
+ <%= raw plan[:description] %>
18
+ </p>
19
+
20
+ <a href="<%= urls[:get_started] %>" class="btn btn-primary mt-4 py-2_5 px-4 d-inline-block d-md-inline-block">
21
+ <%= text[:buttons][:get_started] %>
22
+ </a>
23
+
24
+ </div>
25
+
26
+ </div
27
+ ><% end %>
28
+
@@ -0,0 +1,9 @@
1
+ <div class="pt-3 pt-md-5 social-proof">
2
+
3
+ <h3 class="mt-5 h3 text-inter">
4
+ <%= raw text[:pricing][:social_proof][:title] %>
5
+ </h3>
6
+
7
+ <%= render 'recommendations' %>
8
+
9
+ </div>
@@ -0,0 +1,19 @@
1
+ <main class="container index">
2
+
3
+ <div class="row">
4
+
5
+ <div class="<%= css[:col_class] %>">
6
+
7
+ <h2 class="text-inter mb-4">Privacy policy</h2>
8
+ <p>Your privacy is important to us. It is <%= startup[:product] %>'s policy (which is owned and operated by <%= startup[:legal_entity] %>) to respect your privacy regarding any information we may collect from you across our website, <a href="<%= urls[:website_root] %>"><%= urls[:website_root] %></a>, and other sites we own and operate.</p>
9
+ <p>We only ask for personal information when we truly need it to provide a service to you. We collect it by fair and lawful means, with your knowledge and consent. We also let you know why we’re collecting it and how it will be used.</p>
10
+ <p>We only retain collected information for as long as necessary to provide you with your requested service. What data we store, we’ll protect within commercially acceptable means to prevent loss and theft, as well as unauthorised access, disclosure, copying, use or modification.</p>
11
+ <p>We don’t share any personally identifying information publicly or with third-parties, except when required to by law.</p>
12
+ <p>Our website may link to external sites that are not operated by us. Please be aware that we have no control over the content and practices of these sites, and cannot accept responsibility or liability for their respective privacy policies.</p>
13
+ <p>You are free to refuse our request for your personal information, with the understanding that we may be unable to provide you with some of your desired services.</p>
14
+ <p>Your continued use of our website will be regarded as acceptance of our practices around privacy and personal information. If you have any questions about how we handle user data and personal information, feel free to contact us.</p>
15
+ <p>This policy is effective as of <%= startup[:effective_date] %>.</p>
16
+ <p class="text-muted"><i>Privacy Policy created with GetTerms.io</i></p>
17
+ </div>
18
+ </div>
19
+ </main>
@@ -0,0 +1,42 @@
1
+ <main class="container index">
2
+
3
+ <div class="row">
4
+
5
+ <div class="<%= css[:col_class] %>">
6
+
7
+ <h2 class="text-inter mb-4"><%= startup[:product] %> (owned and operated by <%= startup[:legal_entity] %>) terms of service</h2>
8
+ <h3>1. Terms</h3>
9
+ <p>By accessing the website at <a href="<%= urls[:website_root] %>"><%= urls[:website_root] %></a>, you are agreeing to be bound by these terms of service, all applicable laws and regulations, and agree that you are responsible for compliance with any applicable local laws. If you do not agree with any of these terms, you are prohibited from using or accessing this site. The materials contained in this website are protected by applicable copyright and trademark law.</p>
10
+ <h3>2. Use licence</h3>
11
+ <ol type="a">
12
+ <li>Permission is granted to temporarily download one copy of the materials (information or software) on <%= startup[:product] %>'s website for personal, non-commercial transitory viewing only. This is the grant of a licence, not a transfer of title, and under this licence you may not:
13
+ <ol type="i">
14
+ <li>modify or copy the materials;</li>
15
+ <li>use the materials for any commercial purpose, or for any public display (commercial or non-commercial);</li>
16
+ <li>attempt to decompile or reverse engineer any software contained on <%= startup[:product] %>'s website;</li>
17
+ <li>remove any copyright or other proprietary notations from the materials; or</li>
18
+ <li>transfer the materials to another person or "mirror" the materials on any other server.</li>
19
+ </ol>
20
+ </li>
21
+ <li>This licence shall automatically terminate if you violate any of these restrictions and may be terminated by <%= startup[:product] %> at any time. Upon terminating your viewing of these materials or upon the termination of this licence, you must destroy any downloaded materials in your possession whether in electronic or printed format.</li>
22
+ </ol>
23
+ <h3>3. Disclaimer</h3>
24
+ <ol type="a">
25
+ <li>The materials on <%= startup[:product] %>'s website are provided on an 'as is' basis. <%= startup[:product] %> makes no warranties, expressed or implied, and hereby disclaims and negates all other warranties including, without limitation, implied warranties or conditions of merchantability, fitness for a particular purpose, or non-infringement of intellectual property or other violation of rights.</li>
26
+ <li>Further, <%= startup[:product] %> does not warrant or make any representations concerning the accuracy, likely results, or reliability of the use of the materials on its website or otherwise relating to such materials or on any sites linked to this site.</li>
27
+ </ol>
28
+ <h3>4. Limitations</h3>
29
+ <p>In no event shall <%= startup[:product] %> or its suppliers be liable for any damages (including, without limitation, damages for loss of data or profit, or due to business interruption) arising out of the use or inability to use the materials on <%= startup[:product] %>'s website, even if <%= startup[:product] %> or a <%= startup[:product] %> authorised representative has been notified orally or in writing of the possibility of such damage. Because some jurisdictions do not allow limitations on implied warranties, or limitations of liability for consequential or incidental damages, these limitations may not apply to you.</p>
30
+ <h3>5. Accuracy of materials</h3>
31
+ <p>The materials appearing on <%= startup[:product] %>'s website could include technical, typographical, or photographic errors. <%= startup[:product] %> does not warrant that any of the materials on its website are accurate, complete or current. <%= startup[:product] %> may make changes to the materials contained on its website at any time without notice. However <%= startup[:product] %> does not make any commitment to update the materials.</p>
32
+ <h3>6. Links</h3>
33
+ <p><%= startup[:product] %> has not reviewed all of the sites linked to its website and is not responsible for the contents of any such linked site. The inclusion of any link does not imply endorsement by <%= startup[:product] %> of the site. Use of any such linked website is at the user's own risk.</p>
34
+ <h3>7. Modifications</h3>
35
+ <p><%= startup[:product] %> may revise these terms of service for its website at any time without notice. By using this website you are agreeing to be bound by the then current version of these terms of service.</p>
36
+ <h3>8. Governing law</h3>
37
+ <p>These terms and conditions are governed by and construed in accordance with the laws of <%= startup[:location] %>, and you irrevocably submit to the exclusive jurisdiction of the courts in that location.</p>
38
+ <p>Terms of use created with GetTerms.io</p>
39
+
40
+ </div>
41
+ </div>
42
+ </main>
@@ -0,0 +1,60 @@
1
+ <footer class="container py-3 py-md-5 mb-5">
2
+
3
+ <div class="row">
4
+ <div class="<%= css[:col_class] %>">
5
+ <div class="bg-light divider rounded mt-4"></div>
6
+ </div>
7
+ </div>
8
+
9
+ <div class="row mt-3 mt-md-5">
10
+
11
+ <div class="<%= css[:col_class] %> mt-5">
12
+
13
+ <div class="col-12 col-md-6 px-0 pr-md-5 d-inline-block align-top">
14
+
15
+ <h3 class="h5 text-inter mb-0">
16
+ <a href="<%= urls[:logo] %>" class="text-body">
17
+ <%= raw footer[:product][:name] %>
18
+ <%= image_tag(assets[:logo_path], class: 'pl-1 logo grow') %>
19
+ </a>
20
+ </h3>
21
+
22
+ <p class="text-secondary mt-2 mb-0">
23
+ <%= raw footer[:product][:plug] %>
24
+ </p>
25
+
26
+ <p class="text-secondary mt-2 mb-0">
27
+ Copyright © <%= Time.now.year %> <%= raw footer[:product][:company] %>
28
+ </p>
29
+
30
+ </div
31
+
32
+ ><div class="col-12 col-md-6 mt-4 mt-md-0 pt-2 pt-md-0 px-0 d-inline-block px-14 align-top">
33
+
34
+ <% footer[:links].each do |key, obj|
35
+
36
+ %><div class="col-<%= 12 / footer[:links].size %> d-inline-block align-top px-0">
37
+
38
+ <h6 class="text-inter mb-0">
39
+ <%= key.to_s.titleize %>
40
+ </h6>
41
+
42
+ <ul class="p-0">
43
+ <% obj.each do |text, url| %>
44
+ <li class="mt-2"><a href="<%= url %>" class="text-secondary">
45
+ <%= text.to_s.capitalize %>
46
+ </a></li>
47
+ <% end %>
48
+ </ul>
49
+
50
+ </div><%
51
+
52
+ end %>
53
+
54
+ </div>
55
+
56
+ </div>
57
+
58
+ </div>
59
+
60
+ </footer>
@@ -0,0 +1,23 @@
1
+ <header class="container my-5 pt-4">
2
+
3
+ <div class="row">
4
+
5
+ <div class="<%= css[:col_class] %>">
6
+
7
+ <div class="col-6 px-0 text-left d-inline-block">
8
+ <a href="<%= urls[:logo] %>">
9
+ <%= image_tag(assets[:logo_path], class: 'logo grow') %>
10
+ </a>
11
+ </div><!--
12
+
13
+ --><div class="col-6 px-0 text-right d-inline-block">
14
+ <a href="<%= urls[:sign_in] %>" class='btn btn-light rounded text-secondary px-3'>Sign in
15
+ <%= fa_icon "long-arrow-right", class: 'pl-1' %>
16
+ </a>
17
+ </div>
18
+
19
+ </div>
20
+
21
+ </div>
22
+
23
+ </header>
@@ -0,0 +1,22 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Landing boi</title>
5
+ <%= csrf_meta_tags %>
6
+ <%= csp_meta_tag %>
7
+
8
+ <%= stylesheet_link_tag "landing_boi/application", media: "all" %>
9
+ <%= stylesheet_link_tag "bootstrap_customizer", media: "all" %>
10
+
11
+ <%= javascript_include_tag 'landing_boi/application' %>
12
+ </head>
13
+ <body class="landing-boi">
14
+
15
+ <%= render 'layouts/landing_boi/header' %>
16
+
17
+ <%= yield %>
18
+
19
+ <%= render 'layouts/landing_boi/footer' %>
20
+
21
+ </body>
22
+ </html>
@@ -0,0 +1,8 @@
1
+ LandingBoi::Engine.routes.draw do
2
+ root to: "landing#index"
3
+ get '/features', to: "landing#features"
4
+ get '/pricing', to: "landing#pricing"
5
+ get '/about', to: 'landing#about'
6
+ get '/terms', to: 'landing#terms'
7
+ get '/privacy', to: 'landing#privacy'
8
+ end
@@ -0,0 +1,15 @@
1
+ module LandingBoi
2
+ class ConfigGenerator < Rails::Generators::Base
3
+ desc "Creates landing_boi.rb initializer file with default LandingBoi mattr values (so you can change them to match your needs)."
4
+ source_root File.expand_path("../../../../", __FILE__)
5
+
6
+ def create_initializer_file
7
+ initializer "landing_boi.rb" do
8
+ File.open(File.expand_path("../../../../lib/landing_boi.rb", __FILE__), 'r')
9
+ .read
10
+ .match(/# START CONFIG(\s|.)*# STOP CONFIG/)[0]
11
+ .to_s
12
+ end
13
+ end
14
+ end
15
+ end