{"version":3,"file":"js/application-a890929a5ecbe64d8979.js","mappings":"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","sources":["webpack://app/./app/javascript/bundles/HelloWorld/components/HelloWorld.module.css?99fc","webpack://app/./app/javascript/bundles/HelloWorld/components/HelloWorld.jsx","webpack://app/./app/javascript/controllers/application.js","webpack://app/./app/javascript/controllers/checkout_controller.js","webpack://app/./app/javascript/controllers/hello_controller.js","webpack://app/./app/javascript/controllers/invoice_controller.js","webpack://app/./app/javascript/controllers/know_nothing_controller.js","webpack://app/./app/javascript/controllers/thing_controller.js","webpack://app/./app/javascript/controllers/typeahead_controller.js","webpack://app/./app/javascript/controllers/typeahead_results_controller.js","webpack://app/./app/javascript/controllers/variant_selection_controller.js","webpack://app/./app/javascript/controllers/video_controller.js","webpack://app/./app/javascript/controllers/xyz_controller.js","webpack://app/./app/javascript/controllers/index.js","webpack://app/./app/javascript/effects/softfade_effect.js","webpack://app/./app/javascript/effects/pop_in_effect.js","webpack://app/./app/javascript/effects/roll_in_effect.js","webpack://app/./app/javascript/components/basic_elements/wrapper_input_element.js","webpack://app/./app/javascript/components/marketing/EcommerceImportanceQuestions.js","webpack://app/./app/javascript/components/marketing/DoYouNeedAnimatedPages.js","webpack://app/./app/javascript/components/marketing/HowMuchWillingToPay.js","webpack://app/./app/javascript/components/marketing/GetInTouchButton.js","webpack://app/./app/javascript/components/marketing/WixOrShopifyWidget.js","webpack://app/./app/javascript/components/marketing/YesNoChoice.js","webpack://app/./app/javascript/components/marketing/DoYouHaveAReasonWhyYouLikeWordpress.js","webpack://app/./app/javascript/components/marketing/DoYouWantToProduceHighQualityFlyingPagesQuicklyAtLittleCost.js","webpack://app/./app/javascript/components/marketing/DoYouWantToSucceedOnlineToday.js","webpack://app/./app/javascript/components/marketing/WixOrWordpressWidget.js","webpack://app/./app/javascript/components/marketing/DoYouWantToBeOnARobustPlatform.js","webpack://app/./app/javascript/components/marketing/IsEcommerceAMinorPartOfYourBusiness.js","webpack://app/./app/javascript/components/marketing/ShopifyOrBlankWidget.js","webpack://app/./app/javascript/components/marketing/ShopifyOrMegentoWidget.js","webpack://app/./app/javascript/components/marketing/WixOrSquareSpaceWidget.js","webpack://app/./app/javascript/components/marketing/FixedCostResponse.js","webpack://app/./app/javascript/components/marketing/TimeAndMaterialsResponse.js","webpack://app/./app/javascript/components/marketing/ContractTypeChooser.js","webpack://app/./app/javascript/components/marketing/Tagline.js","webpack://app/./app/javascript/components/marketing/NextJsAnimationFlipper.js","webpack://app/./app/javascript/components/marketing/heroku_pipeline_estimator/SingleAppDeployQuestions.js","webpack://app/./app/javascript/components/marketing/heroku_pipeline_estimator/GetOnGithubQuestions.js","webpack://app/./app/javascript/components/marketing/heroku_pipeline_estimator/IdentifyEnvironmentDependencies.js","webpack://app/./app/javascript/components/marketing/heroku_pipeline_estimator/ContinuousIntegrationQuestions.js","webpack://app/./app/javascript/components/marketing/heroku_pipeline_estimator/HPEstimate.js","webpack://app/./app/javascript/components/marketing/heroku_pipeline_estimator/HerokuPipelineEstimateBuilder.js","webpack://app/./app/javascript/components/basic_elements/logo/Arrow.js","webpack://app/./app/javascript/components/basic_elements/logo/HoverTarget.js","webpack://app/./app/javascript/components/basic_elements/logo/Dot.js","webpack://app/./app/javascript/components/basic_elements/logo/RightArrow.js","webpack://app/./app/javascript/components/basic_elements/logo/Logo.js","webpack://app/./app/javascript/packs/application.js","webpack://app/./app/javascript/packs/hello-world-bundle.js"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"bright\":\"KUWOdYZ4Lk42k3lvLUcM\"};","import PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport style from './HelloWorld.module.css';\n\nconst HelloWorld = (props) => {\n const [name, setName] = useState(props.name);\n\n return (\n
\n

Hello, {name}!

\n
\n
\n \n
\n
\n );\n};\n\nHelloWorld.propTypes = {\n name: PropTypes.string.isRequired, // this is passed from the Rails view\n};\n\nexport default HelloWorld;\n","import { Application } from \"@hotwired/stimulus\"\n\nconst application = Application.start()\n\n// Configure Stimulus development experience\napplication.debug = false\nwindow.Stimulus = application\n\nexport { application }\n","import { Controller } from \"@hotwired/stimulus\"\n\n// Connects to data-controller=\"checkout\"\nexport default class extends Controller {\n static targets = [\"submitPaymentForm\",\n \"submitButton\", \"cardErrors\", \"cardholderName\", \"cardResult\"];\n\n onChangeHandler(event) {\n // scope changes to event context here -- why\n var displayError = document.getElementById('card-errors');\n if (event.error) {\n this.cardErrorsTarget.textContent = event.error.message;\n } else {\n this.cardErrorsTarget.textContent = '';\n }\n\n this.submitButtonTarget.removeAttribute('disabled')\n }\n\n connect() {\n if (typeof (Stripe) == \"undefined\") {\n console.error(\"Stripe is not loaded\");\n return;\n }\n\n // stripe JS\n var stripe = Stripe(VERSO.__stripe_pk);\n var elements = stripe.elements();\n\n\n const submitPaymentForm = (payment_method_id) => {\n console.log(\"submitPaymentForm\")\n\n // Insert the token ID into the form so it gets submitted to the server\n var form = this.submitPaymentFormTarget;\n var hiddenInput = document.createElement('input');\n hiddenInput.setAttribute('type', 'hidden');\n hiddenInput.setAttribute('name', 'checkout[stripeMethodId]');\n hiddenInput.setAttribute('value', payment_method_id);\n form.append(hiddenInput);\n // Submit the form\n form.submit();\n this.submitButtonTarget.attr(\"disabled\", true);\n }\n\n const stripeSubmitInteraction = (event) => {\n console.log(\"stripeSubmitInteraction\")\n event.preventDefault();\n stripe.confirmCardPayment(VERSO.__stripe_payment_intent_client_secret, {\n payment_method: {\n card: card,\n billing_details: {\n name: this.cardholderNameTarget.value\n }\n },\n setup_future_usage: 'off_session'\n }).then(stripeAfterInteraction.bind(this));\n return false;\n }\n\n const stripeAfterInteraction = (result) => {\n console.log(\"stripeAfterInteraction\")\n\n if (result.error) {\n // Show error to your customer\n console.log(\"ERROR\", result.error.message);\n } else {\n if (result.paymentIntent.status === 'succeeded') {\n this.cardResultTarget.textContent = \"Your card was saved! One moment please...\";\n submitPaymentForm(result.paymentIntent.payment_method)\n }\n }\n }\n\n if (this.submitPaymentFormTarget.length > 0) {\n var card = elements.create('card');\n card.mount('#card-element');\n card.addEventListener('change', this.onChangeHandler.bind(this), false);\n this.submitPaymentFormTarget.addEventListener('submit', stripeSubmitInteraction.bind(this), false);\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n connect() {\n this.element.textContent = \"Hello World!\"\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nconst slideDown = elem => elem.style.height = `${elem.scrollHeight}px`;\n\n\n// Connects to data-controller=\"invoice\"\nexport default class extends Controller {\n static targets = ['invoiceGatewayForm', 'payThisInvoice', 'payAnotherAmount',\n 'payNowLink', 'paymentChoiceThisInvoiceOnly',\n 'payNowSection', 'thisInvoiceOnlyRadio',\n 'anotherAmountRadio'];\n\n connect() {\n console.log(\"invoice controller connected\")\n\n const resetRadioSelection = () => {\n let selected = this.invoiceGatewayFormTarget.querySelector('input[name=\"payment_choice\"]:checked').value;\n\n if (selected == 'this_invoice_only') {\n this.payThisInvoiceTarget.removeAttribute('disabled')\n this.payAnotherAmountTarget.setAttribute('disabled','disabled')\n } else {\n this.payAnotherAmountTarget.removeAttribute('disabled')\n }\n }\n\n this.anotherAmountRadioTarget.addEventListener('change', resetRadioSelection);\n this.thisInvoiceOnlyRadioTarget.addEventListener('change', resetRadioSelection);\n\n this.payNowLinkTarget.addEventListener(\"click\", (e) => {\n e.preventDefault(); e.stopPropagation();\n this.payNowSectionTarget.setAttribute('style', 'display: block');\n this.payNowLinkTarget.setAttribute('style', 'display: none');\n this.payThisInvoiceTarget.setAttribute('checked', 'checked');\n this.payNowSectionTarget.scrollIntoView(false)\n console.log(\"this.payNowSectionTarget.getBoundingClientRect().top\", this.payNowSectionTarget.getBoundingClientRect().top)\n\n window.scrollTo({top: this.payNowSectionTarget.getBoundingClientRect().bottom + 100});\n })\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"intakeSection\", \"justTakeMyEmailSection\",\n \"justTakeMyEmailTeaserButton\",\n \"justTakeMyEmailForm\",\n \"take-email-button\",\n \"somethingElseInput\",\n \"anotherPlatformInput\", \"customerInfo\"]\n\n connect() {\n this.justTakeMyEmail\n }\n\n highlight_section(x) {\n if(x===\"intake\") {\n this.intakeSectionTarget.classList.remove(\"disabled\")\n this.justTakeMyEmailFormTarget.classList.add(\"hidden\")\n this.justTakeMyEmailTeaserButtonTarget.classList.remove(\"disabled\")\n this.customerInfoTarget.classList.remove(\"hidden\")\n } else {\n this.justTakeMyEmailTeaserButtonTarget.classList.add(\"disabled\")\n this.justTakeMyEmailFormTarget.classList.remove(\"hidden\")\n this.justTakeMyEmailSectionTarget.classList.remove(\"disabled\")\n this.intakeSectionTarget.classList.add(\"disabled\")\n this.customerInfoTarget.classList.add(\"hidden\")\n\n }\n }\n\n click_justTakeMyEmail() {\n this.highlight_section(\"just-take-my-email\")\n }\n click_intakeSection() {\n this.highlight_section(\"intake\")\n }\n\n click_somethingElseChoice(event) {\n if(event.target.checked) {\n this.somethingElseInputTarget.classList.remove(\"not-there\")\n } else {\n this.somethingElseInputTarget.classList.add(\"not-there\")\n }\n }\n\n click_anotherPlatformChoice(event) {\n if(event.target.checked) {\n this.anotherPlatformInputTarget.classList.remove(\"not-there\")\n } else {\n this.anotherPlatformInputTarget.classList.add(\"not-there\")\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\n// Connects to data-controller=\"thing\"\nexport default class extends Controller {\n static outlets = [\"xyz\"]\n connect() {\n console.log(\"thing connect\", this.xyzOutlet);\n console.log(\"this.hasXyzOutlet\", this.hasXyzOutlet)\n console.log(\"thing cnotroller - the xyz outlet is\", this.xyzOutlet);\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [ \"query\", \"results\", \"hiddenFormValue\",\n \"classIdentifier\"]\n static values = { url: String }\n static outlets = [ \"typeahead-results\" ]\n\n disconnect() {\n this.reset()\n }\n\n fetchResults() {\n\n\n var typeaheadIdentifier = this.classIdentifierTarget.dataset.id\n\n if(this.query == \"\") {\n this.reset()\n return\n }\n\n if(this.query == this.previousQuery) {\n return\n }\n this.previousQuery = this.query\n\n const url = new URL(this.urlValue)\n url.searchParams.append(\"query\", this.query)\n url.searchParams.append(\"typeahead_identifier\", typeaheadIdentifier)\n\n this.abortPreviousFetchRequest()\n\n this.abortController = new AbortController()\n\n fetch(url, { signal: this.abortController.signal })\n .then(response => response.text())\n .then(html => {\n this.resultsTarget.innerHTML = html\n })\n .catch(() => {})\n }\n\n navigateResults(event) {\n if(this.hasSearchResultsOutlet) {\n this.searchResultsOutlet.navigateResults(event)\n }\n }\n\n // private\n\n reset() {\n this.resultsTarget.innerHTML = \"\"\n this.queryTarget.value = \"\"\n this.previousQuery = null\n }\n\n abortPreviousFetchRequest() {\n if(this.abortController) {\n this.abortController.abort()\n }\n }\n\n get query() {\n return this.queryTarget.value\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nconst upKey = 38\nconst downKey = 40\nconst enterKey = 13\nconst navigationKeys = [upKey, downKey, enterKey]\n\nexport default class extends Controller {\n static classes = [ \"current\" ]\n static targets = [ \"result\" ]\n static outlets = [ \"typeahead\" ]\n\n connect() {\n this.currentResultIndex = 0\n const allElements = this.resultTarget.querySelectorAll(\".search-result-item\");\n\n allElements.forEach((element, index) => {\n element.addEventListener(\"click\", () => {\n // Call the searchItemClicked member function when the element is clicked\n this.searchItemClicked(element, index);\n });\n })\n this.selectCurrentResult()\n }\n\n searchItemClicked(element, index) {\n const result_value = element.dataset.value;\n const result_id = element.dataset.id;\n\n // how to pass this to the search controller, set the field value and clear out the search\n\n this.typeaheadOutlets.forEach(outlet => {\n outlet.hiddenFormValueTarget.value = result_id;\n outlet.queryTarget.value = result_value;\n })\n\n this.resultTarget.innerHTML = \"\";\n }\n\n navigateResults(event) {\n if(!navigationKeys.includes(event.keyCode)) {\n return\n }\n\n event.preventDefault()\n\n switch(event.keyCode) {\n case downKey:\n this.selectNextResult()\n break;\n case upKey:\n this.selectPreviousResult()\n break;\n case enterKey:\n this.goToSelectedResult()\n break;\n }\n }\n\n // private\n\n selectCurrentResult() {\n this.resultTargets.forEach((element, index) => {\n element.classList.toggle(this.currentClass, index == this.currentResultIndex)\n })\n }\n\n selectNextResult() {\n if(this.currentResultIndex < this.resultTargets.length - 1) {\n this.currentResultIndex++\n this.selectCurrentResult()\n }\n }\n\n selectPreviousResult() {\n if(this.currentResultIndex > 0) {\n this.currentResultIndex--\n this.selectCurrentResult()\n }\n }\n\n goToSelectedResult() {\n this.resultTargets[this.currentResultIndex].firstElementChild.click()\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n\n static targets = [\"radioButton\"];\n\n connect() {\n }\n\n click_variantBox(event) {\n const collection = document.getElementsByClassName(\"choice-column\")\n Array.from(collection).forEach( (elem) => {\n elem.classList.remove(\"alert-info\")\n });\n\n event.target.closest(\".choice-column\").classList.add(\"alert\", \"alert-info\")\n this.radioButtonTarget.checked = true;\n\n try {\n ga(`${window.GOOGLE_UA_NAME}.send`, 'event', 'variant-selection', `choose ${this.element.dataset.productName}`, this.element.dataset.variantName );\n } catch(e) {}\n document.getElementById(\"variant-chooser\").querySelector(\"input[type=submit]\").disabled = false;\n }\n}\n\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n\n static targets = [ \"poster\", \"real\", \"element\"]\n connect() {\n setTimeout(() => {\n\n // if (this.elementTarget.paused) { this.hide() }\n // else { }\n },500 )\n }\n show_and_play() {\n this.show();\n\n this.elementTarget.firstChild.play()\n ga(`${window.GOOGLE_UA_NAME}.send`, 'event', 'Videos', 'play', '' );\n\n }\n show() {\n\n this.posterTarget.classList.add('d-none')\n this.realTarget.classList.remove('d-none')\n }\n hide() {\n\n this.posterTarget.classList.remove('d-none')\n this.realTarget.classList.add('d-none')\n }\n\n\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\n// Connects to data-controller=\"thing\"\n\nexport default class extends Controller {\n\n connect() {\n console.log(\"xyz connect\")\n\n\n\n }\n}\n","// This file is auto-generated by ./bin/rails stimulus:manifest:update\n// Run that command whenever you add a new controller or create them with\n// ./bin/rails generate stimulus controllerName\n\nimport { application } from \"./application\"\n\nimport CheckoutController from \"./checkout_controller\"\napplication.register(\"checkout\", CheckoutController)\n\nimport HelloController from \"./hello_controller\"\napplication.register(\"hello\", HelloController)\n\nimport InvoiceController from \"./invoice_controller\"\napplication.register(\"invoice\", InvoiceController)\n\nimport KnowNothingController from \"./know_nothing_controller\"\napplication.register(\"know-nothing\", KnowNothingController)\n\nimport ThingController from \"./thing_controller\"\napplication.register(\"thing\", ThingController)\n\nimport TypeaheadController from \"./typeahead_controller\"\napplication.register(\"typeahead\", TypeaheadController)\n\nimport TypeaheadResultsController from \"./typeahead_results_controller\"\napplication.register(\"typeahead-results\", TypeaheadResultsController)\n\nimport VariantSelectionController from \"./variant_selection_controller\"\napplication.register(\"variant-selection\", VariantSelectionController)\n\nimport VideoController from \"./video_controller\"\napplication.register(\"video\", VideoController)\n\nimport XyzController from \"./xyz_controller\"\napplication.register(\"xyz\", XyzController)\n","const softFadeEffect = () => {\n const callback = (arr, appearOnScroll) => {\n arr.forEach((entry) => {\n if (!entry.isIntersecting) {\n return\n } else {\n entry.target.classList.add(`fade-and-move-in`);\n appearOnScroll.unobserve(entry.target)\n }\n })\n }\n const appearOnScroll = new IntersectionObserver( callback, {\n root: null,\n rootMargin: '0px',\n threshold: 0\n })\n\n let targets = document.querySelectorAll('.softfade-in');\n targets.forEach((target) => {\n appearOnScroll.observe(target);\n })\n}\n\nexport default softFadeEffect;","const popInEffect = () => {\n\n const callback = (arr, appearOnScroll) => {\n arr.forEach((entry) => {\n if (!entry.isIntersecting) {\n return\n } else {\n entry.target.classList.add(`visible`);\n appearOnScroll.unobserve(entry.target)\n\n }\n })\n }\n const appearOnScroll = new IntersectionObserver( callback, {\n root: null,\n rootMargin: '0px',\n threshold: 0\n })\n\n let targets = document.querySelectorAll('.pop-in');\n targets.forEach((target) => {\n appearOnScroll.observe(target);\n })\n}\n\nexport default popInEffect;","const rollInEffect = () => {\n\n const callback = (arr, appearOnScroll) => {\n arr.forEach((entry) => {\n if (!entry.isIntersecting) {\n return\n } else {\n entry.target.classList.add(`visible`);\n appearOnScroll.unobserve(entry.target)\n\n }\n })\n }\n const appearOnScroll = new IntersectionObserver( callback, {\n root: null,\n rootMargin: '0px',\n threshold: 0\n })\n\n let targets = document.querySelectorAll('.roll-in');\n targets.forEach((target) => {\n appearOnScroll.observe(target);\n })\n}\n\nexport default rollInEffect;","import React from 'react';\n\nimport styled from 'styled-components';\n\nconst StyledWrappedInputElement = styled.div`\n flex-basis: 50px;\n font-size: 1.2em;\n`\n\nconst WrappedInputElement = (props) => {\n return (\n \n\n \n \n )\n}\n\nexport default WrappedInputElement","import react from 'react'\nimport WrappedInputElement from \"../basic_elements/wrapper_input_element\";\nimport React, {useState} from \"react\";\nimport styled from 'styled-components'\n\nconst StyledEcommerceImportanceQuestions = styled.div`\n display: flex;\n align-content: row;\n`\nconst EcommerceImportanceQuestions = (props) => {\n var nums = [1,2,3,4,5]\n\n\n const choose_ecomm_importance = (event) => {\n props.setHowImportant(event.target.value)\n }\n\n const ecomm_importance_elements_html = nums.map((x) =>\n \n )\n return (\n \n {ecomm_importance_elements_html}\n \n\n )\n}\n\nexport default EcommerceImportanceQuestions;","import React from 'react';\nimport styled from 'styled-components';\n\nconst StyledDoYouNeedAnimatedPages = styled.div`\n`\nconst DoYouNeedAnimatedPages = (props) => {\n const choose_need_animations = () => {\n props.setNeedAnimations(event.target.value)\n }\n\n return (\n \n

Do you need animated marketing and landing pages where everything flies around?

\n\n \n  \n\n \n
\n )\n}\nexport default DoYouNeedAnimatedPages;","import React from 'react'\nimport styled from 'styled-components'\n\nconst StyledHowMuchWillingToPay = styled.div`\n`\n\nconst HowMuchWillingToPay = (props) => {\n\n\n\n const name = props.name;\n return (\n \n

{props.message}

\n
\n\n \n    \n\n \n\n    \n\n \n
\n )\n}\n\nexport default HowMuchWillingToPay","import React from 'react'\nimport styled from 'styled-components'\n\nconst GetInTouchButton = (props) => {\n return (\n <>\n \n Get Started\n \n \n )\n}\n\n\nexport default GetInTouchButton","import React, {useState} from 'react';\n\nimport styled from 'styled-components'\n\nimport EcommerceImportanceQuestions from './EcommerceImportanceQuestions.js'\nimport DoYouNeedAnimatedPages from \"./DoYouNeedAnimatedPages\";\nimport HowMuchWillingToPay from './HowMuchWillingToPay'\nimport GetInTouchButton from \"./GetInTouchButton\";\n\n\nconst StyledWixOrShopifyWidget = styled.div`\n`\n\nconst WixOrShopifyWidget = (props) => {\n const [howImportant, setHowImportant] = useState(null)\n const [needAnimations, setNeedAnimations] = useState(null)\n const [howMuchWillingToPay, setHowMuchWillingToPay] = useState(null)\n\n\n const choose_how_much_willing_to_pay = (event) => {\n setHowMuchWillingToPay(event.target.value)\n }\n\n\n // TODO: there must be a better way\n const result_text = howImportant > 3 ? \"We recommend Shopify\" :\n (howImportant && (needAnimations && needAnimations === \"NO\") ?\n \"You should consider Wordpress or SquareSpace\" :\n (needAnimations && needAnimations === \"YES\") ?\n ( howMuchWillingToPay ? ( howMuchWillingToPay === \"A Lot\" ?\n (howImportant > 2 ? \"We recommend Shopify\" : \"We recommend Wix\") :\n howMuchWillingToPay === \"A little\" ? \"We recommend Wix\" : \"We recommend Wix or Shopify\") : \"\")\n : \"\")\n\n const cta_html = (result_text !== \"\") ?\n
\n

{result_text}


\n
: \"\"\n\n\n return (\n \n
\n

Wix or Shopify?

\n
On scale of 1-5, how important is e-commerce to your business and brand?
\n\n \n
\n \n\n \n\n
\n {cta_html}\n
\n
\n\n\n\n )\n}\n\n\nexport default WixOrShopifyWidget;","import React from 'react'\n\n\nconst YesNoChoice = (props) => {\n const choice_name = props.name;\n\n\n const dont_know = !props.showDontKnow ? \"\" :\n <>\n \n \n return (\n <>\n\n \n  \n \n {dont_know}\n \n\n\n\n )\n}\n\n\nexport default YesNoChoice;\n\n\n","import React, {useState} from 'react'\nimport YesNoChoice from \"./YesNoChoice\";\nconst DoYouHaveAReasonWhyYouLikeWordpress = (props) => {\n return (\n <>\n

Do you have a reason why you like WordPress?

\n \n \n )\n\n\n}\n\nexport default DoYouHaveAReasonWhyYouLikeWordpress;","import React, {useState} from 'react';\nimport YesNoChoice from \"./YesNoChoice\";\nconst DoYouWantToProduceHighQualityFlyingPagesQuicklyAtLittleCost = (props) => {\n return (<>\n

\n Do you want to produce high quality flying pages quickly at little cost?\n

\n \n )\n}\nexport default DoYouWantToProduceHighQualityFlyingPagesQuicklyAtLittleCost;","import React from 'react'\nimport YesNoChoice from \"./YesNoChoice\";\n\nconst DoYouWantToSucceedOnlineToday = (props) => {\n return (\n <>\n

Do you want to succeed online today?

\n \n\n \n )\n}\n\n\nexport default DoYouWantToSucceedOnlineToday;","import React, {useState} from 'react';\nimport DoYouHaveAReasonWhyYouLikeWordpress from \"./DoYouHaveAReasonWhyYouLikeWordpress\";\nimport DoYouWantToProduceHighQualityFlyingPagesQuicklyAtLittleCost\n from \"./DoYouWantToProduceHighQualityFlyingPagesQuicklyAtLittleCost\";\nimport DoYouWantToSucceedOnlineToday from \"./DoYouWantToSucceedOnlineToday\";\nimport GetInTouchButton from \"./GetInTouchButton\";\nimport YesNoChoice from \"./YesNoChoice\";\n\n\nconst WixOrWordpressWidget = (props) => {\n const [ legacyWordpress, setLegacyWordpress ] = useState(null);\n const [ reasonLikeWordpress, setReasonLikeWordpress] = useState(null);\n const [ wantProduceHighQuality, setWantProduceHighQuality] = useState(null);\n const [ wantToSucceed, setWantToSucceed] = useState(null);\n\n let result_text = \"\";\n switch (legacyWordpress ) {\n case \"No\":\n switch (reasonLikeWordpress) {\n case \"Yes\":\n switch(wantProduceHighQuality) {\n case \"Yes\":\n result_text = \"Use Wix.\"\n break;\n case \"No\":\n switch(wantToSucceed) {\n case \"Yes\":\n result_text = \"Let's discuss your needs directly.\"\n break;\n case \"No\":\n result_text = Please think your life choices and try again.\n break;\n }\n break;\n }\n break;\n case \"No\":\n result_text = \"Go with Wix.\"\n break;\n }\n break;\n case \"Yes\":\n\n switch(reasonLikeWordpress ) {\n case \"No\":\n result_text = \"We can help you migrate to a clean and professional Wix website.\"\n break;\n case \"Yes\":\n result_text = ['Ok Wordpress is a good choice for you. Please see this ',\n Wordpress page,\n ' for details.']\n }\n break;\n }\n\n const cta_html = (result_text !== \"\") ?\n
\n

{result_text}


\n
: \"\"\n\n const chooseReasonLikeWordpress = (event) => {\n setReasonLikeWordpress(event.target.value)\n }\n\n const [ doYouWantHighQuality, setDoYouWantHighQuality ] = useState(null) ;\n\n const chooseDoYouWantHighQuality = (event) => {\n setWantProduceHighQuality(event.target.value)\n }\n\n const chooseDoYouWantToSucceed = (event) => {\n setWantToSucceed(event.target.value);\n }\n\n\n const choose_legacy_wordpress = (event) => {\n setLegacyWordpress(event.target.value);\n }\n\n const do_you_have_a_reason_you_like_wordpress =\n (legacyWordpress === null ? \"\" :\n )\n\n const do_you_want_to_produce_high_quality_flying_pages =\n (legacyWordpress === \"No\" && reasonLikeWordpress === \"Yes\") ?\n : \"\"\n\n\n const do_you_want_to_succeed_online_today =\n (legacyWordpress === \"No\" && reasonLikeWordpress === \"Yes\" && wantProduceHighQuality == \"No\") ? : \"\"\n\n return (\n <>\n

\n Wix or Wordpress?\n

\n\n

Do you have a legacy WordPress website?

\n\n \n\n\n {do_you_have_a_reason_you_like_wordpress}\n\n {do_you_want_to_produce_high_quality_flying_pages}\n\n {do_you_want_to_succeed_online_today}\n
\n {cta_html}\n\n \n )\n\n}\n\nexport default WixOrWordpressWidget","import React from 'react'\nimport YesNoChoice from \"./YesNoChoice\";\n\n\nconst DoYouWantToBeOnARobustPlatform = (props) => {\n return (\n <>\n

Do You want to be on a robust e-commerce platform?

\n \n\n \n )\n\n}\n\n\nexport default DoYouWantToBeOnARobustPlatform;","import React from 'react'\nimport YesNoChoice from \"./YesNoChoice\";\n\nconst IsEcommerceAMinorPartOfYourBusiness = (props) => {\n\n return (\n <>\n

Is Ecommerce a minor part of your business?

\n \n\n \n )\n}\n\nexport default IsEcommerceAMinorPartOfYourBusiness;","import React, {useState} from 'react'\nimport DoYouWantToBeOnARobustPlatform from \"./DoYouWantToBeOnARobustPlatform\";\nimport IsEcommerceAMinorPartOfYourBusiness from \"./IsEcommerceAMinorPartOfYourBusiness\";\nimport GetInTouchButton from \"./GetInTouchButton\";\nimport HowMuchWillingToPay from \"./HowMuchWillingToPay\";\n\nconst ShopifyOrBlankWidget = (props) => {\n const [otherEcommPlatform, setOtherEcommPlatform] = useState(undefined);\n const [doYouWantToBeOnARobustPlatform, setDoYouWantToBeOnARobustPlatform] = useState(null);\n const [isEcommAMinorPartOfYourBusiness, setIsEcommAMinorPartOfYourBusiness] = useState(null);\n const [whatIsYourBudget, setWhatIsYourBudget] = useState(null);\n\n const chooseOtherEcommPlatform = (event) => {\n setOtherEcommPlatform(event.target.value)\n }\n\n const chooseDoYouWantToBeOnARobustPlatform = (event) => {\n setDoYouWantToBeOnARobustPlatform(event.target.value);\n }\n\n const chooseIsEcommAMinorPartOfYourBusiness = (event) => {\n setIsEcommAMinorPartOfYourBusiness(event.target.value);uch\n }\n\n const chooseHowMuchWillingToPay = (event) => {\n setWhatIsYourBudget(event.target.value);\n }\n\n const do_you_want_to_be_on_a_robust_platform = (otherEcommPlatform !== undefined ? : \"\")\n const is_comm_a_minor_part_of_your_business = (doYouWantToBeOnARobustPlatform === \"No\" ?\n : \"\")\n const how_much_willing_to_pay = (doYouWantToBeOnARobustPlatform === \"Yes\" &&\n\n (otherEcommPlatform !== undefined\n && otherEcommPlatform !== \"Magento\"\n && otherEcommPlatform !== \"BigCommerce\"\n && otherEcommPlatform !== \"WooCommerce\")\n\n ?\n : \"\")\n\n let result_text = \"\";\n\n\n if (doYouWantToBeOnARobustPlatform === \"No\") {\n if (isEcommAMinorPartOfYourBusiness === \"Yes\") {\n switch (otherEcommPlatform) {\n case undefined:\n break;\n\n case \"Magento\":\n result_text = \"Do not use Magento. Use Shopify.\"; break;\n case \"BigCommerce\":\n result_text = \"Do not use BigCommerce. Use Shopify.\"; break;\n\n case \"WooCommerce\":\n result_text = \"WooCommerce is OK but Shopify is better.\"; break;\n case \"Wix\":\n result_text = \"Wix is an excellent choice for you.\"; break;\n case \"SquareSpace\":\n result_text = \"SquareSpace is very limited for e-commerce. Sorry we cannot help you with SquareSpace.\"; break;\n\n case \"Ecwid\":\n result_text = \"Ok stay with Ecwid for the time being. When you're ready to come to Shopify, let's be in touch.\"; break;\n case \"Volusion\":\n result_text = \"Sorry we cannot help you with Volution. When you're ready to come to Shopify, let's be in touch.\"; break;\n case \"Jimdo\":\n result_text = \"Ok stay with Jimdo. Sorry we cannot help you.\"; break;\n case \"OpenCart\":\n result_text = \"Ok stay with OpenCart. Sorry we cannot help you.\"; break;\n case \"PrestaShop\":\n result_text = \"Ok stay with PrestaShop if you really like it. Sorry we cannot help you today, but when you're ready to come to Shopify, let's be in touch.\"; break;\n }\n }\n\n if (isEcommAMinorPartOfYourBusiness === \"No\") {\n result_text = \"Don't mess around. Go with Shopify.\";\n }\n }\n\n if (doYouWantToBeOnARobustPlatform === \"Yes\") {\n switch (otherEcommPlatform) {\n case undefined:\n break;\n\n case \"Magento\":\n result_text = \"Do not use Magento. Use Shopify.\"; break;\n case \"BigCommerce\":\n result_text = \"Do not use BigCommerce. Use Shopify.\"; break;\n\n case \"WooCommerce\":\n result_text = \"WooCommerce is OK but Shopify is better.\"; break;\n\n case \"Magento\":\n result_text = \"We recommend Shopify.\"; break;\n case \"Ecwid\":\n result_text = \"We recommend Shopify.\"; break;\n case \"Volusion\":\n result_text = \"We recommend Shopify.\"; break;\n case \"Jimdo\":\n result_text = \"We recommend Shopify.\"; break;\n case \"OpenCart\":\n result_text = \"We recommend Shopify.\"; break;\n case \"PrestaShop\":\n result_text = \"We recommend Shopify.\"; break;\n }\n\n if (otherEcommPlatform === \"Wix\") {\n switch(whatIsYourBudget ) {\n case \"A little\":\n result_text = \"Shopify is more robust for most e-commerce setups but Wix is better for marketing-heavy websites. You may want to consider separate store and marketing websites.\"\n break;\n case \"A Lot\":\n result_text = \"Shopify better for you if you want to produce a refined, high-scale e-commerce store. Shopify has more integrations available than Wix. It is a more robust platform for integration with auxiliary services.\"\n break;\n case \"Dont Know\":\n result_text = \"Shopify is cheaper for most e-commerce setups but Wix is better for marketing-heavy websites.\"\n }\n }\n\n switch(whatIsYourBudget ) {\n case \"A little\":\n if (otherEcommPlatform === \"SquareSpace\" || otherEcommPlatform === \"Weebly\")\n result_text = \"Ok go with \" + otherEcommPlatform + \", but we can't help you sorry.\";\n break;\n case \"A Lot\":\n if ( otherEcommPlatform === \"SquareSpace\" || otherEcommPlatform === \"Weebly\") result_text = otherEcommPlatform + \" is good but Shopify is better.\"\n break;\n case \"Dont Know\":\n if ( otherEcommPlatform === \"SquareSpace\" || otherEcommPlatform === \"Weebly\") result_text = otherEcommPlatform + \" could be good for you, but we can't help you sorry.\"\n break;\n }\n }\n\n const cta_html = (result_text !== \"\") ?\n
\n

{result_text}


\n
: \"\"\n\n\n\n return(\n <>\n

Shopify or _____?

\n\n

There are many players in e-commerce. We can help you navigate the field of e-commerce options.\n

\n

What other platform are you considering?\n\n\n \n

\n\n {do_you_want_to_be_on_a_robust_platform}\n\n {is_comm_a_minor_part_of_your_business}\n\n {how_much_willing_to_pay}\n
\n {cta_html}\n \n )\n}\n\n\nexport default ShopifyOrBlankWidget;","import React, {useState} from 'react'\nimport styled from 'styled-components'\nimport YesNoChoice from \"./YesNoChoice\";\n\nimport GetInTouchButton from \"./GetInTouchButton\";\n\nconst ShopifyOrMegentoWidget = (props ) => {\n const [doYouWantToWin, setDoYouWantToWin] = useState(null)\n\n const choose_want_to_win = (event) => {\n setDoYouWantToWin(event.target.value)\n }\n\n let result;\n\n\n if (doYouWantToWin == \"Yes\") {\n result = <>\n

Magento does not produce a quality result. Use Shopify instead.

\n \n ;\n }\n\n if (doYouWantToWin == \"No\") {\n result =

Please re-evaluate your choices and try again.

;\n\n\n }\n return (\n <>\n

Shopify or Megento?

\n\n

\n Do you want to be on winning e-commerce platform?\n

\n \n\n\n
\n {result}\n\n\n\n \n )\n}\n\n\n\nexport default ShopifyOrMegentoWidget;","import React, {useState} from 'react'\nimport YesNoChoice from \"./YesNoChoice\";\nimport GetInTouchButton from \"./GetInTouchButton\";\n\n\nconst WixOrSquareSpaceWidget = (props) => {\n const [doYouWantCustomSoftwareDevelopment, setDoYouWantCustomSoftwareDevelopment] = useState(null);\n\n\n\n\n\n const result_text = (doYouWantCustomSoftwareDevelopment === null ? \"\" :\n (doYouWantCustomSoftwareDevelopment === \"Yes\" ?\n \"Use Wix. SquareSpace is good for light customization only.\" :\n \"Go use SquareSpace. Sorry we cannot help you.\")\n )\n\n const get_in_touch_button = (doYouWantCustomSoftwareDevelopment === null ? \"\" :\n (doYouWantCustomSoftwareDevelopment == \"Yes\" ? : \"\")\n )\n\n const cta_html = (result_text !== \"\") ?\n
\n

{result_text}


{get_in_touch_button}\n
: \"\"\n\n const choose_do_you_want_custom_software_development_work = (event) => {\n setDoYouWantCustomSoftwareDevelopment(event.target.value);\n }\n return(\n <>\n

Wix or SquareSpace?

\n

Do you want custom software development work?

\n\n \n\n \n
\n {cta_html}\n \n )\n}\n\nexport default WixOrSquareSpaceWidget;\n","import React from 'react'\nimport DownArrow from 'images/down-cartoon-arrow.png'\n\n\nconst FixedCostResponse = (props) => {\n return (\n
\n
\n

For some clients, we can offer fixed cost contracts between $5,000 - $25,000.

\n
\n The process:\n
\n

Initial needs evaluation

\n {\"down\n\n

We work with you to scope, spec, and build a proof-of-concept (no upfront cost).

\n {\"down\n\n

You get a Statement of Work with fixed cost.

\n {\"down\n\n

You agree to SOW on Docusign and pay half deposit up-front.

\n {\"down\n\n

Your project is executed and delivered to a staging or sandbox environment.

\n {\"down\n\n

You pay remainder of contract.

\n {\"down\n\n

Code is delivered to you or your developers.

\n\n
\n )\n}\n\n\nexport default FixedCostResponse;","import React from 'react'\n\n\nconst TimeAndMaterialsResponse = (props) => {\n return (\n
\n
\n\n
\n

The Scrum Process

\n\n

\n In software development, you can choose two of three levers: time, quality, scope.\n

\n\n

\n For this reason, we always try to control the scope and don't focus on the time\n and quality. (That's because we always want excellent quality and so scope is the only other lever we should manipulate.)\n We do this by breaking down the work into short, iterative steps called stories. But you want to know how\n much it's gonna cost? Of course you want to know how much it will cost. Since we can't know\n everything up-front, the process involves making a \"best guess\" estimate at the start and then re-estimating\n stories as scope grows or items are executed on.\n\n Over time, the team gets more accurate at estimation and creates a reliable velocity\n measurement. Then, we have a measure to reasonably predict the cost of adding features.\n

\n

\n The five values of scrum are\n\n

\n\n
\n

Courage\n
We bring our full-selves to development of your software. We show up with strength and courage to\n tackle today's challenges.\n

\n\n\n

Focus\n
Developers work full-time on one project make sure execution is focused and stays on-track.\n

\n\n

Commitment\n
We are committed to a high engagement, momentum-based process.\n

\n\n\n

Respect\n
We bring respect and joy to the development process.\n

\n\n\n

Openness\n
We are open to feedback and change.\n

\n\n
\n\n\n

\n We practice scrum with these following aspects as well\n

\n\n\n

Transparent timesheets\n
Timesheets with associated stories sent to you consistently and quickly.\n

\n

Standup\n
Daily meeting in which yesterday's achievements are noted, today's priorities are\n set, and blockers are removed.

\n

Sprint planning\n
Weekly meeting in which stories are given estimates.

\n\n

Planning Tool\n
We will work in the tool of your choice, but recommend ClickUp if you don't\n already have one.

\n\n\n

\n What we expect of you (the customer)\n

\n

Attendance at standup\n
We require you to show up for standup at least three times a week.

\n

Commitment to automated testing\n
We require all the codebases we work on to have a strong test suite.

\n

Month-to-month engagement\n
In order to plan and maintain consistent staffing, we require month-to-month commitment and full-time engagement.

\n

Sane defaults\n
We require the codebases we work on have sane (sensible) defaults, excellent introspection and debugging mechanisms, and solid architecture.

\n\n\n
\n
\n\n
\n )\n}\n\n\nexport default TimeAndMaterialsResponse;\n","import React , {useState} from 'react'\nimport GetInTouchButton from \"./GetInTouchButton\";\n\nimport FixedCostResponse from \"./FixedCostResponse\";\nimport TimeAndMaterialsResponse from './TimeAndMaterialsResponse';\n\nconst ContractTypeChooser = (props) => {\n const [choice, setChoice] = useState(null)\n\n const choose = (event) => {\n setChoice(event.target.value)\n event.target.blur()\n }\n const result_text = choice === null ? \"\" : (choice === \"Fixed Cost\" ? : )\n\n const cta_html = (result_text !== \"\") ?\n
\n {result_text}
\n
: \"\"\n\n return (\n <>\n
\n
\n

What type of engagement are you interested in?

\n
\n \n \n
\n
\n\n {cta_html}\n \n )\n\n\n}\n\nexport default ContractTypeChooser;\n\n","\nimport React, {useState, useEffect} from 'react'\n\nimport styled from 'styled-components'\n\nconst StyledTagLine = styled.div`\n position: relative;\n`\n\nconst Tagline = (props) => {\n\n const [visible, setVisible] = useState(false)\n\n useEffect(() => {\n setTimeout(() => {\n setVisible(true)\n }, props.pauseBeforeComingIn * 1000)\n\n }, [])\n\n\n const tagline_ghost = \n {props.tagline}\n \n\n const tagline_html = visible ? {props.tagline} : \"\"\n\n\n return (\n <>\n \n {tagline_ghost}\n {tagline_html}\n \n \n )\n}\n\nexport default Tagline","\n\nimport React, {useState, useEffect} from 'react'\nimport { Flipper, Flipped } from 'react-flip-toolkit'\nimport _, { shuffle} from 'lodash'\n\nimport styled from 'styled-components'\nimport Tagline from './Tagline.js'\n\n\n\nconst NextJsAnimationFlipper = ( props ) => {\n\n const list = ['Smart Routing', 'SSR or Static Generation', 'Perfect for SEO',\n 'Uncompromising','Fast Refresh', 'A Well-Groomed Framework'\n ]\n\n\n const [step, setStep] = useState(0)\n const [data, setData] = useState(list)\n const [partTwoVisible, setPartTwoVisible] = useState(false)\n\n\n const shuffleList = () => {\n const new_list = _.shuffle(list)\n setData(new_list)\n }\n\n const dropAndThenShuffle = () => {\n // why doesn't setStep increment here\n\n setTimeout(() => {\n console.log(\"step is\", step)\n if (step < 5) {\n shuffleList()\n dropAndThenShuffle()\n setStep(step+1)\n }\n }, 1500)\n }\n useEffect((props) => {\n setTimeout(() => {\n dropAndThenShuffle()\n }, 1500)\n\n\n }, [])\n\n return (\n <>\n \n
    \n {data.map(d => (\n \n
  • \n

    {d}

    \n
  • \n
    \n ))}\n
\n\n
\n\n \n\n \n )\n\n}\n\n\nexport default NextJsAnimationFlipper;","import React from 'react'\nimport YesNoChoice from \"../YesNoChoice\";\n\n\nconst SingleAppDeployQuestions = (props ) => {\n\n\n const is_single_deploy = props.isSingleDeploy;\n\n const done = props.isSingleDeploy == \"Yes\";\n const done_styles = done ? {textDecoration: 'line-through'} : {}\n\n return (\n <>\n

\n Step 1: Single Deployment\n

\n
\n
\n Why You Need Single-App Deploys\n
\n
\n
    \n
  • \n Unified changes move through your pipeline in lock-step through the SDLC (Software Development\n Lifecycle)\n
  • \n
  • \n Single source of truth\n
  • \n
  • \n Integration with 3rd party services\n
  • \n
  • \n Simplifies deploy management\n
  • \n
  • \n Simplifies environmental setup\n
  • \n
  • Single app, no more booting multiple apps
  • \n
  • Reduction of environment variables proliferating throughout two separate apps. The new unified app shares environment variables between the front-end and back-end.
  • \n
  • Elimination of need to explicitly build CSS via SASS or to use sass-watch during development. Unlike the previous build, the compiled .css file is not checked into the repository, eliminating friction for all developers around managing merge conflicts in the previous CSS file and managing rebuilding it by hand for small changes.
  • \n\n
\n
\n
\n\n
\n\n

\n
\n Is your app single-app deployable?\n
\n\n\n \n
\n\n\n \n )\n}\n\n\nexport default SingleAppDeployQuestions","import React from 'react'\nimport YesNoChoice from \"../YesNoChoice\";\n\n\n\nconst GetOnGithubQuestions = (props) => {\n const is_on_github = props.isOnGithub;\n const done = is_on_github == \"Yes\";\n const done_styles = done ? {'text-decoration': 'line-through'} : {}\n\n return (\n <>\n\n

\n Step 2: GitHub\n

\n\n

Is your repository hosted on Github?

\n \n \n )\n}\n\n\nexport default GetOnGithubQuestions","import React from 'react'\n\n\nconst IdentifyEnvironmentDependencies = (props) => {\n\n\n const chooseItem = (event) => {\n\n props.setEnvQuestion(event.target.name, event.target.checked)\n\n }\n\n\n const complexity_price = props.complexities * 1500;\n\n return (\n <>\n
\n
\n

\n Step 4: Identify Environmental Dependencies\n

\n
\n
\n

\n Start with a complexity score of 0.\n

\n Does any of the Following apply to you?\n
\n
\n
    \n
  • \n  \n\n\n ENV variables are specific to QA environments\n
  • \n
  • \n  \n You have external Amazon services, like an SQS queue\n
  • \n
  • \n  \n You have an app that  \n \n CAN'T\n  \n use itself to serve its own assets as a CDN origin. For example, it must compile CSS, JS or other assets and upload them to an S3 bucket\n\n
  • \n\n
  • \n  \n You have staging or QA dependencies that need a per-stage setup.\n
  • \n
  • \n  \n You have special post-deploy or migration concerns.\n
  • \n
\n For each one that applies to you, \n \n +1\n  \n your complexity score.\n\n
\n

\n Your complexity score:\n {props.complexities}\n

\n\n
\n
\n COST: $2950 USD (BASE PRICE)\n + ${complexity_price} complexity price\n
\n
\n
\n
\n
\n\n \n )\n}\n\nexport default IdentifyEnvironmentDependencies;","import React from 'react'\nimport YesNoChoice from \"../YesNoChoice\";\n\n\nconst ContinuousIntegrationQuestions = (props) => {\n\n\n const to_give_you_a_cost = props.haveContinuousIntegration ? \"To give you a cost we will need access to your codebase.\" : \"\"\n\n return (\n <>\n

\n Step 3: Continuous Integration\n

\n
\n
\n
\n

\n Effective continuous integration is the hallmark of excellent software engineering today.\n If you don't already have a cloud-based CI runner, Helios recommends Github along with any of the\n following choices:\n

\n
    \n
      \n
    • \n Heroku CI\n
    • \n
    • \n Github CI\n
    • \n
    • \n Semaphore CI\n
    • \n
    \n
\n Helios can give you a fixed-bid contract to get your existing test suite up & running on one of\n these cloud-based CI providers. (Access to codebase required.)\n
\n
\n\n\n\n
\n \n Continuous integration means immediate feedback.\n \n
\n Do you already have continuous integration set up on your Github repository?\n
\n

\n\n \n

\n\n
\n Does your existing test suite have specs that run in a headless environment?\n
\n\n \n
\n\n\n
\n

\n How long does it take?\n

\n

\n A straightforward setup might take an afternoon of work, but a complicated app setup could take several weeks of setup.\n

\n

\n How much does it cost?\n

\n

\n\n Price varies on the existing specs in your app.\n
\n {to_give_you_a_cost}\n\n Get a Cost\n\n

\n
\n {props.continuous_integration_cost_html}\n
\n\n
\n\n \n )\n}\n\nexport default ContinuousIntegrationQuestions;","import React from 'react'\n\n\n\nconst HPEstimate = (props) => {\n return (\n <>\n\n

Your Cost

\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n
\n Step 1:\n \n {props.single_app_estimate_html}\n
\n Step 2:\n \n {props.github_estimate_html}\n\n
\n Step 3:\n \n {props.continuous_integration_cost_html}\n
\n Step 4:\n \n Base Price $2950\n
\n \n complexity price ${props.complexity_price}\n
\n TOTAL:\n \n ${props.total}\n
\n \n )\n}\n\nexport default HPEstimate;","import React, {useState, useEffect} from 'react'\nimport SingleAppDeployQuestions from \"./SingleAppDeployQuestions\";\nimport GetOnGithubQuestions from \"./GetOnGithubQuestions\";\nimport IdentifyEnvironmentDependencies from \"./IdentifyEnvironmentDependencies\";\nimport ContinuousIntegrationQuestions from \"./ContinuousIntegrationQuestions\";\nimport HPEstimate from \"./HPEstimate\";\n\nconst HerokuPipelineEstimateBuilder = (props) => {\n const [isSingleDeploy, setIsSingleDeploy] = useState(undefined)\n const [isOnGithub, setIsOnGithub] = useState(undefined)\n const [haveContinuousIntegration, setHaveContinuousIntegration] = useState(undefined)\n\n const [haveHeadlessSpecs, setHaveHeadlessSpecs] = useState(undefined)\n\n\n\n const github_estimate = isOnGithub == \"No\" ? 300 : 0\n const github_estimate_html = github_estimate == undefined ? \"(incomplete)\" : (github_estimate == 0 ? \"None\" : ` $ ${github_estimate}.00`)\n\n const single_app_estimate_html = isSingleDeploy == \"Yes\" ? \"None\" : \"Priced upon evaluation\"\n const ci_cost = haveContinuousIntegration == \"Yes\" ? \"None\" : \"Priced upon evaluation\"\n\n const continuous_integration_cost_html =\n haveContinuousIntegration == \"Yes\" ?\n haveHeadlessSpecs == \"Yes\" || haveHeadlessSpecs == \"No\" ? ci_cost : undefined\n : \"Priced upon evaluation\"\n\n\n const [envQuestions, setEnvQuestions] = useState({\n specific: false,\n external: false,\n cant_cdn: false,\n per_stage_envs: false,\n post_deploy: false\n })\n\n const chooseSingleDeploy = (event) => {\n setIsSingleDeploy(event.target.value)\n }\n\n const chooseIsOnGithub = (event) => {\n setIsOnGithub(event.target.value)\n }\n\n const chooseHaveContinuousIntegration = (event) => {\n setHaveContinuousIntegration(event.target.value);\n }\n\n const chooseHaveHeadlessSpecs = (event) => {\n console.log(\"set have headless spcs....\")\n setHaveHeadlessSpecs(event.target.value)\n }\n\n const setEnvQuestion = (name_of_question, value) => {\n console.log(\"setEnvQuestion\", name_of_question, value)\n let new_envQuestions = {...envQuestions}\n new_envQuestions[name_of_question] = value\n setEnvQuestions(new_envQuestions)\n }\n\n const calc_complexities = Object.entries(envQuestions).filter(([key, value]) => {return value === true ? key : undefined} )\n const complexities = calc_complexities ? calc_complexities.length : 0;\n const complexity_price = complexities * 1500;\n\n const estimate_complete = (isSingleDeploy !== undefined &&\n isOnGithub !== undefined &&\n haveContinuousIntegration !== undefined)\n\n\n const total = github_estimate + 2950 + complexity_price;\n\n const estimate_html = estimate_complete ? : \"\"\n\n\n const incomplete_estimate_html = estimate_complete ? \"\" : \n YOUR ESTIMATE: (incomplete)\n \n\n return (\n <>\n
\n
\n
\n\n\n\n

\n Why We Love the Heroku Pipeline and You Should Too\n

\n\n

\n\n\n Most engineering teams are drowning because they haven't put a solid process in place to ensure high quality.\n\n Quality is the very center and heart of software engineering.\n \n \n As the CEO or manager your primary job is to manage the cost of change while keeping the quality high.\n \n

\n \n The #1 thing you can do to help your team do this is to build an effective CI/CD pipeline.\n \n
\n\n Continuous integration (CI) means your regression tests run on every pull request. Continuous deployment (CD) means your deployment to staging happens with one click and your deployment to production happens with one more click on the Heroku Pipeline dashboard.\n\n

\n The foundation of both of these is solid test suite.\n\n

\n
Helios has your lifeline: The Heroku Pipeline.
\n

\n\n\n If you're not already using the Heroku pipeline, we can move your Rails or React app onto the Heroku pipeline.\n\n \n\n The Heroku pipeline is the best-in-class pipeline for deploying modern apps.\n\n In particular, each pull request in Github automatically creates a new review app environment -- a sandbox environment\n where you can QA and try out the code changes.\n\n This means no more stage management!\n\n How many times do you have to write on tickets what stages your stories are? Imagine never having to do that again.\n\n
\n \n Many CEOs, technical managers, and even developers underestimate how much of their time is currently going to stage management, deploy management, and branch management.\n \n\n Coming onto the Heroku pipeline eliminates all of this hassle.\n\n
\n \n For Rails and Ruby apps, the Heroku pipeline is the only deployment and development platform we support.\n \n

\n

\n \n Helios can help you move onto the Heroku pipeline and set up your app with a CI strategy.\n  \n \n We offer this only as a flat-fee. The fee includes all parts of the migration, including deployment, documentation, and two training sessions with you or your staff on the mechanics of your new setup.\n \n \n\n\n

\n\n \n This is a difficult job. Helios is an industry leader who has the technical ability to execute this difficult task effectively and in a cost-controlled way.\n \n  \n\n
\n\n\n

\n
\n
\n
\n

\n The estimator below will help you scope your Heroku Pipeline CI/CD project.\n\n

\n\n Scroll down to see your cost estimate.\n
\n\n

\n \n

\n \n
\n {github_estimate_html}\n
\n\n\n

\n \n\n\n\n

\n \n\n\n\n
\n
\n\n\n
\n
\n\n
\n
\n
\n {incomplete_estimate_html}\n\n
\n
\n {estimate_html}\n
\n
\n
\n \n
\n
\n\n \n )\n}\n\nexport default HerokuPipelineEstimateBuilder;","import React from 'react'\nimport styled from 'styled-components'\n\nimport arrow_img1 from 'images/120-deg-arrow1.svg'\nimport arrow_img2 from 'images/120-deg-arrow2.svg'\nimport arrow_img3 from 'images/120-deg-arrow3.svg'\n\nconst StyledArrow = styled.div(props => {\n return `\n background-image: url(${props.img});\n width: ${props.width};\n height: ${props.height};\n top: ${props.top};\n left: ${props.left};\n z-index: ${props.zindex};\n background-repeat: no-repeat;\n position: absolute;\n transform: scale(2);\n background-size: cover;\n`})\n\n\nconst Arrow = (props) => {\n const settings = {\n 1: {width: '36.55%',\n height: '47.3%',\n top: '18.5%',\n left: '58%', img: arrow_img1, zindex: 5},\n 2: {width: '48.1%', height: '35.33%', top: '64%',\n left: '29.1%', img: arrow_img2, zindex: 3},\n 3: {width: '31%', height: '44.9%', top: '19%', left: '6%', img: arrow_img3, zindex: 1}\n }\n\n\n return (\n \n )\n}\n\n\nexport default Arrow\n","import React, {useEffect} from 'react'\n\nimport styled from \"styled-components\";\n\nconst StyledHoverTarget = styled.div(props => (`\n position: absolute;\n height: 25%;\n width: 25%;\n display: block;\n z-index: 10;\n top: ${props.placement.top || 0};\n left: ${props.placement.left || 0};\n`))\n\nconst HoverTarget = (props) => {\n const clickTarget = (event) => {\n console.log(\"props.chooseStep is\", props.chooseStep)\n console.log(\"calling props.chooseStep with \" + props.function)\n props.chooseStep(props.function)\n }\n\n\n return ()\n}\n\n\n\nexport default HoverTarget","import React from 'react'\nimport styled from 'styled-components'\nimport HoverTarget from './HoverTarget'\n\nimport refactor_spinner_img from 'images/Refactor-spinner-0_290x290.png'\n\nconst StyledDot = styled.div(props => (`\n background-color: ${props.placement.backgroundColor || \"\"};\n ${props.placement.backgroundImage ? \"background-image: url(\" + props.placement.backgroundImage + \");\" : ''};\\\n background-size: cover;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n\n`))\n\nconst StyledDotContainer = styled.div(props => (`\n top: ${props.placement.top || 0};\n left: ${props.placement.left || 0};\n transition: transform 250ms;\n position: absolute;\n height: 25%;\n width: 25%;\n display: inline-block;\n z-index: ${props.placement.zIndex};\n`))\n\n\n\nconst Dot = (props) => {\n const settings = {\n 'red': { top: '-8%', left: '36%', backgroundColor: 'red', zIndex: props.focusedStep ? 8 : 6 },\n 'green': { top: '80%', left: '75%', backgroundColor: 'green', zIndex: props.focusedStep ? 8 : 4},\n 'refactor': {top: '66%', left: '-7%', backgroundColor: 'rgba(0,0,0,0)', zIndex: props.focusedStep ? 8 : 2, backgroundImage: refactor_spinner_img}\n\n }\n\n const placement = settings[props.function]\n\n const styled_dot = placement ? <>\n \n\n \n \n\n : \"\"\n\n\n return (\n styled_dot\n )\n}\n\nexport default Dot\n","import React from 'react'\nimport styled from 'styled-components'\n\n\nimport right_arrow from 'images/right-arrow.svg'\n\nconst StyledRightArrow = styled.div`\n position: absolute;\n left: 35%;\n top: -9%;\n z-index: 7;\n width: 18%;\n height: 29%;\n background-repeat: no-repeat;\n background-size: cover;\n background-image: url(${right_arrow});\n`\n\n\n\nconst RightArrow = () => {\n return(\n \n )\n\n}\n\nexport default RightArrow","import React, { useState, useEffect } from 'react'\nimport Arrow from './Arrow'\nimport Dot from './Dot'\nimport RightArrow from './RightArrow'\n\nconst Logo = (props) => {\n const [mode, setMode] = useState('animation')\n // const [focus, setFocus] = useState(0)\n const [animationStep, setAnimationStep] = useState(4)\n\n useEffect(() => {\n goNextStep()\n }, [])\n\n const goNextStep = () => {\n const newStep = (animationStep > 3) ? 0 : animationStep + 1;\n setAnimationStep(newStep)\n }\n\n useEffect(() => {\n setTimeout(() => {\n goNextStep()\n }, 1500)\n }, [animationStep])\n\n let focus;\n\n switch(animationStep) {\n case 0: focus = ''; break;\n case 1: focus = 'red'; break;\n case 2: focus = 'green'; break;\n case 3: focus = 'refactor'; break;\n case 4: focus = ''; break;\n }\n\n //\n const chooseStep = (step_name) => {\n // console.log('choose step', step_name)\n // setFocus(step_name)\n }\n\n return (\n
\n \n \n \n \n \n \n \n\n
)\n\n}\n\nexport default Logo;\n","/* eslint no-console:0 */\n\nimport \"@hotwired/turbo-rails\"\nimport { Turbo } from \"@hotwired/turbo-rails\"\n\nimport * as ActiveStorage from \"@rails/activestorage\"\n\n\nimport './hello-world-bundle'\nimport '../controllers'\n\nimport 'bootstrap'\nimport videojs from '@mux/videojs-kit';\nimport '@mux/videojs-kit/dist/index.css';\nimport AOS from 'aos';\nimport 'aos/dist/aos.css'; // You can also use for styles\n\n\nTurbo.start();\n\n// EFFECTS & POLYFILLS\n\nimport softFadeEffect from '../effects/softfade_effect'\nimport popInEffect from '../effects/pop_in_effect'\nimport rollInEffect from '../effects/roll_in_effect'\nimport smoothscroll from 'smoothscroll-polyfill';\n\nsmoothscroll.polyfill();\n\nwindow.addEventListener('turbo:load', function() {\n AOS.init({\n // Global settings:\n disable: false, // accepts following values: 'phone', 'tablet', 'mobile', boolean, expression or function\n startEvent: 'DOMContentLoaded', // name of the event dispatched on the document, that AOS should initialize on\n initClassName: 'aos-init', // class applied after initialization\n animatedClassName: 'aos-animate', // class applied on animation\n useClassNames: false, // if true, will add content of `data-aos` as classes on scroll\n disableMutationObserver: false, // disables automatic mutations' detections (advanced)\n debounceDelay: 50, // the delay on debounce used while resizing window (advanced)\n throttleDelay: 99, // the delay on throttle used while scrolling the page (advanced)\n\n\n // Settings that can be overridden on per-element basis, by `data-aos-*` attributes:\n offset: 120, // offset (in px) from the original trigger point\n delay: 0, // values from 0 to 3000, with step 50ms\n duration: 400, // values from 0 to 3000, with step 50ms\n easing: 'ease', // default easing for AOS animations\n once: false, // whether animation should happen only once - while scrolling down\n mirror: false, // whether elements should animate out while scrolling past them\n anchorPlacement: 'top-bottom', // defines which position of the element regarding to window should trigger the animation\n });\n});\n\nwindow.addEventListener('turbo:load', function() {\n softFadeEffect();\n popInEffect();\n rollInEffect();\n})\n\n\n\nimport ReactOnRails from 'react-on-rails';\nReactOnRails.setOptions({ turbo: true })\nimport HelloWorld from '../bundles/HelloWorld/components/HelloWorld';\nimport WixOrShopifyWidget from '../components/marketing/WixOrShopifyWidget'\nimport WixOrWordpressWidget from '../components/marketing/WixOrWordpressWidget'\nimport ShopifyOrBlankWidget from '../components/marketing/ShopifyOrBlankWidget'\n\nimport '@fortawesome/fontawesome-free'\nimport ShopifyOrMegentoWidget from \"../components/marketing/ShopifyOrMegentoWidget\";\nimport WixOrSquareSpaceWidget from \"../components/marketing/WixOrSquareSpaceWidget\";\nimport ContractTypeChooser from \"../components/marketing/ContractTypeChooser\";\nimport NextJsAnimationFlipper from \"../components/marketing/NextJsAnimationFlipper\";\nimport HerokuPipelineEstimateBuilder from \"../components/marketing/heroku_pipeline_estimator/HerokuPipelineEstimateBuilder\";\nimport Logo from \"../components/basic_elements/logo/Logo\"\n\n\nReactOnRails.register({\n HelloWorld,\n WixOrShopifyWidget,\n WixOrWordpressWidget,\n ShopifyOrBlankWidget,\n ShopifyOrMegentoWidget,\n WixOrSquareSpaceWidget,\n ContractTypeChooser,\n NextJsAnimationFlipper,\n HerokuPipelineEstimateBuilder,\n Logo\n});\n","import ReactOnRails from 'react-on-rails';\n\nimport HelloWorld from '../bundles/HelloWorld/components/HelloWorld';\n\n// This is how react_on_rails can see the HelloWorld in the browser.\nReactOnRails.register({\n HelloWorld,\n});\n"],"names":["props","name","setName","useState","React","className","style","htmlFor","id","type","value","onChange","e","target","application","Application","start","debug","window","Stimulus","Controller","static","onChangeHandler","event","document","getElementById","error","this","cardErrorsTarget","textContent","message","submitButtonTarget","removeAttribute","connect","Stripe","console","stripe","VERSO","__stripe_pk","elements","submitPaymentForm","payment_method_id","log","form","submitPaymentFormTarget","hiddenInput","createElement","setAttribute","append","submit","attr","stripeSubmitInteraction","preventDefault","confirmCardPayment","__stripe_payment_intent_client_secret","payment_method","card","billing_details","cardholderNameTarget","setup_future_usage","then","stripeAfterInteraction","bind","result","paymentIntent","status","cardResultTarget","length","create","mount","addEventListener","element","resetRadioSelection","invoiceGatewayFormTarget","querySelector","payThisInvoiceTarget","payAnotherAmountTarget","anotherAmountRadioTarget","thisInvoiceOnlyRadioTarget","payNowLinkTarget","stopPropagation","payNowSectionTarget","scrollIntoView","getBoundingClientRect","top","scrollTo","bottom","justTakeMyEmail","highlight_section","x","intakeSectionTarget","classList","remove","justTakeMyEmailFormTarget","add","justTakeMyEmailTeaserButtonTarget","customerInfoTarget","justTakeMyEmailSectionTarget","click_justTakeMyEmail","click_intakeSection","click_somethingElseChoice","checked","somethingElseInputTarget","click_anotherPlatformChoice","anotherPlatformInputTarget","xyzOutlet","hasXyzOutlet","url","String","disconnect","reset","fetchResults","typeaheadIdentifier","classIdentifierTarget","dataset","query","previousQuery","URL","urlValue","searchParams","abortPreviousFetchRequest","abortController","AbortController","fetch","signal","response","text","html","resultsTarget","innerHTML","catch","navigateResults","hasSearchResultsOutlet","searchResultsOutlet","queryTarget","abort","navigationKeys","currentResultIndex","resultTarget","querySelectorAll","forEach","index","searchItemClicked","selectCurrentResult","result_value","result_id","typeaheadOutlets","outlet","hiddenFormValueTarget","includes","keyCode","selectNextResult","selectPreviousResult","goToSelectedResult","resultTargets","toggle","currentClass","firstElementChild","click","click_variantBox","collection","getElementsByClassName","Array","from","elem","closest","radioButtonTarget","ga","GOOGLE_UA_NAME","productName","variantName","disabled","setTimeout","show_and_play","show","elementTarget","firstChild","play","posterTarget","realTarget","hide","register","CheckoutController","HelloController","InvoiceController","KnowNothingController","ThingController","TypeaheadController","TypeaheadResultsController","VariantSelectionController","VideoController","XyzController","softFadeEffect","appearOnScroll","IntersectionObserver","callback","arr","entry","isIntersecting","unobserve","root","rootMargin","threshold","observe","popInEffect","rollInEffect","StyledWrappedInputElement","styled","div","label","StyledEcommerceImportanceQuestions","choose_ecomm_importance","setHowImportant","ecomm_importance_elements_html","map","WrappedInputElement","key","StyledDoYouNeedAnimatedPages","choose_need_animations","setNeedAnimations","StyledHowMuchWillingToPay","choose_how_much_willing_to_pay","href","StyledWixOrShopifyWidget","howImportant","needAnimations","howMuchWillingToPay","setHowMuchWillingToPay","result_text","cta_html","display","GetInTouchButton","EcommerceImportanceQuestions","DoYouNeedAnimatedPages","HowMuchWillingToPay","choice_name","dont_know","showDontKnow","choose","YesNoChoice","chooseReasonLikeWordpress","chooseDoYouWantHighQuality","chooseDoYouWantToSucceed","legacyWordpress","setLegacyWordpress","reasonLikeWordpress","setReasonLikeWordpress","wantProduceHighQuality","setWantProduceHighQuality","wantToSucceed","setWantToSucceed","color","doYouWantHighQuality","setDoYouWantHighQuality","do_you_have_a_reason_you_like_wordpress","DoYouHaveAReasonWhyYouLikeWordpress","do_you_want_to_produce_high_quality_flying_pages","DoYouWantToProduceHighQualityFlyingPagesQuicklyAtLittleCost","do_you_want_to_succeed_online_today","DoYouWantToSucceedOnlineToday","chooseDoYouWantToBeOnARobustPlatform","chooseIsEcommAMinorPartOfYourBusiness","otherEcommPlatform","setOtherEcommPlatform","undefined","doYouWantToBeOnARobustPlatform","setDoYouWantToBeOnARobustPlatform","isEcommAMinorPartOfYourBusiness","setIsEcommAMinorPartOfYourBusiness","whatIsYourBudget","setWhatIsYourBudget","do_you_want_to_be_on_a_robust_platform","DoYouWantToBeOnARobustPlatform","is_comm_a_minor_part_of_your_business","IsEcommerceAMinorPartOfYourBusiness","uch","how_much_willing_to_pay","doYouWantToWin","setDoYouWantToWin","doYouWantCustomSoftwareDevelopment","setDoYouWantCustomSoftwareDevelopment","get_in_touch_button","src","DownArrow","alt","textDecoration","paddingTop","choice","setChoice","blur","FixedCostResponse","TimeAndMaterialsResponse","StyledTagLine","visible","setVisible","useEffect","pauseBeforeComingIn","tagline_ghost","position","visibility","tagline","tagline_html","list","step","setStep","data","setData","partTwoVisible","setPartTwoVisible","dropAndThenShuffle","shuffleList","new_list","_","Flipper","flipKey","join","d","Flipped","flipId","Tagline","isSingleDeploy","done_styles","chooseSingleDeploy","isOnGithub","chooseIsOnGithub","chooseItem","setEnvQuestion","complexity_price","complexities","envQuestions","to_give_you_a_cost","haveContinuousIntegration","chooseHaveContinuousIntegration","chooseHaveHeadlessSpecs","continuous_integration_cost_html","marginRight","marginLeft","single_app_estimate_html","github_estimate_html","total","setIsSingleDeploy","setIsOnGithub","setHaveContinuousIntegration","haveHeadlessSpecs","setHaveHeadlessSpecs","github_estimate","setEnvQuestions","specific","external","cant_cdn","per_stage_envs","post_deploy","calc_complexities","Object","entries","filter","estimate_complete","estimate_html","HPEstimate","incomplete_estimate_html","SingleAppDeployQuestions","GetOnGithubQuestions","ContinuousIntegrationQuestions","IdentifyEnvironmentDependencies","name_of_question","new_envQuestions","StyledArrow","img","width","height","left","zindex","settings","arrow_img1","arrow_img2","arrow_img3","StyledHoverTarget","placement","function","onClick","chooseStep","StyledDot","backgroundColor","backgroundImage","StyledDotContainer","zIndex","focusedStep","refactor_spinner_img","HoverTarget","StyledRightArrow","right_arrow","RightArrow","mode","setMode","animationStep","setAnimationStep","goNextStep","focus","step_name","Dot","Arrow","Turbo","smoothscroll","AOS","disable","startEvent","initClassName","animatedClassName","useClassNames","disableMutationObserver","debounceDelay","throttleDelay","offset","delay","duration","easing","once","mirror","anchorPlacement","ReactOnRails","turbo","HelloWorld","WixOrShopifyWidget","WixOrWordpressWidget","ShopifyOrBlankWidget","ShopifyOrMegentoWidget","WixOrSquareSpaceWidget","ContractTypeChooser","NextJsAnimationFlipper","HerokuPipelineEstimateBuilder","Logo"],"sourceRoot":""}