Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge dev #148

Merged
merged 4 commits into from
Mar 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/components/Nav.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export default component$(() => {
const loc = useLocation();

return (
<Nav fixed floating>
<Nav fixed>
<Link q:slot="start" href="/">
<Button color="transparent">
<LogoBirdflop width={32} fillGradient={['#54daf4', '#545eb6']} />
Expand Down
74 changes: 42 additions & 32 deletions src/components/elements/Chart.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,62 +14,72 @@ export default component$(() => {
labels: [
'EU Hosting Expenses',
'US Hosting Expenses',
'Other Hosting Expenses',
'Web Infrastructure',
'Platform Development',
// 'Loan Payments',
'Client Reimbursements',
'Sustainability Fund Contributions',
'Market Research',
'Hosting Revenue',
'Charitable Donations',
// 'Licensing Fees',
// 'Loans Received',
],
datasets: [{
// Outer Ring (EXPENDITURES)
backgroundColor: [
'rgba(255, 0, 0, 0.2)', // EU Hosting Expenses
'rgba(255, 40, 0, 0.2)', // US Hosting Expenses
'rgba(255, 80, 0, 0.2)', // Other Hosting Expenses
'rgba(255, 120, 0, 0.2)', // Client Reimbursements
'rgba(255, 160, 0, 0.2)', // Sustainability Fund
'rgba(255, 200, 0, 0.2)', // Market Research
'rgba(255, 60, 0, 0.2)', // US Hosting Expenses = Payments + Depreciation
'rgba(255, 100, 0, 0.2)', //
'rgba(255, 150, 0, 0.2)', //
// 'rgba(255, 160, 0, 0.2)', // loan payments
'rgba(255, 200, 0, 0.2)', // client reimbursements
'rgba(0, 200, 0, 0.2)',
'rgba(0, 200, 100, 0.2)',
'rgba(0, 210, 100, 0.2)',
// 'rgba(0, 210, 100, 0.2)',
// 'rgba(0, 215, 150, 0.2)',
],
borderColor: [
'rgba(255, 0, 0, 1)', // EU Hosting Expenses
'rgba(255, 40, 0, 1)', // US Hosting Expenses
'rgba(255, 80, 0, 1)', // Other Hosting Expenses
'rgba(255, 120, 0, 1)', // Client Reimbursements
'rgba(255, 160, 0, 1)', // Sustainability Fund
'rgba(255, 200, 0, 1)', // Market Research
'rgba(255, 60, 0, 1)', // US Hosting Expenses
'rgba(255, 100, 0, 1)', //
'rgba(255, 150, 0, 1)', //
// 'rgba(255, 160, 0, 1)', // loan payments
'rgba(255, 200, 0, 1)', // client reimbursements
'rgba(0, 200, 0, 1)',
'rgba(0, 200, 100, 1)',
'rgba(0, 205, 50, 1)',
// 'rgba(0, 210, 100, 1)',
// 'rgba(0, 215, 150, 1)',
],
borderWidth: 1,
data: [436.20, 301.53, 80.07, 206.8, 2500, 300, null, null],
data: [585.00, 3001.53, 82.62, 29.66, 500.00, null, null],
},
{
// Inner Ring (REVENUE)
backgroundColor: [
'rgba(235, 100, 100, 0.2)',
'rgba(255, 0, 0, 0.2)',
'rgba(255, 0, 100, 0.2)',
'rgba(235, 162, 54, 0.2)',
'rgba(256, 100, 0, 0.2)',
'rgba(256, 20, 0, 0.2)',
'rgba(255, 0, 0, 0.2)', // EU Hosting Expenses
'rgba(255, 60, 0, 0.2)', // US Hosting Expenses = Payments + Depreciation
'rgba(255, 100, 0, 0.2)',
'rgba(255, 150, 0, 0.2)',
// 'rgba(255, 160, 0, 0.2)',
'rgba(255, 200, 0, 0.2)',
'rgba(0, 200, 0, 0.2)',
'rgba(0, 200, 100, 0.2)',
'rgba(0, 210, 100, 0.2)',
// 'rgba(0, 210, 100, 0.2)',
// 'rgba(0, 215, 150, 0.2)',
],
borderColor: [
'rgba(235, 100, 100, 1)',
'rgba(255, 0, 0, 1)',
'rgba(255, 0, 100, 1)',
'rgba(235, 162, 54, 1)',
'rgba(256, 100, 0, 1)',
'rgba(256, 20, 0, 1)',
'rgba(0, 200, 0, 1)',
'rgba(0, 200, 100, 1)',
'rgba(255, 0, 0, 1)', // EU Hosting Expenses
'rgba(255, 60, 0, 1)', // US Hosting Expenses
'rgba(255, 100, 0, 1)',
'rgba(255, 150, 0, 1)',
// 'rgba(255, 160, 0, 1)',
'rgba(255, 200, 0, 1)',
'rgba(0, 200, 0, 1)', // hosting revenue
'rgba(0, 210, 100, 1)', // charitable donations
// 'rgba(0, 210, 100, 1)', // licensing fees
// 'rgba(0, 215, 150, 1)', // loans received
],
borderWidth: 1,
data: [null, null, null, null, null, null, 1034.89, 2889.98],
data: [null, null, null, null, null, 2478.27, 74.23],
}],
},
options: {
Expand Down
6 changes: 3 additions & 3 deletions src/routes/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ export default component$(() => {
</Card>;
})}
</div>
<Card color="blue" blobs class={{
<Card color="blue" class={{
'z-[1] max-w-xl mx-auto': true,
}}>
<Header>
Expand Down Expand Up @@ -204,7 +204,7 @@ export default component$(() => {
How do reimbursements work?
</h2>
<p class="text-gray-200 sm:text-lg">
As a nonprofit, Birdflop periodically reimburses clients based on excess profit. At the end of each reimbursement period, active clients receive a reimbursement for excess profit from their plan. These reimbursements are dependent on usage, maximally lowering prices at high service utilization. Last quarter, US clients received a 35% reimbursement and EU clients received a 6% reimbursement, effectively lowering prices to $1.95/GB RAM and $1.88/GB RAM for the US and EU, respectively. Not good enough? Find a competitor with similar specifications and inquire about our price matching.
As a nonprofit, Birdflop periodically reimburses clients based on excess profit. At the end of each reimbursement period, active clients receive a reimbursement for excess profit from their plan. These reimbursements are dependent on usage, maximally lowering prices at high service utilization. Last quarter, US clients received a 35% reimbursement and EU clients received a 21% reimbursement, effectively lowering prices to $1.95/GB RAM and $1.58/GB RAM for the US and EU, respectively. Not good enough? Find a competitor with similar specifications and inquire about our price matching.
</p>
</div>
</div>
Expand All @@ -219,7 +219,7 @@ export default component$(() => {
<div>
<Chart />
<p class="text-gray-400 text-center py-2 text-sm">
Plot shows revenue (inner ring) and expenditures (outer ring) for Q4 2023. Some numbers may be approximations.
Plot shows revenue (inner ring) and expenditures (outer ring) for Q1 2024. Some numbers may be approximations, and categories may be simplified. US Hosting Expenses includes node acquisition and depreciation.
</p>
</div>
<div class="flex flex-col gap-4">
Expand Down
2 changes: 1 addition & 1 deletion src/routes/plans/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ export const plans = {
'Up to 80 GB NVMe Storage',
'Free upgrade to US Premium+ after 6 months',
],
outOfStock: true,
outOfStock: false,
},
'US Premium+': {
id: 'us-premium',
Expand Down