Skip to content

7ayLabs/site-7aylabs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

7ayLabs

The official website for 7ayLabs — the organization behind 7aychain.
A Layer 1 blockchain implementing Proof of Presence consensus.
Verifying humans through physical proximity, no biometrics.

Website · Staging · Releases · Contributing

CI Release License PRs


About

This repository contains the source code for 7aylabs.com — the public-facing website for the 7ayLabs DAO. It serves as the primary information hub for 7aychain's Proof of Presence protocol, developer resources, community updates, and ecosystem tools.

Note — This is the website repository, not the blockchain implementation. For the 7aychain protocol, see 7ayLabs/7aychain.

Tech Stack

Layer Technology
Framework Next.js 15 (App Router, standalone output)
UI React 19 + TypeScript 5.9
Styling Tailwind CSS 3.4 + CSS custom properties
Animations Framer Motion 11
Icons Lucide React
Database PostgreSQL via Prisma 6
i18n next-intl — 7 locales (en, es, pt, fr, de, zh, ja)
Package Manager pnpm 9

Infrastructure

Component Purpose
Docker Multi-stage builds, Node 20 Alpine, non-root container
Nginx Reverse proxy, rate limiting, security headers, static caching
GitHub Actions CI pipeline (lint, typecheck, security audit, build)
Jenkins CD pipeline for staging deployments
Cloudflare DNS, tunnel, DDoS protection

Quick Start

# Clone and install
git clone https://github.com/7ayLabs/site-7aylabs.git
cd site-7aylabs
pnpm install

# Set up environment
cp .env.example .env.local

# Run development server
pnpm dev

Open http://localhost:3000 in your browser.

Docker

# Local development with Docker
docker compose -f docker-compose.local.yml up --build

The app runs at http://localhost:8082.

Project Structure

site-7aylabs/
├── app/                    # Next.js App Router
│   ├── [locale]/           # i18n locale routing
│   ├── (public)/           # Public pages (technology, waitlist, etc.)
│   └── api/                # API routes (waitlist, newsletter, contact)
├── components/
│   ├── landing/            # Landing page sections
│   ├── layout/             # Navbar, Footer, providers
│   └── ui/                 # Reusable components (Button, Card, Badge, etc.)
├── lib/
│   ├── api/                # Validation, response helpers
│   ├── constants/          # Routes, animations, config
│   └── db/                 # Prisma client
├── messages/               # i18n translation files (7 locales)
├── prisma/                 # Schema and migrations
├── nginx/                  # Nginx reverse proxy config
├── styles/
│   ├── globals.css         # Global styles
│   └── tokens.css          # ~50 CSS custom properties (theme tokens)
└── public/                 # Static assets, logos, icons

Features

  • Dual Theme — Light and dark modes with OS preference detection and anti-FOUC
  • 7 Languages — Full i18n with locale-aware routing and per-locale SEO metadata
  • Animated UI — Scroll-triggered animations with useReducedMotion fallbacks
  • API Routes — Waitlist, newsletter, and contact endpoints with rate limiting
  • Security — CSP headers, CORS validation, input sanitization, anti-enumeration
  • Accessible — ARIA attributes, keyboard navigation, skip-to-content, semantic HTML
  • Performance — Dynamic imports, static generation, image optimization, edge caching

API Endpoints

All endpoints accept POST requests and are rate-limited to 10 requests/min per IP.

Endpoint Description
/api/waitlist Waitlist signup (email, name?, role?)
/api/newsletter Newsletter subscription (email)
/api/contact Contact form (email, name, message)

Environment Variables

# Required
DATABASE_URL="postgresql://user:password@localhost:5432/7aylabs_dev"

# Optional
NODE_ENV=development
PORT=3000
HOSTNAME=localhost
ALLOWED_ORIGINS=http://localhost:3000

Scripts

Command Description
pnpm dev Start development server
pnpm build Production build (standalone)
pnpm lint ESLint check
pnpm db:generate Generate Prisma client
pnpm db:push Push schema to database
pnpm db:migrate Run Prisma migrations
pnpm db:studio Open Prisma Studio

CI/CD Pipeline

Push to main ──► GitHub Actions (lint, typecheck, audit, build) ──► DockerHub
Push to testing ──► GitHub Actions ──► DockerHub ──► Jenkins auto-deploy ──► VPS
  • CI: Runs on every PR — lint, typecheck, security audit, build
  • CD: Pushes to testing branch auto-deploy to staging via Jenkins

Contributing

We welcome contributions from the community. See CONTRIBUTING.md for:

  • Branch strategy and naming conventions
  • Commit message format (Conventional Commits)
  • Pull request process
  • Code quality requirements

Quick Contribution Guide

  1. Fork the repository
  2. Create a branch from develop (feat/your-feature)
  3. Make changes, ensure pnpm lint and pnpm build pass
  4. Open a PR targeting develop
  5. Wait for CI checks and review

Releases

This project uses semantic versioning. See Releases for the changelog.

Version Date Highlights
v1.0.0 2026-03-09 Initial release — dual theme, i18n, security hardening, CI/CD

License

This project is licensed under the MIT License.


Built by 7ayLabs — Proof of Presence for the real world.