Skip to content

StackThrower/Warehouse-Frontend

Repository files navigation

Upwely

Navigate Your Warehouse Like Never Before

Marketing site and product landing page for Upwely — a real-time indoor navigation system that guides warehouse workers to the exact shelf, bin, and item, eliminating search time and reducing picking errors by up to 94%.

Next.js React TypeScript Tailwind CSS Docker


Overview

This repository contains the public-facing website for Upwely. It includes the product landing page, feature showcase, pricing, an integrated blog, and a set of legal/marketing pages — all built on a modern, type-safe React stack and designed to score well on Core Web Vitals and SEO.

Highlights

  • Modern stack — Next.js 16 App Router, React 19, TypeScript 5, Tailwind CSS 4
  • Smooth motion — Framer Motion for interactive sections and micro-interactions
  • Content-driven blog — Markdown + frontmatter via gray-matter, rendered with react-markdown and GFM
  • SEO-first — JSON-LD structured data, dynamic sitemap.ts and robots.ts, OpenGraph and Twitter cards
  • Production-ready — Multi-stage Dockerfile with a non-root runtime
  • Cloud-agnostic infra — Terraform stacks for GCP, AWS, and Azure
  • Continuous delivery — GitHub Actions workflow for GCP deployments

Tech Stack

Layer Technology
Framework Next.js 16 (App Router)
UI React 19, Tailwind CSS 4
Language TypeScript 5
Animation Framer Motion
Icons Lucide
Content gray-matter, react-markdown, remark-gfm
Tooling ESLint 9, PNPM 9
Container Node 20 Alpine, multi-stage Docker build
Infra Terraform (GCP / AWS / Azure)
CI/CD GitHub Actions

Project Structure

.
├── src/
│   ├── app/                # Next.js App Router pages & route handlers
│   │   ├── about/
│   │   ├── blog/
│   │   ├── changelog/
│   │   ├── contact/
│   │   ├── privacy-policy/
│   │   ├── terms-of-service/
│   │   ├── layout.tsx
│   │   ├── page.tsx
│   │   ├── robots.ts
│   │   └── sitemap.ts
│   ├── components/         # Hero, Features, Pricing, Footer, SEO/JSON-LD, ...
│   ├── content/            # Markdown content (blog posts)
│   ├── lib/                # Shared utilities
│   └── middleware.ts
├── public/                 # Static assets (icons, screenshots, og images)
├── terraform/              # Infrastructure-as-code for GCP, AWS, Azure
├── .github/workflows/      # CI/CD pipelines
├── Dockerfile
├── next.config.ts
└── package.json

Getting Started

Prerequisites

  • Node.js 20 or later
  • PNPM 9 (recommended) — npm install -g pnpm@9.15.0

Installation

git clone <repository-url>
cd Warehouse-Frontend
pnpm install

Development

pnpm dev

Open http://localhost:3000 to view the site. Edits to files under src/ hot-reload automatically.

Production Build

pnpm build
pnpm start

Lint

pnpm lint

Environment

Create a .env.local file in the project root for any local overrides:

NEXT_PUBLIC_SITE_URL=https://upwely.com

NEXT_PUBLIC_SITE_URL is used to generate canonical URLs, sitemap entries, and OpenGraph metadata. It defaults to https://upwely.com when unset.

Docker

Build and run the production image locally:

docker build -t upwely-web .
docker run --rm -p 3000:3000 upwely-web

The image uses a multi-stage build, runs as a non-root user, and ships only the Next.js standalone output for a small, secure runtime.

Deployment

GitHub Actions

The workflow at .github/workflows/deploy-gcp.yml builds and deploys the container to Google Cloud on push. See terraform/README.md for the matching infrastructure setup.

Terraform

Reusable infrastructure modules are provided for three clouds:

terraform/
├── aws/
├── azure/
└── gcp/

Pick the directory matching your target cloud, configure the required variables, then run terraform init && terraform apply.

Content & Blog

Blog posts live in src/content/blog as Markdown files with YAML frontmatter. GitHub-flavored Markdown is supported via remark-gfm, and posts are rendered through react-markdown. Adding a new post is as simple as dropping a new .md file into the directory — it will appear in the sitemap and listing automatically.

SEO

The site ships with first-class SEO out of the box:

  • Per-page metadata via Next.js Metadata API
  • Structured data (Organization, WebSite, SoftwareApplication) as JSON-LD
  • Dynamic sitemap.xml and robots.txt generated at build time
  • OpenGraph and Twitter Card images for rich social previews

Contributing

  1. Create a feature branch off master
  2. Make your changes and run pnpm lint
  3. Open a pull request describing the change

License

Proprietary — © Upwely. All rights reserved.


Built with care by the Upwely team.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors