feat(pricing): separate companies and individuals
This commit is contained in:
parent
e5473613d1
commit
e242b54a5d
|
@ -13,31 +13,66 @@ export const priceFormatter = new Intl.NumberFormat('en-GB', {
|
||||||
style: 'currency',
|
style: 'currency',
|
||||||
});
|
});
|
||||||
|
|
||||||
<div class="space-y-6">
|
<div class="space-y-4">
|
||||||
{products && products.map(product => (
|
<div>
|
||||||
<article class="space-y-4">
|
<h2>For companies</h2>
|
||||||
<h2>
|
|
||||||
{product.title} - <> </>
|
|
||||||
{product.price
|
|
||||||
? (
|
|
||||||
<>{priceFormatter.format(product.price)}
|
|
||||||
{product.perMonth && (<> per month</>)}
|
|
||||||
</>
|
|
||||||
)
|
|
||||||
: 'Free!'
|
|
||||||
}
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
<div>
|
{products && products.company.map(product => (
|
||||||
<p>
|
<article class="space-y-4">
|
||||||
{product.description}
|
<h3>
|
||||||
{product.isLimited && (<> <strong>Limited places available!</strong></>)}
|
{product.title} - <> </>
|
||||||
</p>
|
{product.price
|
||||||
</div>
|
? (
|
||||||
|
<>{priceFormatter.format(product.price)}
|
||||||
|
{product.perMonth && (<> per month</>)}
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
: 'Free!'
|
||||||
|
}
|
||||||
|
</h3>
|
||||||
|
|
||||||
<footer>
|
<div>
|
||||||
<a href={product.link.href}>{product.link.text} →</a>
|
<p>
|
||||||
</footer>
|
{product.description}
|
||||||
</article>
|
{product.isLimited && (<> <strong>Limited places available!</strong></>)}
|
||||||
))}
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
<a href={product.link.href}>{product.link.text} →</a>
|
||||||
|
</footer>
|
||||||
|
</article>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h2>For individuals</h2>
|
||||||
|
|
||||||
|
{products && products.individuals.map(product => (
|
||||||
|
<article class="space-y-4">
|
||||||
|
<h3>
|
||||||
|
{product.title} - <> </>
|
||||||
|
{product.price
|
||||||
|
? (
|
||||||
|
<>{priceFormatter.format(product.price)}
|
||||||
|
{product.perMonth && (<> per month</>)}
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
: 'Free!'
|
||||||
|
}
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<p>
|
||||||
|
{product.description}
|
||||||
|
{product.isLimited && (<> <strong>Limited places available!</strong></>)}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
<a href={product.link.href}>{product.link.text} →</a>
|
||||||
|
</footer>
|
||||||
|
</article>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,85 +1,89 @@
|
||||||
[
|
{
|
||||||
{
|
"company": [
|
||||||
"title": "Diagnosis",
|
{
|
||||||
"description": "An in-depth investigation into a single issue where I'll provide a report with my findings and advice on the next steps. Once you've purchased, you can book a Zoom call with me to discuss what you want me to investigate.",
|
"title": "Diagnosis",
|
||||||
"price": 2500,
|
"description": "An in-depth investigation into a single issue where I'll provide a report with my findings and advice on the next steps. Once you've purchased, you can book a Zoom call with me to discuss what you want me to investigate.",
|
||||||
"link": {
|
"price": 2500,
|
||||||
"text": "Book now",
|
"link": {
|
||||||
"href": "https://buy.stripe.com/00gbJs84G2jg8Vy9AJ"
|
"text": "Book now",
|
||||||
|
"href": "https://buy.stripe.com/00gbJs84G2jg8Vy9AJ"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Drupal upgrade roadmap",
|
||||||
|
"description": "Are you stuck on an already or soon-to-be unsupported version of Drupal? Get a personalised roadmap of your Drupal website, including details and actionable steps to upgrade it.",
|
||||||
|
"price": 5000,
|
||||||
|
"link": {
|
||||||
|
"text": "Book your roadmap now",
|
||||||
|
"href": "/drupal-upgrade"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Development team coaching",
|
||||||
|
"description": "Do you want to upskill your in-house team or have someone provide oversight and guidance as they deliver a project? Get unlimited 1-on-1 private Slack access to me and regular check-in calls to ensure things are on track.",
|
||||||
|
"perMonth": true,
|
||||||
|
"isLimited": true,
|
||||||
|
"price": 5000,
|
||||||
|
"link": {
|
||||||
|
"text": "Apply now",
|
||||||
|
"href": "https://forms.gle/HGEC3uqkUSqPsoK79"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Private talk or workshop",
|
||||||
|
"description": "If you found one of my public speaking presentations or workshops useful, I'm available for private speaking engagements on a variety of topics to help your team succeed.",
|
||||||
|
"price": 2000,
|
||||||
|
"link": {
|
||||||
|
"text": "Schedule a talk",
|
||||||
|
"href": "https://buy.stripe.com/eVa4h0bgSaPM6NqcMU"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
],
|
||||||
{
|
"individuals": [
|
||||||
"title": "Drupal upgrade roadmap",
|
{
|
||||||
"description": "Are you stuck on an already or soon-to-be unsupported version of Drupal? Get a personalised roadmap of your Drupal website, including details and actionable steps to upgrade it.",
|
"title": "1-on-1 development coaching",
|
||||||
"price": 5000,
|
"description": "The same as development team coaching, but for individual Developers and soloists.",
|
||||||
"link": {
|
"perMonth": true,
|
||||||
"text": "Book your roadmap now",
|
"isLimited": true,
|
||||||
"href": "/drupal-upgrade"
|
"price": 1000,
|
||||||
|
"link": {
|
||||||
|
"text": "Apply now",
|
||||||
|
"href": "https://forms.gle/SX5fGtXXKVDcftpTA"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "1-on-1 consulting call",
|
||||||
|
"description": "Book a 1-on-1 video call, and I can help you by answering questions about software development, architecture and automation, helping you write your first automated test, or reviewing some of your code and giving advice and suggestions.",
|
||||||
|
"price": 350,
|
||||||
|
"link": {
|
||||||
|
"text": "Book your call now",
|
||||||
|
"href": "/call"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Pair program with me",
|
||||||
|
"description": "Would you like another pair of eyes on your code, providing real-time suggestions and feedback rather than waiting for a code review? Book a 2-hour pair programming call and we can work on your code together.",
|
||||||
|
"price": 499,
|
||||||
|
"link": {
|
||||||
|
"text": "Book your session now",
|
||||||
|
"href": "/pair"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Introduction to automated testing in Drupal - 7-day email course",
|
||||||
|
"description": "Register for my free upcoming email course on automated testing in Drupal.",
|
||||||
|
"link": {
|
||||||
|
"text": "Register now",
|
||||||
|
"href": "https://forms.gle/9fGwMgaWcWjNDjdAA"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Drupal module template",
|
||||||
|
"description": "If you're creating a new Drupal module, try starting with my free module template for Drupal 9 and 10.",
|
||||||
|
"link": {
|
||||||
|
"text": "Download",
|
||||||
|
"href": "https://github.com/opdavies/drupal-module-template"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
]
|
||||||
{
|
}
|
||||||
"title": "Development team coaching",
|
|
||||||
"description": "Do you want to upskill your in-house team or have someone provide oversight and guidance as they deliver a project? Get unlimited 1-on-1 private Slack access to me and regular check-in calls to ensure things are on track.",
|
|
||||||
"perMonth": true,
|
|
||||||
"isLimited": true,
|
|
||||||
"price": 5000,
|
|
||||||
"link": {
|
|
||||||
"text": "Apply now",
|
|
||||||
"href": "https://forms.gle/HGEC3uqkUSqPsoK79"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"title": "Private talk or workshop",
|
|
||||||
"description": "If you found one of my public speaking presentations or workshops useful, I'm available for private speaking engagements on a variety of topics to help your team succeed.",
|
|
||||||
"price": 2000,
|
|
||||||
"link": {
|
|
||||||
"text": "Schedule a talk",
|
|
||||||
"href": "https://buy.stripe.com/eVa4h0bgSaPM6NqcMU"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"title": "1-on-1 development coaching",
|
|
||||||
"description": "The same as development team coaching, but for individual Developers and soloists.",
|
|
||||||
"perMonth": true,
|
|
||||||
"isLimited": true,
|
|
||||||
"price": 1000,
|
|
||||||
"link": {
|
|
||||||
"text": "Apply now",
|
|
||||||
"href": "https://forms.gle/SX5fGtXXKVDcftpTA"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"title": "1-on-1 consulting call",
|
|
||||||
"description": "Book a 1-on-1 video call, and I can help you by answering questions about software development, architecture and automation, helping you write your first automated test, or reviewing some of your code and giving advice and suggestions.",
|
|
||||||
"price": 350,
|
|
||||||
"link": {
|
|
||||||
"text": "Book your call now",
|
|
||||||
"href": "/call"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"title": "Pair program with me",
|
|
||||||
"description": "Would you like another pair of eyes on your code, providing real-time suggestions and feedback rather than waiting for a code review? Book a 2-hour pair programming call and we can work on your code together.",
|
|
||||||
"price": 499,
|
|
||||||
"link": {
|
|
||||||
"text": "Book your session now",
|
|
||||||
"href": "/pair"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"title": "Introduction to automated testing in Drupal - 7-day email course",
|
|
||||||
"description": "Register for my free upcoming email course on automated testing in Drupal.",
|
|
||||||
"link": {
|
|
||||||
"text": "Register now",
|
|
||||||
"href": "https://forms.gle/9fGwMgaWcWjNDjdAA"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"title": "Drupal module template",
|
|
||||||
"description": "If you're creating a new Drupal module, try starting with my free module template for Drupal 9 and 10.",
|
|
||||||
"link": {
|
|
||||||
"text": "Download",
|
|
||||||
"href": "https://github.com/opdavies/drupal-module-template"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
Loading…
Reference in a new issue