();
+
+ const {name} = data.layout.shop;
+
+ return (
+
+
+
+
+
+
+ Hello, {name}
+ This is a custom storefront powered by Hydrogen
+
+
+
+
+
+ );
+}
+
+const LAYOUT_QUERY = `#graphql
+ query layout {
+ shop {
+ name
+ description
+ }
+ }
+`;
diff --git a/app/src/styles/app.css b/app/src/styles/app.css
new file mode 100644
index 0000000..0296f79
--- /dev/null
+++ b/app/src/styles/app.css
@@ -0,0 +1,31 @@
+body {
+ margin: 0;
+ background: #FFFFFF;
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
+ Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
+ padding: 20px;
+}
+
+h1,
+h2,
+p {
+ margin: 0;
+ padding: 0;
+}
+
+h1 {
+ font-size: 3rem;
+ font-weight: 700;
+ line-height: 1.4;
+}
+
+h2 {
+ font-size: 1.2rem;
+ font-weight: 700;
+ line-height: 1.4;
+}
+
+p {
+ font-size: 1rem;
+ line-height: 1.4;
+}
diff --git a/app/tsconfig.json b/app/tsconfig.json
new file mode 100644
index 0000000..41447d5
--- /dev/null
+++ b/app/tsconfig.json
@@ -0,0 +1,25 @@
+{
+ "include": ["./**/*.d.ts", "./**/*.ts", "./**/*.tsx"],
+ "compilerOptions": {
+ "lib": ["DOM", "DOM.Iterable", "ES2022"],
+ "isolatedModules": true,
+ "esModuleInterop": true,
+ "jsx": "react-jsx",
+ "moduleResolution": "node",
+ "resolveJsonModule": true,
+ "target": "ES2022",
+ "strict": true,
+ "allowJs": true,
+ "forceConsistentCasingInFileNames": true,
+ "skipLibCheck": true,
+ "baseUrl": ".",
+ "types": ["@shopify/oxygen-workers-types"],
+ "paths": {
+ "~/*": ["src/*"]
+ },
+
+ // Remix takes care of building everything in `./app` with `remix build`.
+ // Wrangler takes care of building everything in `./worker` with `wrangler start` / `wrangler publish`.
+ "noEmit": true
+ }
+}
diff --git a/ecosystem.config.js b/ecosystem.config.js
new file mode 100644
index 0000000..15a110f
--- /dev/null
+++ b/ecosystem.config.js
@@ -0,0 +1,9 @@
+module.exports = {
+ apps: [
+ {
+ script: 'npm run app',
+ name: "thingtime-app",
+ namespace: "thingtime"
+ }
+ ],
+};