A modern affiliate wellness technology platform with dynamic product loading from JSON.
remedy-tech-zone/
├── index.html # Single-page app entry point
├── server.js # Express.js server
├── package.json # Dependencies
├── Dockerfile # Docker containerization
│
├── css/
│ └── main.css # All styles (merged from original files)
│
├── js/
│ ├── main.js # Router & page navigation
│ └── products.js # Product loading & rendering from JSON
│
├── data/
│ └── products.json # Complete product catalog + categories
│
└── README.md # This file
npm install
npm start
# Visit http://localhost:3000
docker build -t remedy-tech .
docker run -p 3000:3000 remedy-tech
# Visit http://localhost:3000
1. Main App Flow (js/main.js)
data-page) for navigationAppRouter class2. Product System (js/products.js)
data/products.json on page loadProductManager class handles:
3. Styling (css/main.css)
Edit data/products.json and add to the products array:
{
"id": 21,
"title": "New Product",
"category": "wellness",
"price": 99,
"condition": "New",
"description": "Product description",
"link": "https://affiliate-link.com"
}
Edit data/products.json and add to the categories array:
{
"id": "newcat",
"name": "New Category",
"icon": "🎯",
"color": "from-blue-500 to-blue-700"
}
Edit css/main.css and modify CSS variables at the top:
:root {
--gold-500: #D4AF37; /* Change primary gold */
--stone-200: #e7e5e4; /* Change text color */
}
(Detailed Zapier setup guide coming)
Dockerfile Breakdown:
FROM node:18-alpine → Start with lightweight Node.js imageWORKDIR /app → Set container working directoryCOPY → Move files into containerRUN npm install → Install dependenciesEXPOSE 3000 → Declare portCMD → Run server on startupBuild & Run:
docker build -t remedy-tech .
docker run -p 3000:3000 remedy-tech
css/main.css:root section → CSS Variablesbody → Main background styling.product-card → Grid layout exampleKey Concepts:
js/main.jsAppRouter classnavigate() method → Page switching logicjs/products.jsProductManager classasync loadProducts() → Fetching JSONrenderProducts() → DOM manipulationrenderFilters() → Creating buttons dynamicallyKey Concepts:
Products currently link to Amazon searches. To add affiliate tracking:
https://amazon.com/s?k=keyword&tag=YOUR-IDFor questions on CSS/JS/Docker, refer to the learning sections above.
Built with ❤️ for biohacking enthusiasts