Story time Too much time was spent trying to get Next.js to build the app as a PWA. Maybe I've been trying to do this at an unlucky time when something somewhere in the dependency stack leading up to next-pwa is only temporarily broken. At this point enough hours have been spent thorough the project getting this or that and that to play nice with Next.js, and the benefits to this project were at best questionable. When next-pwa didn't deliver a PWA experience with the promised "zero configuration" setup, and even failed to do so with a lot of fiddling around and following several issue discussions in its repo I thought back at all the other nuisances stemming from trying to get Next.js to play nice in the app's context and decided it was time for it to go. Writing this frankenstein of a commit that forces the project from its Next.js structure into more-or-less the structure of a vanilla create-react-app project felt like a breeze compared to any more time spent reading github issues lingering unanswered or bumping into Stack Overflow threads from a time when none of the answers are right any longer. Some top answers in Stack Overflow don't even look like they were ever right. I don't like the big component switch that I wrote to replace the seemingly elegant app routing from Next.js. The new app routing I wrote is a kludge designed to minimize the amount of code fixes I'd need to do when it came to navigation, but I am glad to no longer parse numbers out of URLs, put dynamic() calls in nearly every page, use wrapper Link and Image components so Next.js can do some magic and a few other problems that right now I forget. I also appreciate the smaller bundle. This isn't some content publishing app, full of meaningful URLs to be shared over the net with other users. There's really only the skeleton of the app with a few very simple views to navigate to and then there's the local data generated by the user that the app just hosts locally.
44 lines
1.7 KiB
HTML
44 lines
1.7 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<meta name="theme-color" content="#000000" />
|
|
<meta
|
|
name="description"
|
|
content="Web site created using create-react-app"
|
|
/>
|
|
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
|
|
<!--
|
|
manifest.json provides metadata used when your web app is installed on a
|
|
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
|
|
-->
|
|
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
|
|
<!--
|
|
Notice the use of %PUBLIC_URL% in the tags above.
|
|
It will be replaced with the URL of the `public` folder during the build.
|
|
Only files inside the `public` folder can be referenced from the HTML.
|
|
|
|
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
|
|
work correctly both with client-side routing and a non-root public URL.
|
|
Learn how to configure a non-root public URL by running `npm run build`.
|
|
-->
|
|
<title>React App</title>
|
|
</head>
|
|
<body>
|
|
<noscript>You need to enable JavaScript to run this app.</noscript>
|
|
<div id="root"></div>
|
|
<!--
|
|
This HTML file is a template.
|
|
If you open it directly in the browser, you will see an empty page.
|
|
|
|
You can add webfonts, meta tags, or analytics to this file.
|
|
The build step will place the bundled scripts into the <body> tag.
|
|
|
|
To begin the development, run `npm start` or `yarn start`.
|
|
To create a production bundle, use `npm run build` or `yarn build`.
|
|
-->
|
|
</body>
|
|
</html>
|