diff --git a/lib/algora/psp/connect_countries.ex b/lib/algora/psp/connect_countries.ex
index 7877f514a..d5f7eac0b 100644
--- a/lib/algora/psp/connect_countries.ex
+++ b/lib/algora/psp/connect_countries.ex
@@ -126,6 +126,8 @@ defmodule Algora.PSP.ConnectCountries do
{"Vietnam", "VN"}
]
+ def count, do: length(list())
+
@spec from_code(String.t()) :: String.t()
def from_code(code) do
list() |> Enum.find(&(elem(&1, 1) == code)) |> elem(0) || code
diff --git a/lib/algora_web/live/pricing_live.ex b/lib/algora_web/live/pricing_live.ex
index 0e1844296..be3da9d8e 100644
--- a/lib/algora_web/live/pricing_live.ex
+++ b/lib/algora_web/live/pricing_live.ex
@@ -2,6 +2,11 @@ defmodule AlgoraWeb.PricingLive do
@moduledoc false
use AlgoraWeb, :live_view
+ alias Algora.PSP.ConnectCountries
+ alias AlgoraWeb.Components.Footer
+ alias AlgoraWeb.Components.Header
+ alias AlgoraWeb.Components.Wordmarks
+
defmodule Plan do
@moduledoc false
defstruct [
@@ -21,173 +26,372 @@ defmodule AlgoraWeb.PricingLive do
defstruct [:name, :detail]
end
- defmodule ComputeOption do
- @moduledoc false
- defstruct [:name, :cpu, :memory, :price]
- end
-
defmodule FaqItem do
@moduledoc false
defstruct [:id, :question, :answer]
end
- defmodule ROIEstimate do
- @moduledoc false
- defstruct [
- :developers,
- :hourly_rate,
- :hours_per_week,
- :annual_tc,
- :platform_fee,
- :traditional_cost,
- :traditional_overhead,
- :traditional_total,
- :algora_cost,
- :algora_fee,
- :monthly_subscription,
- :algora_total,
- :savings
- ]
+ @impl true
+ def render(assigns) do
+ ~H"""
+
+
+
+
+
+
+
+
+
+
+ Predictable pricing, designed to scale
+
+
+ Start building for free, collaborate with your team, then scale to millions of users
+
+
+
+
+
+ <%= for plan <- @plans do %>
+ <.pricing_card plan={plan} />
+ <% end %>
+
+
+
+
+
+
+
+ You're in good company
+
+
+ Join hundreds of open source companies that use Algora to accelerate their development
+
+
+
+ <.logo_cloud />
+
+
+
+
+
+
+
+
+ See what our customers say
+
+
+ Discover how Algora helps founders accelerate development and find top talent
+
+
+
+
+
+
+
+
+
+
+
+
+ $15,000 Bounty: Delighted by the Results
+
+
+
+
+ We've used Algora extensively at Golem Cloud for our hiring needs and what I have found actually over the course of a few decades of hiring people is that many times someone who is very active in open-source development, these types of engineers often make fantastic additions to a team.
+
+ Through our $15,000 bounty, we got hundreds of GitHub stars, more than 100 new users on our Discord, and some really fantastic Rust engineers.
+
+ The bounty system helps us assess real-world skills instead of just technical challenge problems. It's a great way to find talented developers who deeply understand how your system works.
+
+
+
+
+
+
+
+
+
John A. De Goes
+
Founder & CEO
+
+
+
+
+
+
Total awarded
+
+ $103,950
+
+
+
+
Bounties completed
+
+ 359
+
+
+
+
Contributors rewarded
+
+ 82
+
+
+
+
+
+
+
+
+
+
+ From Bounty Contributor To Full-Time Engineer
+
+
+
+
+ We were doing bounties on Algora, and this one developer Nick kept solving them. His personality really came through in the GitHub issues and code. We ended up hiring him from that, and it was the easiest hire because we already knew he was great from his contributions.
+
+ That's one massive advantage open source companies have versus closed source. When I talk to young people asking for advice, I specifically tell them to go on Algora and find issues there. You get to show people your work, plus you can point to your contributions as proof of your abilities, and you make money in the meantime.
+
- Savings include reduced recruitment costs, social security taxes, and administrative expenses.
-
-
-
- <% end %>
-
- """
- end
-
- # Data functions
defp get_plans do
[
%Plan{
- name: "Hobby",
- description: "Perfect for small projects and indie developers",
- price: 0,
- cta_text: "Start for Free",
+ name: "Individuals",
+ description: "For developers contributing to open source",
+ price: nil,
+ cta_text: "Start Contributing",
popular: false,
features: [
- %Feature{name: "Up to $5,000 in project budgets"},
- %Feature{name: "Algora Network", detail: "15% platform fee"},
- %Feature{name: "Bring Your Own Devs", detail: "5% platform fee"},
- %Feature{name: "Unlimited projects"},
- %Feature{name: "Community support"},
- %Feature{name: "Basic project management tools"},
- %Feature{name: "Pay per milestone"}
- ],
- footnote: "Perfect for testing the waters with smaller projects"
- },
- %Plan{
- name: "Startup",
- description: "For growing companies",
- price: 599,
- cta_text: "Upgrade now",
- popular: true,
- previous_tier: "Hobby",
- features: [
- %Feature{name: "Up to $50,000 in project budgets"},
- %Feature{name: "Algora Network", detail: "15% platform fee"},
- %Feature{name: "Bring Your Own Devs", detail: "5% platform fee"},
- %Feature{name: "Priority support"},
- %Feature{name: "Advanced project management"},
- %Feature{name: "Custom workflows"},
- %Feature{name: "Team collaboration tools"},
- %Feature{name: "Analytics dashboard"},
- %Feature{name: "Job board access"},
- %Feature{name: "Unlimited job postings"}
+ %Feature{name: "Payouts in 3-8 days on average"},
+ %Feature{name: "Available in #{ConnectCountries.count()} countries/regions"},
+ %Feature{name: "Algora profile with contribution history"},
+ %Feature{name: "Free livestreaming on Algora TV"}
]
},
%Plan{
- name: "Enterprise",
- description: "For large organizations",
+ name: "Organizations",
+ description: "For companies and projects",
price: nil,
- cta_text: "Contact Sales",
+ cta_text: "Get Started",
popular: false,
- previous_tier: "Startup",
features: [
- %Feature{name: "Unlimited project budgets"},
- %Feature{name: "Algora Network", detail: "15% platform fee"},
- %Feature{name: "Bring Your Own Devs", detail: "5% platform fee"},
- %Feature{name: "Dedicated account manager"},
- %Feature{name: "Custom contracts & MSA"},
- %Feature{name: "Advanced security features"},
- %Feature{name: "Custom integrations"},
- %Feature{name: "SLA guarantees"},
- %Feature{name: "Onboarding assistance"},
- %Feature{name: "Training for your team"},
- %Feature{name: "Custom job board"},
- %Feature{name: "ATS integration"}
+ %Feature{name: "Fees drop to 7.5% with volume"},
+ %Feature{name: "Public org page with complete history"},
+ %Feature{name: "Teammates with granular access rights"},
+ %Feature{name: "Slack / Discord notifications (Webhooks)"},
+ %Feature{name: "Display bounties on your site (SDK)"},
+ %Feature{name: "Auto-pay on merge"},
+ %Feature{name: "Embedded livestreaming"},
+ %Feature{name: "Experts Network"},
+ %Feature{name: "Hiring Portal"},
+ %Feature{name: "Live Challenges"}
]
}
]
@@ -615,182 +525,350 @@ defmodule AlgoraWeb.PricingLive do
id: "platform-fee",
question: "How do the platform fees work?",
answer:
- "We charge 15% for projects using the Algora Network of developers, or 5% if you bring your own developers. This fee helps us maintain the platform, provide payment protection, and ensure quality service."
+ "For organizations, we charge a 19% fee on bounties, which can drop to 7.5% with volume. For individual contributors, you receive 100% of the bounty amount with no fees deducted."
},
%FaqItem{
- id: "budget-limits",
- question: "What happens if my project exceeds the budget limit?",
+ id: "payment-methods",
+ question: "What payment methods do you support?",
answer:
- "You'll need to upgrade to a higher tier to handle larger project budgets. Contact our sales team if you're close to your limit."
+ "We support payments via Stripe for funding bounties. Contributors can receive payments directly to their bank accounts in #{ConnectCountries.count()} countries worldwide."
},
%FaqItem{
- id: "payment-protection",
- question: "How does payment protection work?",
+ id: "payment-process",
+ question: "How does the payment process work?",
answer:
- "We hold payments in escrow and release them based on project milestones. This ensures both clients and developers are protected throughout the project lifecycle."
- }
- ]
- end
-
- defp get_comparison_features do
- [
- %Feature{name: "Project Budget Limit"},
- %Feature{name: "Algora Network Fee"},
- %Feature{name: "Bring Your Own Devs Fee"},
- %Feature{name: "Support Level"},
- %Feature{name: "Team Management"},
- %Feature{name: "Custom Contracts"},
- %Feature{name: "Analytics"}
- ]
- end
-
- defp has_feature?(plan, feature) do
- Enum.any?(plan.features, &(&1.name == feature.name))
- end
-
- defp get_testimonials do
- [
- %{
- name: "Sarah Chen",
- role: "CTO at TechCorp",
- avatar: "https://images.unsplash.com/photo-1494790108377-be9c29b29330",
- quote:
- "Algora has transformed how we hire developers. The quality of talent and the seamless platform experience has made scaling our team effortless."
+ "There's no upfront payment required for bounties. Organizations can either pay manually after merging pull requests, or save their card with Stripe to enable auto-pay on merge. Manual payments are processed through a secure Stripe hosted checkout page."
+ },
+ %FaqItem{
+ id: "invoices-receipts",
+ question: "Do you provide invoices and receipts?",
+ answer:
+ "Yes, users receive an invoice and receipt after each bounty payment. These documents are automatically generated and delivered to your email."
},
- %{
- name: "Michael Rodriguez",
- role: "Engineering Lead at StartupX",
- avatar: "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e",
- quote:
- "The developers we found through Algora have become integral parts of our team. The platform's focus on open source contributors really makes a difference."
+ %FaqItem{
+ id: "tax-forms",
+ question: "How are tax forms handled?",
+ answer:
+ "We partner with Stripe to file and deliver 1099 forms for your US-based freelancers, simplifying tax compliance for organizations working with US contributors."
+ },
+ %FaqItem{
+ id: "payout-time",
+ question: "How long do payouts take?",
+ answer:
+ "Payout timing varies by country, typically ranging from 2-7 business days after a bounty is awarded. Initial payouts for new accounts may take 7-14 days. The exact timing depends on your location, banking system, and account history with Stripe, our payment processor."
},
- %{
- name: "Emily Thompson",
- role: "VP Engineering at ScaleUp Inc",
- avatar: "https://images.unsplash.com/photo-1438761681033-6461ffad8d80",
- quote:
- "What impressed me most was how quickly we could find and onboard qualified developers. Algora's platform streamlines the entire process."
+ %FaqItem{
+ id: "minimum-bounty",
+ question: "Is there a minimum bounty amount?",
+ answer:
+ "There's no strict minimum bounty amount. However, bounties with higher values tend to attract more attention and faster solutions from contributors."
+ },
+ %FaqItem{
+ id: "enterprise-options",
+ question: "Do you offer custom enterprise plans?",
+ answer:
+ ~s(Yes, for larger organizations with specific needs, we offer custom enterprise plans with additional features, dedicated support, and volume-based pricing. Please schedule a call with a founder to discuss your requirements.)
+ },
+ %FaqItem{
+ id: "supported-countries",
+ question: "Which countries are supported for contributors?",
+ answer:
+ ~s(We support contributors from #{ConnectCountries.count()} countries worldwide. You can receive payments regardless of your location as long as you have a bank account in one of our supported countries. See the full list of supported countries.)
}
]
end
- def render(assigns) do
+ defp logo_cloud(assigns) do
+ ~H"""
+
+
+ """
+ end
+end
diff --git a/lib/algora_web/router.ex b/lib/algora_web/router.ex
index a27adf879..75fcd7264 100644
--- a/lib/algora_web/router.ex
+++ b/lib/algora_web/router.ex
@@ -132,6 +132,11 @@ defmodule AlgoraWeb.Router do
live "/pricing", PricingLive
end
+ live_session :tmp,
+ on_mount: [{AlgoraWeb.VisitorCountry, :current_country}] do
+ live "/tmp/pricing", Tmp.PricingLive
+ end
+
live "/trotw", TROTWLive
live "/open-source", OpenSourceLive, :index