From 3274fbbe778909482b5dbaed6197b3b1b914c7d1 Mon Sep 17 00:00:00 2001 From: vincanger <70215737+vincanger@users.noreply.github.com> Date: Tue, 29 Oct 2024 10:31:47 +0100 Subject: [PATCH 1/6] rename PageViewSourcesTable (#309) --- .../src/admin/dashboards/analytics/AnalyticsDashboardPage.tsx | 2 +- .../analytics/{PageViewSourcesTable.tsx => SourcesTable.tsx} | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename template/app/src/admin/dashboards/analytics/{PageViewSourcesTable.tsx => SourcesTable.tsx} (93%) diff --git a/template/app/src/admin/dashboards/analytics/AnalyticsDashboardPage.tsx b/template/app/src/admin/dashboards/analytics/AnalyticsDashboardPage.tsx index 05f52f3..dcd2f1e 100644 --- a/template/app/src/admin/dashboards/analytics/AnalyticsDashboardPage.tsx +++ b/template/app/src/admin/dashboards/analytics/AnalyticsDashboardPage.tsx @@ -5,7 +5,7 @@ import TotalPageViewsCard from './TotalPageViewsCard'; import TotalPayingUsersCard from './TotalPayingUsersCard'; import TotalRevenueCard from './TotalRevenueCard'; import RevenueAndProfitChart from './RevenueAndProfitChart'; -import SourcesTable from './PageViewSourcesTable'; +import SourcesTable from './SourcesTable'; import DefaultLayout from '../../layout/DefaultLayout'; import { useRedirectHomeUnlessUserIsAdmin } from '../../useRedirectHomeUnlessUserIsAdmin' diff --git a/template/app/src/admin/dashboards/analytics/PageViewSourcesTable.tsx b/template/app/src/admin/dashboards/analytics/SourcesTable.tsx similarity index 93% rename from template/app/src/admin/dashboards/analytics/PageViewSourcesTable.tsx rename to template/app/src/admin/dashboards/analytics/SourcesTable.tsx index 493d214..c05f5ba 100644 --- a/template/app/src/admin/dashboards/analytics/PageViewSourcesTable.tsx +++ b/template/app/src/admin/dashboards/analytics/SourcesTable.tsx @@ -1,6 +1,6 @@ import { type PageViewSource } from 'wasp/entities'; -const PageViewSourcesTable = ({ sources }: { sources: PageViewSource[] | undefined }) => { +const SourcesTable = ({ sources }: { sources: PageViewSource[] | undefined }) => { return (

Top Sources

@@ -44,4 +44,4 @@ const PageViewSourcesTable = ({ sources }: { sources: PageViewSource[] | undefin ); }; -export default PageViewSourcesTable; +export default SourcesTable; From 255ea98a563deea7d83ca5a654751269084e7155 Mon Sep 17 00:00:00 2001 From: vincanger <70215737+vincanger@users.noreply.github.com> Date: Tue, 29 Oct 2024 10:37:59 +0100 Subject: [PATCH 2/6] Update deploying docs for clarity (#310) * Update deploying.md * Update deploying.md --- .../blog/src/content/docs/guides/deploying.md | 39 ++++++++++++++++--- 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/opensaas-sh/blog/src/content/docs/guides/deploying.md b/opensaas-sh/blog/src/content/docs/guides/deploying.md index 31918d2..1eb4180 100644 --- a/opensaas-sh/blog/src/content/docs/guides/deploying.md +++ b/opensaas-sh/blog/src/content/docs/guides/deploying.md @@ -5,15 +5,25 @@ banner: 🆕 Open SaaS is now running on Wasp v0.15!
⚙️
If you're running an older version and would like to upgrade, please follow the migration instructions. --- -Because this SaaS app is a React/NodeJS/Postgres app built on top of [Wasp](https://wasp-lang.dev), we will direct you to the [Wasp Deployment Guide](https://wasp-lang.dev/docs/advanced/deployment/overview/) for more detailed instructions, except for where the instructions are specific to this template. +Because this SaaS app is a React/NodeJS/Postgres app built on top of [Wasp](https://wasp-lang.dev), Open SaaS can take advantage of Wasp's easy, one-command deploy to Fly.io or manual deploy to any provider of your choice. -The simplest and quickest option is to take advantage of Wasp's one-command deploy to [Fly.io](#deploying-to-flyio) (`wasp deploy`). +The simplest and quickest option is to take advantage of Wasp's one-command deploy to Fly.io. -Or if you prefer to deploy to a different provider, or your frontend and backend separately, you can follow the [Deploying Manually](#deploying-manually--to-other-providers) section below. - -If you're looking to deploy your Astro Blog, you can follow the [Deploying your Blog](#deploying-your-blog) section at the end of this guide. +Or if you prefer to deploy to a different provider, or your frontend and backend separately, you can follow the Deploying Manually section below. ## Deploying your App +### Steps for Deploying + +These are the steps necessary for you to deploy your app. We recommend you follow these steps in order. + +- [ ] Get your [production API keys and environment variables](#prerequisites) +- [ ] Deploy your app easily to [Fly.io](#deploying-to-flyio) or [manually](#deploying-manually--to-other-providers) to any provider. +- [ ] Add the correct [redirect URL's to your social auth credentials](#adding-server-redirect-urls-to-social-auth) +- [ ] Set up your [production webhooks for either [Stripe](#setting-up-your-production-stripe-webhook) or [Lemon Squeezy](#setting-up-your-production-lemon-squeezy-webhook) +- [ ] Set your [production environment variables](#other-vars) on your deployed apps +- [ ] (Optional) [Deploy your blog](#deploying-your-blog) + +Each of these steps is covered in more detail below. ### Prerequisites @@ -104,7 +114,7 @@ After deploying your server, you need to add the correct redirect URIs to the cr - [Google Auth](https://wasp-lang.dev/docs/auth/social-auth/google#3-creating-a-google-oauth-app:~:text=Under%20Authorized%20redirect%20URIs) - [Github Auth](https://wasp-lang.dev/docs/auth/social-auth/github#3-creating-a-github-oauth-app:~:text=Authorization%20callback%20URL) -### Setting up your Stripe Webhook +### Setting up your Production Stripe Webhook Now you need to set up your stripe webhook for production use. Below are some important steps and considerations you should take as you prepare to deploy your app to production. @@ -165,6 +175,23 @@ export const stripe = new Stripe(process.env.STRIPE_KEY!, { wasp deploy fly cmd --context server secrets set STRIPE_WEBHOOK_SECRET=whsec_... ``` +### Setting up your Production Lemon Squeezy Webhook + +To set up your Lemon Squeezy webhook, you'll need the URL of you newly deployed server + `/payments-webhook`, e.g. `https://open-saas-wasp-sh-server.fly.dev/payments-webhook`. + +With the webhook url ready, go to your [Lemon Squeezy Webhooks Dashboard](https://app.lemonsqueezy.com/settings/webhooks): +- click the `+` button. +- add the webhook forwarding url to the `Callback URL` section. +- give your webhook a signing secret (a long, random string). +- add this signing secret to your server's production environment variables under `LEMONSQUEEZY_WEBHOOK_SECRET=` +- make sure to select at least the following updates to be sent: + - order_created + - subscription_created + - subscription_updated + - subscription_cancelled +- click `save` + + ## Deploying your Blog Deploying your Astro Starlight blog is a bit different than deploying your SaaS app. As an example, we will show you how to deploy your blog for free to Netlify. You will need a Netlify account and [Netlify CLI](https://docs.netlify.com/cli/get-started/) installed to follow these instructions. From 9d4138e1cf5a75dde45f7cb3263653f5fb4d1a03 Mon Sep 17 00:00:00 2001 From: Nnadozie Okeke <15310842+Nnadozie@users.noreply.github.com> Date: Tue, 29 Oct 2024 03:39:10 -0600 Subject: [PATCH 3/6] Update mailgun links for api keys and domains (#294) --- opensaas-sh/blog/src/content/docs/guides/email-sending.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/opensaas-sh/blog/src/content/docs/guides/email-sending.mdx b/opensaas-sh/blog/src/content/docs/guides/email-sending.mdx index 13e4f9a..2200867 100644 --- a/opensaas-sh/blog/src/content/docs/guides/email-sending.mdx +++ b/opensaas-sh/blog/src/content/docs/guides/email-sending.mdx @@ -86,9 +86,9 @@ To set up your email sender, you first need an account with one of the supported - Go to [Mailgun](https://mailgun.com) and create an account. - - Go to [API Keys](https://app.mailgun.com/app/account/security/api_keys) and create a new API key. + - Go to [API Keys](https://app.mailgun.com/settings/api_security/api_keys?onboardingTask=api-key) and create a new API key. - Copy the API key and add it to your .env.server file under the `MAILGUN_API_KEY=` variable. - - Go to [Domains](https://app.mailgun.com/app/domains) and create a new domain. + - Go to [Domains](https://app.mailgun.com/mg/sending/new-domain?onboardingTask=add-verify-domain) and create a new domain. - Copy the domain and add it to your .env.server file as `MAILGUN_DOMAIN=`. Make sure to change the `defaultFrom` email address in the `main.wasp` file to use the same email address that you configured your account to send out emails with! @@ -104,4 +104,4 @@ To set up your email sender, you first need an account with one of the supported -If you want more detailed info, or would like to use SMTP, check out the [Wasp docs](https://wasp-lang.dev/docs/advanced/email). \ No newline at end of file +If you want more detailed info, or would like to use SMTP, check out the [Wasp docs](https://wasp-lang.dev/docs/advanced/email). From 685e02536cdcf89dc6bffe97b1f65c0d7d7ab46a Mon Sep 17 00:00:00 2001 From: vincanger <70215737+vincanger@users.noreply.github.com> Date: Tue, 29 Oct 2024 14:29:31 +0100 Subject: [PATCH 4/6] Allow custom fonts to be accessed via tailwind class (#291) * move fonts and access * move fonts to public folder * Update Main.css --- .../{src/client => public}/fonts/Satoshi-Black.eot | Bin .../{src/client => public}/fonts/Satoshi-Black.ttf | Bin .../{src/client => public}/fonts/Satoshi-Black.woff | Bin .../client => public}/fonts/Satoshi-Black.woff2 | Bin .../client => public}/fonts/Satoshi-BlackItalic.eot | Bin .../client => public}/fonts/Satoshi-BlackItalic.ttf | Bin .../fonts/Satoshi-BlackItalic.woff | Bin .../fonts/Satoshi-BlackItalic.woff2 | Bin .../{src/client => public}/fonts/Satoshi-Bold.eot | Bin .../{src/client => public}/fonts/Satoshi-Bold.ttf | Bin .../{src/client => public}/fonts/Satoshi-Bold.woff | Bin .../{src/client => public}/fonts/Satoshi-Bold.woff2 | Bin .../client => public}/fonts/Satoshi-BoldItalic.eot | Bin .../client => public}/fonts/Satoshi-BoldItalic.ttf | Bin .../client => public}/fonts/Satoshi-BoldItalic.woff | Bin .../fonts/Satoshi-BoldItalic.woff2 | Bin .../{src/client => public}/fonts/Satoshi-Italic.eot | Bin .../{src/client => public}/fonts/Satoshi-Italic.ttf | Bin .../client => public}/fonts/Satoshi-Italic.woff | Bin .../client => public}/fonts/Satoshi-Italic.woff2 | Bin .../{src/client => public}/fonts/Satoshi-Light.eot | Bin .../{src/client => public}/fonts/Satoshi-Light.ttf | Bin .../{src/client => public}/fonts/Satoshi-Light.woff | Bin .../client => public}/fonts/Satoshi-Light.woff2 | Bin .../client => public}/fonts/Satoshi-LightItalic.eot | Bin .../client => public}/fonts/Satoshi-LightItalic.ttf | Bin .../fonts/Satoshi-LightItalic.woff | Bin .../fonts/Satoshi-LightItalic.woff2 | Bin .../{src/client => public}/fonts/Satoshi-Medium.eot | Bin .../{src/client => public}/fonts/Satoshi-Medium.ttf | Bin .../client => public}/fonts/Satoshi-Medium.woff | Bin .../client => public}/fonts/Satoshi-Medium.woff2 | Bin .../fonts/Satoshi-MediumItalic.eot | Bin .../fonts/Satoshi-MediumItalic.ttf | Bin .../fonts/Satoshi-MediumItalic.woff | Bin .../fonts/Satoshi-MediumItalic.woff2 | Bin .../client => public}/fonts/Satoshi-Regular.eot | Bin .../client => public}/fonts/Satoshi-Regular.ttf | Bin .../client => public}/fonts/Satoshi-Regular.woff | Bin .../client => public}/fonts/Satoshi-Regular.woff2 | Bin .../client => public}/fonts/Satoshi-Variable.eot | Bin .../client => public}/fonts/Satoshi-Variable.ttf | Bin .../client => public}/fonts/Satoshi-Variable.woff | Bin .../client => public}/fonts/Satoshi-Variable.woff2 | Bin .../fonts/Satoshi-VariableItalic.eot | Bin .../fonts/Satoshi-VariableItalic.ttf | Bin .../fonts/Satoshi-VariableItalic.woff | Bin .../fonts/Satoshi-VariableItalic.woff2 | Bin template/app/src/client/Main.css | 12 +++++++++++- template/app/src/landing-page/components/Hero.tsx | 2 +- 50 files changed, 12 insertions(+), 2 deletions(-) rename template/app/{src/client => public}/fonts/Satoshi-Black.eot (100%) rename template/app/{src/client => public}/fonts/Satoshi-Black.ttf (100%) rename template/app/{src/client => public}/fonts/Satoshi-Black.woff (100%) rename template/app/{src/client => public}/fonts/Satoshi-Black.woff2 (100%) rename template/app/{src/client => public}/fonts/Satoshi-BlackItalic.eot (100%) rename template/app/{src/client => public}/fonts/Satoshi-BlackItalic.ttf (100%) rename template/app/{src/client => public}/fonts/Satoshi-BlackItalic.woff (100%) rename template/app/{src/client => public}/fonts/Satoshi-BlackItalic.woff2 (100%) rename template/app/{src/client => public}/fonts/Satoshi-Bold.eot (100%) rename template/app/{src/client => public}/fonts/Satoshi-Bold.ttf (100%) rename template/app/{src/client => public}/fonts/Satoshi-Bold.woff (100%) rename template/app/{src/client => public}/fonts/Satoshi-Bold.woff2 (100%) rename template/app/{src/client => public}/fonts/Satoshi-BoldItalic.eot (100%) rename template/app/{src/client => public}/fonts/Satoshi-BoldItalic.ttf (100%) rename template/app/{src/client => public}/fonts/Satoshi-BoldItalic.woff (100%) rename template/app/{src/client => public}/fonts/Satoshi-BoldItalic.woff2 (100%) rename template/app/{src/client => public}/fonts/Satoshi-Italic.eot (100%) rename template/app/{src/client => public}/fonts/Satoshi-Italic.ttf (100%) rename template/app/{src/client => public}/fonts/Satoshi-Italic.woff (100%) rename template/app/{src/client => public}/fonts/Satoshi-Italic.woff2 (100%) rename template/app/{src/client => public}/fonts/Satoshi-Light.eot (100%) rename template/app/{src/client => public}/fonts/Satoshi-Light.ttf (100%) rename template/app/{src/client => public}/fonts/Satoshi-Light.woff (100%) rename template/app/{src/client => public}/fonts/Satoshi-Light.woff2 (100%) rename template/app/{src/client => public}/fonts/Satoshi-LightItalic.eot (100%) rename template/app/{src/client => public}/fonts/Satoshi-LightItalic.ttf (100%) rename template/app/{src/client => public}/fonts/Satoshi-LightItalic.woff (100%) rename template/app/{src/client => public}/fonts/Satoshi-LightItalic.woff2 (100%) rename template/app/{src/client => public}/fonts/Satoshi-Medium.eot (100%) rename template/app/{src/client => public}/fonts/Satoshi-Medium.ttf (100%) rename template/app/{src/client => public}/fonts/Satoshi-Medium.woff (100%) rename template/app/{src/client => public}/fonts/Satoshi-Medium.woff2 (100%) rename template/app/{src/client => public}/fonts/Satoshi-MediumItalic.eot (100%) rename template/app/{src/client => public}/fonts/Satoshi-MediumItalic.ttf (100%) rename template/app/{src/client => public}/fonts/Satoshi-MediumItalic.woff (100%) rename template/app/{src/client => public}/fonts/Satoshi-MediumItalic.woff2 (100%) rename template/app/{src/client => public}/fonts/Satoshi-Regular.eot (100%) rename template/app/{src/client => public}/fonts/Satoshi-Regular.ttf (100%) rename template/app/{src/client => public}/fonts/Satoshi-Regular.woff (100%) rename template/app/{src/client => public}/fonts/Satoshi-Regular.woff2 (100%) rename template/app/{src/client => public}/fonts/Satoshi-Variable.eot (100%) rename template/app/{src/client => public}/fonts/Satoshi-Variable.ttf (100%) rename template/app/{src/client => public}/fonts/Satoshi-Variable.woff (100%) rename template/app/{src/client => public}/fonts/Satoshi-Variable.woff2 (100%) rename template/app/{src/client => public}/fonts/Satoshi-VariableItalic.eot (100%) rename template/app/{src/client => public}/fonts/Satoshi-VariableItalic.ttf (100%) rename template/app/{src/client => public}/fonts/Satoshi-VariableItalic.woff (100%) rename template/app/{src/client => public}/fonts/Satoshi-VariableItalic.woff2 (100%) diff --git a/template/app/src/client/fonts/Satoshi-Black.eot b/template/app/public/fonts/Satoshi-Black.eot similarity index 100% rename from template/app/src/client/fonts/Satoshi-Black.eot rename to template/app/public/fonts/Satoshi-Black.eot diff --git a/template/app/src/client/fonts/Satoshi-Black.ttf b/template/app/public/fonts/Satoshi-Black.ttf similarity index 100% rename from template/app/src/client/fonts/Satoshi-Black.ttf rename to template/app/public/fonts/Satoshi-Black.ttf diff --git a/template/app/src/client/fonts/Satoshi-Black.woff b/template/app/public/fonts/Satoshi-Black.woff similarity index 100% rename from template/app/src/client/fonts/Satoshi-Black.woff rename to template/app/public/fonts/Satoshi-Black.woff diff --git a/template/app/src/client/fonts/Satoshi-Black.woff2 b/template/app/public/fonts/Satoshi-Black.woff2 similarity index 100% rename from template/app/src/client/fonts/Satoshi-Black.woff2 rename to template/app/public/fonts/Satoshi-Black.woff2 diff --git a/template/app/src/client/fonts/Satoshi-BlackItalic.eot b/template/app/public/fonts/Satoshi-BlackItalic.eot similarity index 100% rename from template/app/src/client/fonts/Satoshi-BlackItalic.eot rename to template/app/public/fonts/Satoshi-BlackItalic.eot diff --git a/template/app/src/client/fonts/Satoshi-BlackItalic.ttf b/template/app/public/fonts/Satoshi-BlackItalic.ttf similarity index 100% rename from template/app/src/client/fonts/Satoshi-BlackItalic.ttf rename to template/app/public/fonts/Satoshi-BlackItalic.ttf diff --git a/template/app/src/client/fonts/Satoshi-BlackItalic.woff b/template/app/public/fonts/Satoshi-BlackItalic.woff similarity index 100% rename from template/app/src/client/fonts/Satoshi-BlackItalic.woff rename to template/app/public/fonts/Satoshi-BlackItalic.woff diff --git a/template/app/src/client/fonts/Satoshi-BlackItalic.woff2 b/template/app/public/fonts/Satoshi-BlackItalic.woff2 similarity index 100% rename from template/app/src/client/fonts/Satoshi-BlackItalic.woff2 rename to template/app/public/fonts/Satoshi-BlackItalic.woff2 diff --git a/template/app/src/client/fonts/Satoshi-Bold.eot b/template/app/public/fonts/Satoshi-Bold.eot similarity index 100% rename from template/app/src/client/fonts/Satoshi-Bold.eot rename to template/app/public/fonts/Satoshi-Bold.eot diff --git a/template/app/src/client/fonts/Satoshi-Bold.ttf b/template/app/public/fonts/Satoshi-Bold.ttf similarity index 100% rename from template/app/src/client/fonts/Satoshi-Bold.ttf rename to template/app/public/fonts/Satoshi-Bold.ttf diff --git a/template/app/src/client/fonts/Satoshi-Bold.woff b/template/app/public/fonts/Satoshi-Bold.woff similarity index 100% rename from template/app/src/client/fonts/Satoshi-Bold.woff rename to template/app/public/fonts/Satoshi-Bold.woff diff --git a/template/app/src/client/fonts/Satoshi-Bold.woff2 b/template/app/public/fonts/Satoshi-Bold.woff2 similarity index 100% rename from template/app/src/client/fonts/Satoshi-Bold.woff2 rename to template/app/public/fonts/Satoshi-Bold.woff2 diff --git a/template/app/src/client/fonts/Satoshi-BoldItalic.eot b/template/app/public/fonts/Satoshi-BoldItalic.eot similarity index 100% rename from template/app/src/client/fonts/Satoshi-BoldItalic.eot rename to template/app/public/fonts/Satoshi-BoldItalic.eot diff --git a/template/app/src/client/fonts/Satoshi-BoldItalic.ttf b/template/app/public/fonts/Satoshi-BoldItalic.ttf similarity index 100% rename from template/app/src/client/fonts/Satoshi-BoldItalic.ttf rename to template/app/public/fonts/Satoshi-BoldItalic.ttf diff --git a/template/app/src/client/fonts/Satoshi-BoldItalic.woff b/template/app/public/fonts/Satoshi-BoldItalic.woff similarity index 100% rename from template/app/src/client/fonts/Satoshi-BoldItalic.woff rename to template/app/public/fonts/Satoshi-BoldItalic.woff diff --git a/template/app/src/client/fonts/Satoshi-BoldItalic.woff2 b/template/app/public/fonts/Satoshi-BoldItalic.woff2 similarity index 100% rename from template/app/src/client/fonts/Satoshi-BoldItalic.woff2 rename to template/app/public/fonts/Satoshi-BoldItalic.woff2 diff --git a/template/app/src/client/fonts/Satoshi-Italic.eot b/template/app/public/fonts/Satoshi-Italic.eot similarity index 100% rename from template/app/src/client/fonts/Satoshi-Italic.eot rename to template/app/public/fonts/Satoshi-Italic.eot diff --git a/template/app/src/client/fonts/Satoshi-Italic.ttf b/template/app/public/fonts/Satoshi-Italic.ttf similarity index 100% rename from template/app/src/client/fonts/Satoshi-Italic.ttf rename to template/app/public/fonts/Satoshi-Italic.ttf diff --git a/template/app/src/client/fonts/Satoshi-Italic.woff b/template/app/public/fonts/Satoshi-Italic.woff similarity index 100% rename from template/app/src/client/fonts/Satoshi-Italic.woff rename to template/app/public/fonts/Satoshi-Italic.woff diff --git a/template/app/src/client/fonts/Satoshi-Italic.woff2 b/template/app/public/fonts/Satoshi-Italic.woff2 similarity index 100% rename from template/app/src/client/fonts/Satoshi-Italic.woff2 rename to template/app/public/fonts/Satoshi-Italic.woff2 diff --git a/template/app/src/client/fonts/Satoshi-Light.eot b/template/app/public/fonts/Satoshi-Light.eot similarity index 100% rename from template/app/src/client/fonts/Satoshi-Light.eot rename to template/app/public/fonts/Satoshi-Light.eot diff --git a/template/app/src/client/fonts/Satoshi-Light.ttf b/template/app/public/fonts/Satoshi-Light.ttf similarity index 100% rename from template/app/src/client/fonts/Satoshi-Light.ttf rename to template/app/public/fonts/Satoshi-Light.ttf diff --git a/template/app/src/client/fonts/Satoshi-Light.woff b/template/app/public/fonts/Satoshi-Light.woff similarity index 100% rename from template/app/src/client/fonts/Satoshi-Light.woff rename to template/app/public/fonts/Satoshi-Light.woff diff --git a/template/app/src/client/fonts/Satoshi-Light.woff2 b/template/app/public/fonts/Satoshi-Light.woff2 similarity index 100% rename from template/app/src/client/fonts/Satoshi-Light.woff2 rename to template/app/public/fonts/Satoshi-Light.woff2 diff --git a/template/app/src/client/fonts/Satoshi-LightItalic.eot b/template/app/public/fonts/Satoshi-LightItalic.eot similarity index 100% rename from template/app/src/client/fonts/Satoshi-LightItalic.eot rename to template/app/public/fonts/Satoshi-LightItalic.eot diff --git a/template/app/src/client/fonts/Satoshi-LightItalic.ttf b/template/app/public/fonts/Satoshi-LightItalic.ttf similarity index 100% rename from template/app/src/client/fonts/Satoshi-LightItalic.ttf rename to template/app/public/fonts/Satoshi-LightItalic.ttf diff --git a/template/app/src/client/fonts/Satoshi-LightItalic.woff b/template/app/public/fonts/Satoshi-LightItalic.woff similarity index 100% rename from template/app/src/client/fonts/Satoshi-LightItalic.woff rename to template/app/public/fonts/Satoshi-LightItalic.woff diff --git a/template/app/src/client/fonts/Satoshi-LightItalic.woff2 b/template/app/public/fonts/Satoshi-LightItalic.woff2 similarity index 100% rename from template/app/src/client/fonts/Satoshi-LightItalic.woff2 rename to template/app/public/fonts/Satoshi-LightItalic.woff2 diff --git a/template/app/src/client/fonts/Satoshi-Medium.eot b/template/app/public/fonts/Satoshi-Medium.eot similarity index 100% rename from template/app/src/client/fonts/Satoshi-Medium.eot rename to template/app/public/fonts/Satoshi-Medium.eot diff --git a/template/app/src/client/fonts/Satoshi-Medium.ttf b/template/app/public/fonts/Satoshi-Medium.ttf similarity index 100% rename from template/app/src/client/fonts/Satoshi-Medium.ttf rename to template/app/public/fonts/Satoshi-Medium.ttf diff --git a/template/app/src/client/fonts/Satoshi-Medium.woff b/template/app/public/fonts/Satoshi-Medium.woff similarity index 100% rename from template/app/src/client/fonts/Satoshi-Medium.woff rename to template/app/public/fonts/Satoshi-Medium.woff diff --git a/template/app/src/client/fonts/Satoshi-Medium.woff2 b/template/app/public/fonts/Satoshi-Medium.woff2 similarity index 100% rename from template/app/src/client/fonts/Satoshi-Medium.woff2 rename to template/app/public/fonts/Satoshi-Medium.woff2 diff --git a/template/app/src/client/fonts/Satoshi-MediumItalic.eot b/template/app/public/fonts/Satoshi-MediumItalic.eot similarity index 100% rename from template/app/src/client/fonts/Satoshi-MediumItalic.eot rename to template/app/public/fonts/Satoshi-MediumItalic.eot diff --git a/template/app/src/client/fonts/Satoshi-MediumItalic.ttf b/template/app/public/fonts/Satoshi-MediumItalic.ttf similarity index 100% rename from template/app/src/client/fonts/Satoshi-MediumItalic.ttf rename to template/app/public/fonts/Satoshi-MediumItalic.ttf diff --git a/template/app/src/client/fonts/Satoshi-MediumItalic.woff b/template/app/public/fonts/Satoshi-MediumItalic.woff similarity index 100% rename from template/app/src/client/fonts/Satoshi-MediumItalic.woff rename to template/app/public/fonts/Satoshi-MediumItalic.woff diff --git a/template/app/src/client/fonts/Satoshi-MediumItalic.woff2 b/template/app/public/fonts/Satoshi-MediumItalic.woff2 similarity index 100% rename from template/app/src/client/fonts/Satoshi-MediumItalic.woff2 rename to template/app/public/fonts/Satoshi-MediumItalic.woff2 diff --git a/template/app/src/client/fonts/Satoshi-Regular.eot b/template/app/public/fonts/Satoshi-Regular.eot similarity index 100% rename from template/app/src/client/fonts/Satoshi-Regular.eot rename to template/app/public/fonts/Satoshi-Regular.eot diff --git a/template/app/src/client/fonts/Satoshi-Regular.ttf b/template/app/public/fonts/Satoshi-Regular.ttf similarity index 100% rename from template/app/src/client/fonts/Satoshi-Regular.ttf rename to template/app/public/fonts/Satoshi-Regular.ttf diff --git a/template/app/src/client/fonts/Satoshi-Regular.woff b/template/app/public/fonts/Satoshi-Regular.woff similarity index 100% rename from template/app/src/client/fonts/Satoshi-Regular.woff rename to template/app/public/fonts/Satoshi-Regular.woff diff --git a/template/app/src/client/fonts/Satoshi-Regular.woff2 b/template/app/public/fonts/Satoshi-Regular.woff2 similarity index 100% rename from template/app/src/client/fonts/Satoshi-Regular.woff2 rename to template/app/public/fonts/Satoshi-Regular.woff2 diff --git a/template/app/src/client/fonts/Satoshi-Variable.eot b/template/app/public/fonts/Satoshi-Variable.eot similarity index 100% rename from template/app/src/client/fonts/Satoshi-Variable.eot rename to template/app/public/fonts/Satoshi-Variable.eot diff --git a/template/app/src/client/fonts/Satoshi-Variable.ttf b/template/app/public/fonts/Satoshi-Variable.ttf similarity index 100% rename from template/app/src/client/fonts/Satoshi-Variable.ttf rename to template/app/public/fonts/Satoshi-Variable.ttf diff --git a/template/app/src/client/fonts/Satoshi-Variable.woff b/template/app/public/fonts/Satoshi-Variable.woff similarity index 100% rename from template/app/src/client/fonts/Satoshi-Variable.woff rename to template/app/public/fonts/Satoshi-Variable.woff diff --git a/template/app/src/client/fonts/Satoshi-Variable.woff2 b/template/app/public/fonts/Satoshi-Variable.woff2 similarity index 100% rename from template/app/src/client/fonts/Satoshi-Variable.woff2 rename to template/app/public/fonts/Satoshi-Variable.woff2 diff --git a/template/app/src/client/fonts/Satoshi-VariableItalic.eot b/template/app/public/fonts/Satoshi-VariableItalic.eot similarity index 100% rename from template/app/src/client/fonts/Satoshi-VariableItalic.eot rename to template/app/public/fonts/Satoshi-VariableItalic.eot diff --git a/template/app/src/client/fonts/Satoshi-VariableItalic.ttf b/template/app/public/fonts/Satoshi-VariableItalic.ttf similarity index 100% rename from template/app/src/client/fonts/Satoshi-VariableItalic.ttf rename to template/app/public/fonts/Satoshi-VariableItalic.ttf diff --git a/template/app/src/client/fonts/Satoshi-VariableItalic.woff b/template/app/public/fonts/Satoshi-VariableItalic.woff similarity index 100% rename from template/app/src/client/fonts/Satoshi-VariableItalic.woff rename to template/app/public/fonts/Satoshi-VariableItalic.woff diff --git a/template/app/src/client/fonts/Satoshi-VariableItalic.woff2 b/template/app/public/fonts/Satoshi-VariableItalic.woff2 similarity index 100% rename from template/app/src/client/fonts/Satoshi-VariableItalic.woff2 rename to template/app/public/fonts/Satoshi-VariableItalic.woff2 diff --git a/template/app/src/client/Main.css b/template/app/src/client/Main.css index ee73800..9a1979d 100644 --- a/template/app/src/client/Main.css +++ b/template/app/src/client/Main.css @@ -21,7 +21,17 @@ } } - +/* Here is an example of how to add a custom font. +* Fonts are stored in the public/fonts folder. +* They are defined first here, then need to be referenced in the tailwind.config.js file +* under `theme.extend.fontFamily`, and then can be used as a tailwind class, e.g. className='font-satoshi'. +*/ +@font-face { + font-family: 'Satoshi'; + src: url('/fonts/Satoshi-Regular.woff2') format('woff2'); + font-weight: normal; + font-style: normal; +} /* third-party libraries CSS */ diff --git a/template/app/src/landing-page/components/Hero.tsx b/template/app/src/landing-page/components/Hero.tsx index 06dfeea..49fcaec 100644 --- a/template/app/src/landing-page/components/Hero.tsx +++ b/template/app/src/landing-page/components/Hero.tsx @@ -58,5 +58,5 @@ export default function Hero() {
- ) + ); } From 3bb78654d8512f2726ffea05c839e5789492c63c Mon Sep 17 00:00:00 2001 From: vincanger <70215737+vincanger@users.noreply.github.com> Date: Tue, 12 Nov 2024 13:38:06 +0100 Subject: [PATCH 5/6] Use webp over png and lazy load images (#314) * use webp and lazy load images * fix hero * update app_diff * fix app_diff * fix head * remove async decoding --- opensaas-sh/app_diff/deletions | 6 +- opensaas-sh/app_diff/main.wasp.diff | 70 ++++++++++------- .../migration.sql.diff | 11 +++ .../landing-page/components/Clients.tsx.diff | 2 +- .../landing-page/components/Header.tsx.diff | 18 +++-- .../src/landing-page/components/Hero.tsx.diff | 20 ++--- .../src/landing-page/contentSections.ts.diff | 4 +- opensaas-sh/app_diff/tailwind.config.cjs.diff | 6 +- opensaas-sh/blog/astro.config.mjs | 2 +- opensaas-sh/blog/src/assets/logo.png | Bin 24877 -> 0 bytes opensaas-sh/blog/src/assets/logo.webp | Bin 0 -> 13258 bytes .../blog/src/content/docs/guides/seo.md | 2 +- .../src/content/docs/start/guided-tour.md | 6 +- template/app/main.wasp | 36 +++++---- template/app/public/banner.png | Bin 860453 -> 0 bytes template/app/public/public-banner.png | Bin 252425 -> 0 bytes template/app/public/public-banner.webp | Bin 0 -> 148810 bytes template/app/src/admin/layout/Sidebar.tsx | 2 +- template/app/src/client/App.tsx | 2 +- template/app/src/client/Main.css | 1 + .../app/src/client/components/AppNavBar.tsx | 2 +- .../src/client/static/avatar-placeholder.png | Bin 9433 -> 0 bytes .../src/client/static/avatar-placeholder.webp | Bin 0 -> 1394 bytes template/app/src/client/static/da-boi.png | Bin 182323 -> 0 bytes template/app/src/client/static/da-boi.webp | Bin 0 -> 33692 bytes template/app/src/client/static/logo.png | Bin 24877 -> 0 bytes template/app/src/client/static/logo.webp | Bin 0 -> 13258 bytes .../src/client/static/open-saas-banner.png | Bin 860453 -> 0 bytes .../src/client/static/open-saas-banner.webp | Bin 0 -> 148810 bytes template/app/src/landing-page/LandingPage.tsx | 8 +- .../src/landing-page/components/Header.tsx | 2 +- .../app/src/landing-page/components/Hero.tsx | 71 +++++++++++------- .../landing-page/components/Testimonials.tsx | 2 +- .../app/src/landing-page/contentSections.ts | 4 +- template/app/tailwind.config.cjs | 2 +- template/blog/astro.config.mjs | 2 +- 36 files changed, 165 insertions(+), 116 deletions(-) create mode 100644 opensaas-sh/app_diff/migrations/20241031103046_remove_checkout_session_id/migration.sql.diff delete mode 100644 opensaas-sh/blog/src/assets/logo.png create mode 100644 opensaas-sh/blog/src/assets/logo.webp delete mode 100644 template/app/public/banner.png delete mode 100644 template/app/public/public-banner.png create mode 100644 template/app/public/public-banner.webp delete mode 100644 template/app/src/client/static/avatar-placeholder.png create mode 100644 template/app/src/client/static/avatar-placeholder.webp delete mode 100644 template/app/src/client/static/da-boi.png create mode 100644 template/app/src/client/static/da-boi.webp delete mode 100644 template/app/src/client/static/logo.png create mode 100644 template/app/src/client/static/logo.webp delete mode 100644 template/app/src/client/static/open-saas-banner.png create mode 100644 template/app/src/client/static/open-saas-banner.webp diff --git a/opensaas-sh/app_diff/deletions b/opensaas-sh/app_diff/deletions index 16949c4..9508dd9 100644 --- a/opensaas-sh/app_diff/deletions +++ b/opensaas-sh/app_diff/deletions @@ -1,6 +1,6 @@ -public/public-banner.png -src/client/static/avatar-placeholder.png -src/client/static/open-saas-banner.png +src/client/static/avatar-placeholder.webp +src/client/static/da-boi.webp +src/client/static/open-saas-banner.webp src/landing-page/logos/SalesforceLogo.tsx src/payment/lemonSqueezy/checkoutUtils.ts src/payment/lemonSqueezy/paymentDetails.ts diff --git a/opensaas-sh/app_diff/main.wasp.diff b/opensaas-sh/app_diff/main.wasp.diff index c2ab24f..e03393b 100644 --- a/opensaas-sh/app_diff/main.wasp.diff +++ b/opensaas-sh/app_diff/main.wasp.diff @@ -1,6 +1,6 @@ --- template/app/main.wasp +++ opensaas-sh/app/main.wasp -@@ -3,24 +3,24 @@ +@@ -3,30 +3,30 @@ version: "^0.15.0" }, @@ -8,35 +8,47 @@ + title: "Open SaaS", head: [ - "", -- "", -+ "", - "", -- "", -- "", -- "", -+ "", -+ "", + "", +- "", +- "", +- "", +- ++ "", ++ "", ++ "", + -+ "", -+ "", -+ "", -+ "", - "", - "", - "", -- // TODO: You can put your Plausible analytics scripts below (https://docs.opensaas.sh/guides/analytics/): -- // NOTE: Plausible does not use Cookies, so you can simply add the scripts here. -- // Google, on the other hand, does, so you must instead add the script dynamically -- // via the Cookie Consent component after the user clicks the "Accept" cookies button. -- "", // for production -- "", // for development -+ "", -+ "", ++ "", + "", +- "", +- "", +- "", +- "", +- "", +- "", ++ "", ++ "", ++ "", ++ "", ++ ++ "", ++ "", ++ "", ++ "", + "", + "", + "", +- // TODO: You can put your Plausible analytics scripts below (https://docs.opensaas.sh/guides/analytics/): +- // NOTE: Plausible does not use Cookies, so you can simply add the scripts here. +- // Google, on the other hand, does, so you must instead add the script dynamically +- // via the Cookie Consent component after the user clicks the "Accept" cookies button. +- "", // for production +- "", // for development ++ "", ++ "", ], // 🔐 Auth out of the box! https://wasp-lang.dev/docs/auth/overview -@@ -32,7 +32,7 @@ +@@ -38,7 +38,7 @@ email: { fromField: { name: "Open SaaS App", @@ -45,7 +57,7 @@ }, emailVerification: { clientRoute: EmailVerificationRoute, -@@ -44,21 +44,18 @@ +@@ -50,21 +50,18 @@ }, userSignupFields: import { getEmailUserFields } from "@src/auth/userSignupFields", }, @@ -79,7 +91,7 @@ }, onAfterSignup: import { onAfterSignup } from "@src/auth/hooks", onAuthFailedRedirectTo: "/login", -@@ -81,11 +78,11 @@ +@@ -87,11 +84,11 @@ // NOTE: "Dummy" provider is just for local development purposes. // Make sure to check the server logs for the email confirmation url (it will not be sent to an address)! // Once you are ready for production, switch to e.g. "SendGrid" or "Mailgun" providers. Check out https://docs.opensaas.sh/guides/email-sending/ . @@ -93,7 +105,7 @@ }, }, } -@@ -206,9 +203,9 @@ +@@ -212,9 +209,9 @@ } api paymentsWebhook { diff --git a/opensaas-sh/app_diff/migrations/20241031103046_remove_checkout_session_id/migration.sql.diff b/opensaas-sh/app_diff/migrations/20241031103046_remove_checkout_session_id/migration.sql.diff new file mode 100644 index 0000000..e50b002 --- /dev/null +++ b/opensaas-sh/app_diff/migrations/20241031103046_remove_checkout_session_id/migration.sql.diff @@ -0,0 +1,11 @@ +--- template/app/migrations/20241031103046_remove_checkout_session_id/migration.sql ++++ opensaas-sh/app/migrations/20241031103046_remove_checkout_session_id/migration.sql +@@ -0,0 +1,8 @@ ++/* ++ Warnings: ++ ++ - You are about to drop the column `checkoutSessionId` on the `User` table. All the data in the column will be lost. ++ ++*/ ++-- AlterTable ++ALTER TABLE "User" DROP COLUMN "checkoutSessionId"; diff --git a/opensaas-sh/app_diff/src/landing-page/components/Clients.tsx.diff b/opensaas-sh/app_diff/src/landing-page/components/Clients.tsx.diff index dbde87c..4c9ed18 100644 --- a/opensaas-sh/app_diff/src/landing-page/components/Clients.tsx.diff +++ b/opensaas-sh/app_diff/src/landing-page/components/Clients.tsx.diff @@ -1,7 +1,7 @@ --- template/app/src/landing-page/components/Clients.tsx +++ opensaas-sh/app/src/landing-page/components/Clients.tsx @@ -1,23 +1,64 @@ -+import logo from '../../client/static/logo.png'; ++import logo from '../../client/static/logo.webp'; import AstroLogo from "../logos/AstroLogo"; -import OpenAILogo from "../logos/OpenAILogo"; import PrismaLogo from "../logos/PrismaLogo"; diff --git a/opensaas-sh/app_diff/src/landing-page/components/Header.tsx.diff b/opensaas-sh/app_diff/src/landing-page/components/Header.tsx.diff index 4ee4dd9..86d7ba6 100644 --- a/opensaas-sh/app_diff/src/landing-page/components/Header.tsx.diff +++ b/opensaas-sh/app_diff/src/landing-page/components/Header.tsx.diff @@ -25,7 +25,7 @@ > - Your Saas -+ Open Saas ++ Open SaaS
@@ -47,6 +47,15 @@
) : ( +@@ -78,7 +79,7 @@ + +
+ +- Your SaaS ++ Open SaaS + + +
) : ( -@@ -125,3 +126,27 @@ +@@ -125,3 +126,26 @@ ) } + -+const ContestURL = -+ 'https://docs.opensaas.sh/blog/'; ++const ContestURL = 'https://x.com/WaspLang'; + +function Announcement() { + return ( @@ -75,7 +83,7 @@ + onClick={() => window.open(ContestURL, '_blank')} + className='hidden lg:block cursor-pointer rounded-full bg-neutral-700 px-2.5 py-1 text-xs hover:bg-neutral-600 tracking-wider' + > -+ Enter here and win prizes! → ++ Vote for the winner here! → + +
window.open(ContestURL, '_blank')} diff --git a/opensaas-sh/app_diff/src/landing-page/components/Hero.tsx.diff b/opensaas-sh/app_diff/src/landing-page/components/Hero.tsx.diff index 8d65bc2..2669952 100644 --- a/opensaas-sh/app_diff/src/landing-page/components/Hero.tsx.diff +++ b/opensaas-sh/app_diff/src/landing-page/components/Hero.tsx.diff @@ -1,7 +1,7 @@ --- template/app/src/landing-page/components/Hero.tsx +++ opensaas-sh/app/src/landing-page/components/Hero.tsx @@ -1,7 +1,25 @@ --import openSaasBanner from '../../client/static/open-saas-banner.png'; +-import openSaasBannerWebp from '../../client/static/open-saas-banner.webp'; -import { DocsUrl } from '../../shared/common'; +import { useState, useEffect } from 'react'; +import { AiFillGithub } from 'react-icons/ai'; @@ -26,9 +26,9 @@ + }, []); + return ( -
-
+ +@@ -9,31 +27,47 @@
@@ -69,15 +69,17 @@ +
-
--
+-
+-
- App screenshot ++
+
+