diff --git a/packages/dashboard/src/routes/(app)/instances/new/Paywall.svelte b/packages/dashboard/src/routes/(app)/instances/new/Paywall.svelte
index 6f22849e..faa90e7a 100644
--- a/packages/dashboard/src/routes/(app)/instances/new/Paywall.svelte
+++ b/packages/dashboard/src/routes/(app)/instances/new/Paywall.svelte
@@ -8,18 +8,10 @@
Paywall!
-
Oof. You hit a paywall.
-
- You're only allowed {maxInstances} projects on the {PLAN_NAMES[
- $userSubscriptionType
- ]} plan.
-
-
- But that's okay, we know you want to support PocketHost if you love it
- this much!
-
+
Oof. You hit a paywall because you are out of instances.
+
diff --git a/packages/dashboard/src/routes/(static)/access/+page.svelte b/packages/dashboard/src/routes/(static)/access/+page.svelte
new file mode 100644
index 00000000..9efad805
--- /dev/null
+++ b/packages/dashboard/src/routes/(static)/access/+page.svelte
@@ -0,0 +1,5 @@
+
+
+
diff --git a/packages/dashboard/src/routes/(static)/access/Card.svelte b/packages/dashboard/src/routes/(static)/access/Card.svelte
new file mode 100644
index 00000000..05c0d31c
--- /dev/null
+++ b/packages/dashboard/src/routes/(static)/access/Card.svelte
@@ -0,0 +1,14 @@
+
+
+
+
+
{feature.title}
+ {#if feature.img}
+
+ {/if}
+
{@html feature.description}
+
+
+
diff --git a/packages/dashboard/src/routes/(static)/access/Paywall.svelte b/packages/dashboard/src/routes/(static)/access/Paywall.svelte
new file mode 100644
index 00000000..4694431f
--- /dev/null
+++ b/packages/dashboard/src/routes/(static)/access/Paywall.svelte
@@ -0,0 +1,103 @@
+
+
+
+
PocketHost Access
+
+ $5/instance or
+ $25/unlimited
+
+
7 Day Free Trial
+
+
+ {#each features as feature}
+
+
+
+ {/each}
+
+
+
+
{feature.button}
diff --git a/packages/dashboard/src/routes/(static)/access/regions.png b/packages/dashboard/src/routes/(static)/access/regions.png
new file mode 100644
index 00000000..3e335b12
Binary files /dev/null and b/packages/dashboard/src/routes/(static)/access/regions.png differ
diff --git a/packages/dashboard/src/routes/(static)/blog/hard-paywall-is-live/+page.md b/packages/dashboard/src/routes/(static)/blog/hard-paywall-is-live/+page.md
new file mode 100644
index 00000000..88fe11eb
--- /dev/null
+++ b/packages/dashboard/src/routes/(static)/blog/hard-paywall-is-live/+page.md
@@ -0,0 +1,11 @@
+## Hard paywall is live
+
+_[@cap'n](https://discord.gg/nVTxCMEcGT) Jan 10, 2025_
+
+As [announced previously](/blog/hard-paywall), I've moved to a hard paywall. This means that every new user will have to pay for their PocketHost account before they can use it. There will be a 7 day free trial, but after that, you'll have to pay, and you will know that going in.
+
+Freemium is broken, especially for small businesses. It's a great way to get people to try your product, but it's not a great way to grow independently.
+
+I encourage everyone to consider subscribing to PocketHost. It's a great way to support the PocketBase community and ensure the project's long term viability.
+
+Existing users will be grandfathered in.
diff --git a/packages/dashboard/src/routes/(static)/blog/toc.ts b/packages/dashboard/src/routes/(static)/blog/toc.ts
index d5cc0e79..7c28538d 100644
--- a/packages/dashboard/src/routes/(static)/blog/toc.ts
+++ b/packages/dashboard/src/routes/(static)/blog/toc.ts
@@ -1,4 +1,8 @@
export const toc = [
+ {
+ title: 'Hard paywall is live',
+ path: '/blog/hard-paywall-is-live',
+ },
{
title: 'YouTube Dev Channel is Live',
path: '/blog/announcing-dev-channel',
diff --git a/packages/dashboard/src/routes/(static)/docs/pricing-ethos/+page.md b/packages/dashboard/src/routes/(static)/docs/pricing-ethos/+page.md
index cd19f23b..66a1f891 100644
--- a/packages/dashboard/src/routes/(static)/docs/pricing-ethos/+page.md
+++ b/packages/dashboard/src/routes/(static)/docs/pricing-ethos/+page.md
@@ -1,42 +1,16 @@
# Pricing Ethos
-At PocketHost, we believe in keeping things simple and transparent. Our pricing is designed to support indie hackers, makers, and small businesses. We offer flexible plans to suit your needs, including a Free Tier, a Pro Tier, and occasionally, limited Lifetime Offers during our bootstrapping phase.
+At PocketHost, we believe in keeping things simple and transparent. Our pricing is designed to support indie hackers, makers, and small businesses. We offer flexible plans to suit your needs, based on the number of instances you want to run. We also offer limited Lifetime Offers during our bootstrapping phase.
-## Free Tier
+## Instances
-**Free Forever**
+You can get started easily on PocketHost by purchasing an instance.
-Our Free Tier is perfect for getting started with PocketHost without any upfront costs. It includes:
-
-- **Multiple Projects**: Create up to 25 projects as you need.
- **Generous Resources**: Fair use of storage, bandwidth, and CPU.
-- **Essential Features**: Access to the core functionalities of PocketHost.
-
-The Free Tier is ideal for prototypes, personal projects, or exploring what PocketHost has to offer.
-
-## Pro Tier
-
-**Enhanced Capacity and Access**
-
-For those who need more, our Pro Tier offers expanded capabilities:
-
-- **All Free Tier Benefits**: Plus additional resources.
- **Priority Support**: Get help when you need it.
-- **Advanced Features**: Unlock premium functionalities.
-
-**Subscription Options**:
-
-- **Monthly Plan**: Flexibility to pay as you go.
-- **Annual Plan**: Save more with yearly billing.
-
-Our Pro Tier remains a great deal for users who require extra power and support for their growing projects.
## Lifetime Offers
-**Limited Supply During Bootstrapping**
-
-Occasionally, we offer Lifetime Plans as part of our bootstrapping efforts:
-
- **One-Time Payment**: Enjoy Pro Tier benefits without recurring fees.
- **Limited Availability**: Offered in limited quantities and sold on a first-come, first-served basis.
- **Non-Transferable**: Cannot be pro-rated, transferred, used retroactively, reserved, or purchased in advance.
@@ -46,8 +20,6 @@ Occasionally, we offer Lifetime Plans as part of our bootstrapping efforts:
- Once sold out, Lifetime Offers are gone forever.
- Timing is everything—if you can wait and catch one of these deals, it's an incredible opportunity.
-Many users opt for our standard Pro Tier, which continues to provide excellent value even when Lifetime Offers are unavailable.
-
## Fair Use Policy
**Unlimited Doesn't Mean Infinite**
diff --git a/packages/dashboard/src/routes/(static)/pricing/PricingTable.svelte b/packages/dashboard/src/routes/(static)/pricing/PricingTable.svelte
index da23d633..56869008 100644
--- a/packages/dashboard/src/routes/(static)/pricing/PricingTable.svelte
+++ b/packages/dashboard/src/routes/(static)/pricing/PricingTable.svelte
@@ -14,18 +14,10 @@
const plans = [
{
name: PLAN_NAMES[SubscriptionType.Free],
- price: null,
- },
- {
- name: PLAN_NAMES[SubscriptionType.Premium],
price: [
{
- text: '$20/mo',
- link: `https://store.pockethost.io/checkout/buy/8e7cfb35-846a-4fd6-adcb-c2db5589275d?checkout[custom][user_id]=${$userStore?.id}&checkout[email]=${$userStore?.email}`,
- },
- {
- text: '$199/yr (save 20%)',
- link: `https://store.pockethost.io/checkout/buy/96e4ab4b-f646-4fb2-b830-5584db983e73?checkout[custom][user_id]=${$userStore?.id}&checkout[email]=${$userStore?.email}`,
+ text: '$5-25 monthly',
+ link: `https://store.pockethost.io/buy/d4b2d062-429c-49b4-9cdc-853aaeb17e20?checkout[custom][user_id]=${$userStore?.id}&checkout[email]=${$userStore?.email}`,
},
],
},
@@ -34,60 +26,45 @@
const items: Item[] = [
{
name: 'Number of Instances',
- items: ['25', '250'],
+ items: ['$5/instance (up to 4) or $25 for unlimited'],
info: `Each instance can have its own domain, database, and files.`,
},
{
name: 'Premium Bandwidth',
- items: ['10GB', '100GB'],
- info: `Premium Bandwidth is pooled per account and refreshes monthly. Any data data transferred in or out of any PocketHost instance you own counts against this pool. This includes all HTTP traffic, file downloads, and admin panel usage.`,
- },
- {
- name: 'Standard Bandwidth',
- items: ['Unlimited', 'Unlimited'],
- info: `Standard Bandwidth may be slower than Premium. It is provided so your app doesn't just stop working when you exceed your Premium quota.`,
+ items: ['Unlimited fair use'],
},
+
{
name: 'Storage',
- items: [
- '10GB',
- '
100GB
$5 per 100GB thereafter
',
- ],
- info: `Storage is pooled per account. The first 100GB is included. After that, you are billed $5 for each subsequent 100GB block or partial block of 100GB used.`,
- },
- {
- name: 'Max inodes',
- items: ['1k', '100k'],
- info: `inodes are pooled per account. An inode is typically a file or directory. The inode limit counts toward any file you or your users upload.`,
+ items: ['Unlimited fair use'],
},
{
name: 'CPU',
- items: ['Unlimited', 'Unlimited'],
- info: `Your PocketBase instance runs in a Docker container. While there are practical limits, we do not meter or throttle CPU usage.`,
+ items: ['Unlimited fair use'],
},
{
name: 'FTP access',
- items: ['YesBlock', 'YesBlock'],
+ items: ['YesBlock'],
},
{
name: 'Run every version of PocketBase',
- items: ['YesBlock', 'YesBlock'],
+ items: ['YesBlock'],
info: `We support the latest patch of every minor release of PocketBase.`,
},
{
name: 'Secure infrastructure',
- items: ['YesBlock', 'YesBlock'],
+ items: ['YesBlock'],
},
{
name: 'Community Discord',
- items: ['YesBlock', 'YesBlock'],
+ items: ['YesBlock'],
},
{
name: 'Custom Domains',
- items: ['NoBlock', 'YesBlock'],
+ items: ['YesBlock'],
},
- { name: 'Pro Discord', items: ['NoBlock', 'YesBlock'] },
+ { name: 'Pro Discord', items: ['YesBlock'] },
]
@@ -101,39 +78,25 @@
-
Feature comparison
+
Features
@@ -157,24 +120,18 @@
|
{plan.name}
|
- {#if !plan.price}
- Free Forever |
- {:else}
-
-
- |
- {/if}
+
+
+ |
{/each}