aboutsummaryrefslogtreecommitdiffstats
path: root/packages/web
diff options
context:
space:
mode:
authorMohamedBassem <me@mbassem.com>2024-03-04 16:52:39 +0000
committerMohamedBassem <me@mbassem.com>2024-03-04 16:52:39 +0000
commit19f17b497a5f6a7619af9d099243af337e8fce5e (patch)
treeabfc437a8f1ec4a861a3784e5d4167cc213d79b4 /packages/web
parentaf01de885fdf62b2364e3cec44b25007000c3d05 (diff)
downloadkarakeep-19f17b497a5f6a7619af9d099243af337e8fce5e.tar.zst
feature: Initial attempt at making the app a PWA
Diffstat (limited to 'packages/web')
-rw-r--r--packages/web/app/layout.tsx9
-rw-r--r--packages/web/next.config.mjs11
-rw-r--r--packages/web/package.json1
-rw-r--r--packages/web/public/icons/logo-128.pngbin0 -> 2362 bytes
-rw-r--r--packages/web/public/icons/logo-16.pngbin0 -> 287 bytes
-rw-r--r--packages/web/public/icons/logo-48.pngbin0 -> 780 bytes
-rw-r--r--packages/web/public/manifest.json25
7 files changed, 44 insertions, 2 deletions
diff --git a/packages/web/app/layout.tsx b/packages/web/app/layout.tsx
index ba4d82e8..b1790a1f 100644
--- a/packages/web/app/layout.tsx
+++ b/packages/web/app/layout.tsx
@@ -12,7 +12,16 @@ const inter = Inter({ subsets: ["latin"] });
export const metadata: Metadata = {
title: "Hoarder",
+ applicationName: "Hoarder",
description: "Your AI powered second brain",
+ manifest: "/manifest.json",
+ appleWebApp: {
+ capable: true,
+ title: "Hoarder",
+ },
+ formatDetection: {
+ telephone: false,
+ },
};
export const viewport: Viewport = {
diff --git a/packages/web/next.config.mjs b/packages/web/next.config.mjs
index 3ebca31a..0aa37287 100644
--- a/packages/web/next.config.mjs
+++ b/packages/web/next.config.mjs
@@ -1,5 +1,12 @@
+import pwa from "next-pwa";
+
+const withPWA = pwa({
+ dest: "public",
+ disable: process.env.NODE_ENV != "production",
+});
+
/** @type {import('next').NextConfig} */
-const nextConfig = {
+const nextConfig = withPWA({
output: "standalone",
async headers() {
return [
@@ -27,6 +34,6 @@ const nextConfig = {
},
];
},
-};
+});
export default nextConfig;
diff --git a/packages/web/package.json b/packages/web/package.json
index 5c99ee7a..5367d189 100644
--- a/packages/web/package.json
+++ b/packages/web/package.json
@@ -44,6 +44,7 @@
"meilisearch": "^0.37.0",
"next": "14.1.1",
"next-auth": "^4.24.5",
+ "next-pwa": "^5.6.0",
"prettier": "^3.2.5",
"react": "^18",
"react-dom": "^18",
diff --git a/packages/web/public/icons/logo-128.png b/packages/web/public/icons/logo-128.png
new file mode 100644
index 00000000..71ead90c
--- /dev/null
+++ b/packages/web/public/icons/logo-128.png
Binary files differ
diff --git a/packages/web/public/icons/logo-16.png b/packages/web/public/icons/logo-16.png
new file mode 100644
index 00000000..dd864d44
--- /dev/null
+++ b/packages/web/public/icons/logo-16.png
Binary files differ
diff --git a/packages/web/public/icons/logo-48.png b/packages/web/public/icons/logo-48.png
new file mode 100644
index 00000000..7ba1cd49
--- /dev/null
+++ b/packages/web/public/icons/logo-48.png
Binary files differ
diff --git a/packages/web/public/manifest.json b/packages/web/public/manifest.json
new file mode 100644
index 00000000..b42343f6
--- /dev/null
+++ b/packages/web/public/manifest.json
@@ -0,0 +1,25 @@
+{
+ "name": "Hoarder",
+ "short_name": "Hoarder",
+ "icons": [
+ {
+ "src": "/icons/logo-16.png",
+ "sizes": "16x16",
+ "type": "image/png",
+ "purpose": "any maskable"
+ },
+ {
+ "src": "/icons/logo-48.png",
+ "sizes": "48x48",
+ "type": "image/png"
+ },
+ {
+ "src": "/icons/logo-128.png",
+ "sizes": "128x128",
+ "type": "image/png"
+ }
+ ],
+ "start_url": "/",
+ "display": "standalone",
+ "orientation": "portrait"
+}