From f8d679993a86a2e87896b15f7a3ef4addc068047 Mon Sep 17 00:00:00 2001 From: Amruth Pillai Date: Thu, 16 Jul 2020 20:30:53 +0530 Subject: [PATCH] - make the app faster, better accesibility --- firebase.json | 34 ++++++-------------------- gatsby-config.js | 15 ++++++++++++ src/components/landing/Hero.js | 1 + src/components/landing/Screenshots.js | 8 ++++-- src/components/shared/Wrapper.js | 1 + src/pages/index.js | 6 ++--- static/favicon.ico | Bin 1842 -> 0 bytes static/icons/maskable.png | Bin 0 -> 30361 bytes 8 files changed, 34 insertions(+), 31 deletions(-) delete mode 100644 static/favicon.ico create mode 100644 static/icons/maskable.png diff --git a/firebase.json b/firebase.json index a2778f6d..c1c0683d 100644 --- a/firebase.json +++ b/firebase.json @@ -5,48 +5,30 @@ "public": "public", "ignore": ["**/.*", "firebase.json", "**/node_modules/**"], "headers": [ - { - "source": "**/*.@(eot|otf|ttf|ttc|woff|woff2|font.css)", - "headers": [ - { - "key": "Access-Control-Allow-Origin", - "value": "*" - } - ] - }, - { - "source": "**/*.@(eot|otf|ttf|ttc|woff|woff2|font.css)", - "headers": [ - { - "key": "cache-control", - "value": "max-age=604800" - } - ] - }, { "source": "**/*", "headers": [ { "key": "cache-control", - "value": "public, max-age=0, must-revalidate" + "value": "cache-control: public, max-age=86400, must-revalidate" } ] }, { - "source": "**/*.@(js|css)", + "source": "static/**", "headers": [ { "key": "cache-control", - "value": "max-age=604800" + "value": "public, max-age=604800, immutable" } ] }, { - "source": "**/*.@(jpg|jpeg|gif|png|svg)", + "source": "**/*.@(css|js|woff2|jpg|png)", "headers": [ { "key": "cache-control", - "value": "max-age=604800" + "value": "public, max-age=86400, immutable" } ] }, @@ -55,16 +37,16 @@ "headers": [ { "key": "cache-control", - "value": "public, max-age=0, must-revalidate" + "value": "cache-control: public, max-age=86400, must-revalidate" } ] }, { - "source": "404.html", + "source": "page-data/**", "headers": [ { "key": "cache-control", - "value": "max-age=300" + "value": "cache-control: public, max-age=86400, must-revalidate" } ] } diff --git a/gatsby-config.js b/gatsby-config.js index 3a724c4e..1140c854 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -71,9 +71,21 @@ module.exports = { description: 'A free and open-source resume builder.', start_url: '/?source=pwa', icon: 'static/images/logo.png', + icon_options: { + purpose: 'any maskable monochrome', + }, background_color: '#FFFFFF', theme_color: '#444444', display: 'standalone', + cache_busting_mode: 'none', + icons: [ + { + src: 'static/icons/maskable.png', + sizes: '196x196', + type: 'image/png', + purpose: 'any maskable monochrome', + }, + ], shortcuts: [ { name: 'Dashboard', @@ -87,6 +99,9 @@ module.exports = { { resolve: 'gatsby-plugin-offline', options: { + workboxConfig: { + globPatterns: ['**/*'], + }, precachePages: ['', '/app/*', '/blog/*'], }, }, diff --git a/src/components/landing/Hero.js b/src/components/landing/Hero.js index 6d888d34..ed33d071 100644 --- a/src/components/landing/Hero.js +++ b/src/components/landing/Hero.js @@ -20,6 +20,7 @@ const Hero = () => { return (
+ Reactive Resume diff --git a/src/components/landing/Screenshots.js b/src/components/landing/Screenshots.js index ccdd8354..8866b430 100644 --- a/src/components/landing/Screenshots.js +++ b/src/components/landing/Screenshots.js @@ -71,7 +71,7 @@ const Screenshots = () => { return (
-

Screenshots

+
Screenshots
{Object.keys(screenshots).map((x) => ( @@ -82,7 +82,11 @@ const Screenshots = () => { key={screenshots[x].childImageSharp.fluid.src} href={screenshots[x].childImageSharp.fluid.src} > - + Reactive Resume Screenshot + ))}
diff --git a/src/components/shared/Wrapper.js b/src/components/shared/Wrapper.js index a85ce29b..0df2d383 100644 --- a/src/components/shared/Wrapper.js +++ b/src/components/shared/Wrapper.js @@ -18,6 +18,7 @@ const Wrapper = ({ children }) => { return ( <> + Reactive Resume {
-

+
Links of Interest -

+
Frequently Asked Questions { const Feature = ({ title, children }) => { return (
-

{title}

+
{title}

{children}

); diff --git a/static/favicon.ico b/static/favicon.ico deleted file mode 100644 index 00987df34e4594136e0f211aef6d7d7f88395f52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1842 zcmV-22hI42P)SMQc?&H51$rsGr_o}a6>}_ zB_$<4y{^${*t2I3`}gnXpV(7OY6@sH8uWTSk|g2d;{$*!%Urv5jfRGXX%RTxOv-?; zurR8ttGRvqHh1sd#b7W1AcUZ%re<0MPB&9dfg5TwIKzC!1EEl^Wa!;2R$+}BsH zUQK3Zru$n5Fc=JEWo3ClvS%4L2S}1cLP7$7`_Tr7i;E*WJDcavp94@|Uys3HaGMeq z7WTvEIGs*rTx02vt>2qD~=c<9UUF$^?FZ+o-*U+0M|F? zeuEJI$hP-qjQa$b&1O!XJn266_xC3$DT&LMT@fP{nuA|oSt^ym?K zy`I$6R6c+HOmlNH(b3Vw#KiFU@ngcn!x4p{;lhRV z_4QF*UCo6H7r1!wBK7t4ELyaPk&zKB77GUt9>ioa5g#8CWCbn(cMsRR2 zCX)$`MuRNN0NlED3yns@=;$ay2%bHA#@VxHdGh25#l^+wbUFYkD=R4~Dq`*0wUahr z!mB`ccQ+3nJfOV197R!xh=}0*`}Z_9HnL*H3Qn9j!LD7q`1I)$4xe~2b%i+U^sj8~t^5x4o z91h~*;wUUE1pewOfgcJb7cnt0L`6lhbm>yeW;2P2i9|<76B-)I$jAr|hl7EE0c2U` z#*G^QEL*m0%KH%$Hek(~HDqUJV>B8W9UUbgAb|Mzc>MkSk!6|9n>S;%TJiDmAw4~v z`}gm&W5*8kdOhXkWN2uJLx&C_NfO!F*=V&|YHMqmJ9q96%c`q`{66mYhPYlIKYpC# zl zca!8g?{GNK>2yDIjNiv`#dXE_drW|D-@akD+X)U1o^oyC{fms+0@TK9fZ77o#%qAu z0@UW0g^<;1#cH+Al$Hr2Ns`A}@^K9q931pWAW!1SpW*)aDe%ieXg1eKGcpDKpSHe! z#xD)%@9$?|U|^=SxRE4j#x_lVX~4k109{>OGa}^g%#;D%Bsg1>;7sKoZxZ~~#p$dB zJz35D4ysjxv*k}!-Xy4I5}fr@U^WPxZvOZw;59&P0cztlU^e&s(~ZO7Km*)y{aX7c g;dDBwtE;>7ACs}H3|+f_LI3~&07*qoM6N<$g7=AaiU0rr diff --git a/static/icons/maskable.png b/static/icons/maskable.png new file mode 100644 index 0000000000000000000000000000000000000000..7ddc56491e0e3a9cce49768504c7e6e45a0c30b2 GIT binary patch literal 30361 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 H&2Rr7w*88> literal 0 HcmV?d00001