diff --git a/www/components/AdminAccess/index.tsx b/www/components/AdminAccess/index.tsx index 01c314e8b5b..711baa2d4da 100644 --- a/www/components/AdminAccess/index.tsx +++ b/www/components/AdminAccess/index.tsx @@ -7,7 +7,7 @@ const AdminAccess = () => { return (
-
+
{ title_alt={' without leaving the dashboard'} subtitle={'Admin Access'} /> -
+
{ - const { - title, - type, - description, - img_url, - url, - icons, - publish_date, - read_length, - author, - cta - } = props.article - - // interface User { - // name :string; - // job_title :string; - // username: string; - // avatar_url :string; - // } - - // @ts-ignore - const AuthorProfile: User = Authors[author] - - const iconMarkup = icons && icons.map((icon :any) => { - return ( - {icon.img_alt} - ) - }) - - return ( -
-
- {title} -
-
-
- {icons && ( -
- {iconMarkup} -
- )} -

- - {type} - -

- -

{title}

-

- {description} -

-
-
- { AuthorProfile && ( -
- -
-

- - {AuthorProfile.name} - -

-
- - - 6 min read -
-
-
- )} - { cta && ( - - )} -
-
- ) -} - -export default ArticleThumb diff --git a/www/components/BuiltWithSupabase/index.tsx b/www/components/BuiltWithSupabase/index.tsx index 80122aa15b8..116c8240d6b 100644 --- a/www/components/BuiltWithSupabase/index.tsx +++ b/www/components/BuiltWithSupabase/index.tsx @@ -1,11 +1,11 @@ -import ArticleThumb from 'components/ArticleThumb' +import Card from 'components/Card' import SectionHeader from 'components/UI/SectionHeader' import ProjectExamples from "data/ProjectExamples.json" const BuiltExamples = () => { return ( - <> -
+
+
@@ -18,12 +18,22 @@ const BuiltExamples = () => {
- - + {ProjectExamples.map((example: any) => ( + + ))}
- +
) } diff --git a/www/components/Card.tsx b/www/components/Card.tsx new file mode 100644 index 00000000000..43d0677e2ff --- /dev/null +++ b/www/components/Card.tsx @@ -0,0 +1,110 @@ +type PostMetaProps = { + name: string, + avatarUrl: string, + publishDate: string, + readLength: number, +} + +type Props = { + title: string, + type: 'Project Example' | 'Case Study' | 'Blog Post', + description: string, + imgUrl: string, + url: string, + logoUrl?: string, + ctaText?: string, + icons?: any[], + postMeta?: PostMetaProps +} + +const Card = (props: Props) => { + const { + title, + type, + description, + imgUrl, + url, + logoUrl = '', + ctaText = '', + icons = [], + postMeta = { + name: '', + avatarUrl: '', + publishDate: '', + readLength: '' + } + } = props + + const iconMarkup = icons && icons.map((icon :any) => { + return ( + {icon.imgAlt} + ) + }) + + return ( +
+
+ {title} +
+
+
+ {/* {icons && ( +
+ {iconMarkup} +
+ )} */} + + {type} + +
+ {type === 'Project Example' + ? {title} + : + } +

+ {description} +

+
+
+ {type === 'Case Study' && postMeta.name.length > 0 && ( +
+
+ {postMeta.name} + +
+
+

+ {postMeta.name} +

+
+ + + {postMeta.readLength} min read +
+
+
+ )} + { ctaText && ( +
+ {ctaText} +
+ )} +
+
+ ) +} + +export default Card \ No newline at end of file diff --git a/www/components/CaseStudies/index.tsx b/www/components/CaseStudies/index.tsx index 505986626f6..1c8cc79d9b3 100644 --- a/www/components/CaseStudies/index.tsx +++ b/www/components/CaseStudies/index.tsx @@ -1,12 +1,12 @@ -import ArticleThumb from '../ArticleThumb' -import SectionHeader from '../UI/SectionHeader' -import CaseStudiesData from "./../../data/CaseStudies.json" +import Card from 'components/Card' +import SectionHeader from 'components/UI/SectionHeader' +import CaseStudiesData from "data/CaseStudies.json" const CaseStudies = () => { return ( - <> -
+
+
@@ -19,13 +19,23 @@ const CaseStudies = () => { />
- - - + {CaseStudiesData.map((caseStudy: any, idx: number) => ( + + ))}
- +
) } diff --git a/www/components/Features/index.tsx b/www/components/Features/index.tsx index 388e5e408ed..4dca4c970b8 100644 --- a/www/components/Features/index.tsx +++ b/www/components/Features/index.tsx @@ -31,7 +31,7 @@ const Features = () => {
{url && (
-
Learn more link
+ Learn more link
)}
@@ -39,23 +39,25 @@ const Features = () => { }) return ( -
-
- -
-
-
-
-
- {IconSections} -
-
-
- {/* */} +
+
+
+ +
+
+
+
+
+ {IconSections} +
+
+
+ {/* */} +
diff --git a/www/components/MadeForDevelopers/index.tsx b/www/components/MadeForDevelopers/index.tsx index 36c66975c5d..580952c73fe 100644 --- a/www/components/MadeForDevelopers/index.tsx +++ b/www/components/MadeForDevelopers/index.tsx @@ -5,9 +5,9 @@ import CodeExamples from 'components/MadeForDevelopers/CodeExamples' const MadeForDevelopers = () => { return (
-
+
- +
@@ -15,44 +15,41 @@ const MadeForDevelopers = () => {
- -
-
-
-
- TypeScript support -
-
- Type definitions for both server side and client side -
- +
+
+
+
+ TypeScript support +
+
+ Type definitions for both server side and client side +
+ +
-
- -
-
-
- Local emulator - Coming Q1 2021 -
-
- Develop locally and push to production when you're ready -
- +
+
+
+ Local emulator + Coming Q1 2021 +
+
+ Develop locally and push to production when you're ready +
+ +
-
-
- +
diff --git a/www/components/hero.tsx b/www/components/hero.tsx index 4efe7be97cb..dc77696a8e6 100644 --- a/www/components/hero.tsx +++ b/www/components/hero.tsx @@ -4,70 +4,72 @@ import Button from 'components/button' const Hero = () => { return (
- +
+ -
-
-
-
-
+
+
+
+
+
-
-

- The Open Source - Firebase Alternative -

-

- Create your new project backend in less than 2 minutes with easy to use Postgres Database and Authentication. -

-

- Storage and serverless functions coming soon -

+
+

+ The Open Source + Firebase Alternative +

+

+ Create your new project backend in less than 2 minutes with easy to use Postgres Database and Authentication. +

+

+ Storage and serverless functions coming soon +

-
+
+ {/*
*/} + {/* */} +
-
- {/*
*/} - {/* */} -
-
-
+
+
) diff --git a/www/data/CaseStudies.json b/www/data/CaseStudies.json index 17b86074e00..98a83c8c9e3 100644 --- a/www/data/CaseStudies.json +++ b/www/data/CaseStudies.json @@ -1,26 +1,47 @@ -{ - "monitoro": { - "img_url": "https://images.unsplash.com/photo-1496128858413-b36217c2ce36?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1679&q=80", - "type": "case study", - "title": "Monitoro gets to 73M api requests in a week", +[ + { + "type": "Case Study", + "imgUrl": "images/casestudy.png", + "logoUrl": "images/logos/monitoro.png", + "organization": "Monitoro", "url": "https://supabase.io/casestudies/monitoro", - "description":"Omar Kamali is the founder of Monitoro, a service for scraping countless websites 24/7 to notify customers when these websites change. To create this product, Omar needed to handle massive data throughput whilst ensuring his product was reliable and resilient to satisfy a rapidly growing user base.", - "author" : "paul_copplestone" + "description":"Supabase helped Monitoro scale to millions of API requests.", + "postMeta": { + "name" : "Paul Copplestone", + "avatarUrl": "https://avatars0.githubusercontent.com/u/10214025?v=4", + "publishDate": "Mar 16, 2020", + "readLength": 6 + }, + "ctaText": "View case study" }, - "tayfab": { - "img_url": "https://images.unsplash.com/photo-1496128858413-b36217c2ce36?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1679&q=80", - "type": "case study", - "title": "Tayfab", + { + "type": "Case Study", + "imgUrl": "images/casestudy.png", + "logoUrl": "images/logos/monitoro.png", + "organization": "Tayfab", "url": "https://supabase.io/casestudies/monitoro", - "description":"Sarup Banskota loves creating new products that delight his customers. He knows he can add the most value by understanding his client's needs and shipping impressive products fast. For his latest product, Tayfab, he needed to ship quality product fast.", - "author" : "paul_copplestone" + "description":"Supabase helped Monitoro scale to millions of API requests.", + "postMeta": { + "name" : "Paul Copplestone", + "avatarUrl": "https://avatars0.githubusercontent.com/u/10214025?v=4", + "publishDate": "Mar 27, 2020", + "readLength": 5 + }, + "ctaText": "View case study" }, - "llama_lab": { - "img_url": "images/llamalab.png", - "type": "case study", - "title": "Llama Lab", + { + "type": "Blog Post", + "imgUrl": "images/casestudy.png", + "logoUrl": "images/logos/xendit.png", + "organization": "Llama Lab", "url": "https://supabase.io/casestudies/monitoro", - "description":"Amal first discovered us on Ui.Dev newsletter - he doesn't normally click on things in the newsletter but when he saw \"open source firebase Postgres\" as a dev with firebase experience he immediately got it", - "author" : "paul_copplestone" + "description":"Supabase helped Monitoro scale to millions of API requests.", + "postMeta": { + "name" : "Paul Copplestone", + "avatarUrl": "https://avatars0.githubusercontent.com/u/10214025?v=4", + "publishDate": "Mar 20, 2020", + "readLength": 10 + }, + "ctaText": "View case study" } -} +] diff --git a/www/data/ProjectExamples.json b/www/data/ProjectExamples.json index 2eb77dbd74a..2c028585256 100644 --- a/www/data/ProjectExamples.json +++ b/www/data/ProjectExamples.json @@ -1,44 +1,40 @@ -{ - "vercel_and_stripe": { - "img_url": "images/payments-demo.png", - "type": "project example", +[ + { + "imgUrl": "images/payments-demo.png", "title": "NextJS, Stripe and Supabase", "url": "https://github.com/supabase/supabase/tree/master/examples", "description":"Easily deploy a Supabase powered app with Stripe already built in for payments", - "icons" : [ { - "img_url": "https://avatars3.githubusercontent.com/u/54469796?s=480&v=4", - "img_alt": "supabase icon" + "imgUrl": "https://avatars3.githubusercontent.com/u/54469796?s=480&v=4", + "imgAlt": "supabase icon" }, { - "img_url": "https://avatars1.githubusercontent.com/u/14985020?s=480&v=4", - "img_alt": "vercel icon" + "imgUrl": "https://avatars1.githubusercontent.com/u/14985020?s=480&v=4", + "imgAlt": "vercel icon" }, { - "img_url": "https://avatars3.githubusercontent.com/u/856813?s=480&v=6", - "img_alt": "stripe icon" + "imgUrl": "https://avatars3.githubusercontent.com/u/856813?s=480&v=6", + "imgAlt": "stripe icon" } ], - "cta" : true + "ctaText" : "View Project" }, - "nextjs-slack-clone": { - "img_url": "images/slack-clone.png", - "type": "project example", + { + "imgUrl": "images/slack-clone.png", "title": "NextJS realtime chat using Supabase", "url": "https://github.com/supabase/supabase/tree/master/examples/nextjs-slack-clone", "description":"Full-stack Slack clone example", - "icons" : [ { - "img_url": "https://avatars3.githubusercontent.com/u/54469796?s=480&v=4", - "img_alt": "supabase icon" + "imgUrl": "https://avatars3.githubusercontent.com/u/54469796?s=480&v=4", + "imgAlt": "supabase icon" }, { - "img_url": "https://avatars1.githubusercontent.com/u/14985020?s=480&v=4", - "img_alt": "vercel icon" + "imgUrl": "https://avatars1.githubusercontent.com/u/14985020?s=480&v=4", + "imgAlt": "vercel icon" } ], - "cta" : true + "ctaText" : "View Project" } -} +] diff --git a/www/data/Solutions.json b/www/data/Solutions.json index 26cadf9e1e3..990d0bad8fb 100644 --- a/www/data/Solutions.json +++ b/www/data/Solutions.json @@ -28,7 +28,7 @@ "icon" : "M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z", "description": "Trigger backend code automatically with database events, without ever worrying about scaling a server.", "description_short": "", - "label": "Coming soon Q1 2021", + "label": "Coming soon", "url" : "" } } diff --git a/www/public/images/benchmark.svg b/www/public/images/benchmark.svg deleted file mode 100644 index 58012e3d90c..00000000000 --- a/www/public/images/benchmark.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/www/public/images/casestudy.png b/www/public/images/casestudy.png new file mode 100644 index 00000000000..0bca2daf29a Binary files /dev/null and b/www/public/images/casestudy.png differ diff --git a/www/public/images/coatue.png b/www/public/images/coatue.png deleted file mode 100644 index 1be3ab7975d..00000000000 Binary files a/www/public/images/coatue.png and /dev/null differ diff --git a/www/public/images/feature_screens/sql-editor.png b/www/public/images/feature_screens/sql-editor.png deleted file mode 100644 index ee2baabff8c..00000000000 Binary files a/www/public/images/feature_screens/sql-editor.png and /dev/null differ diff --git a/www/public/images/features.png b/www/public/images/features.png deleted file mode 100644 index ea8f229281e..00000000000 Binary files a/www/public/images/features.png and /dev/null differ diff --git a/www/public/images/llamalab.png b/www/public/images/llamalab.png deleted file mode 100644 index b34409e3cda..00000000000 Binary files a/www/public/images/llamalab.png and /dev/null differ diff --git a/www/public/images/logos/coatue.png b/www/public/images/logos/coatue.png new file mode 100644 index 00000000000..3eb7a88de2d Binary files /dev/null and b/www/public/images/logos/coatue.png differ diff --git a/www/public/images/logos/monitoro.png b/www/public/images/logos/monitoro.png new file mode 100644 index 00000000000..7a2efe7f563 Binary files /dev/null and b/www/public/images/logos/monitoro.png differ diff --git a/www/public/images/logos/xendit.png b/www/public/images/logos/xendit.png new file mode 100644 index 00000000000..d2f2f8a94fd Binary files /dev/null and b/www/public/images/logos/xendit.png differ diff --git a/www/public/images/mozilla.png b/www/public/images/mozilla.png deleted file mode 100644 index 050fe933e62..00000000000 Binary files a/www/public/images/mozilla.png and /dev/null differ diff --git a/www/public/images/ycombinator.png b/www/public/images/ycombinator.png deleted file mode 100644 index 09d43b8b46f..00000000000 Binary files a/www/public/images/ycombinator.png and /dev/null differ