SPB Git forge

spb/hilmacorp

Public
1commits 1branches 0releases
29.2 MBsize
maindefault branch
19 days agolast push
TypeScript 93.3% JavaScript 4.4% CSS 2.3%
ZIP tar.gz
NameLast commitUpdated
app chore(retrait cluster): synchro copie du nœud M3U96a + README « URL... 19 days ago
components chore(retrait cluster): synchro copie du nœud M3U96a + README « URL... 19 days ago
lib chore(retrait cluster): synchro copie du nœud M3U96a + README « URL... 19 days ago
messages chore(retrait cluster): synchro copie du nœud M3U96a + README « URL... 19 days ago
public chore(retrait cluster): synchro copie du nœud M3U96a + README « URL... 19 days ago
tests chore(retrait cluster): synchro copie du nœud M3U96a + README « URL... 19 days ago
.gitignore chore(retrait cluster): synchro copie du nœud M3U96a + README « URL... 19 days ago
CLAUDE.md chore(retrait cluster): synchro copie du nœud M3U96a + README « URL... 19 days ago
middleware.ts chore(retrait cluster): synchro copie du nœud M3U96a + README « URL... 19 days ago
next.config.mjs chore(retrait cluster): synchro copie du nœud M3U96a + README « URL... 19 days ago
package-lock.json chore(retrait cluster): synchro copie du nœud M3U96a + README « URL... 19 days ago
package.json chore(retrait cluster): synchro copie du nœud M3U96a + README « URL... 19 days ago
postcss.config.mjs chore(retrait cluster): synchro copie du nœud M3U96a + README « URL... 19 days ago
README.md chore(retrait cluster): synchro copie du nœud M3U96a + README « URL... 19 days ago
tsconfig.json chore(retrait cluster): synchro copie du nœud M3U96a + README « URL... 19 days ago
README.md source

⚠️ URL live hors fonction pour le moment. L'application a été retirée du cluster MacLustr le 2026-09-04 (processus arrêtés, copie du nœud supprimée). Ce dépôt spbgit est désormais la seule source de vérité du projet. Ancienne URL : https://www.hilmacorp.ai

# Hilmacorp.ai — Web Platform

Official bilingual (FR/EN) corporate website of Hilmacorp.ai, an artificial-intelligence company founded by Simon-Pierre Boucher and Massamba Mbaye.

# Stack

  • Next.js 15 (App Router) + TypeScript (strict)
  • Tailwind CSS v4
  • Custom lightweight i18n (/fr and /en locale segments, dictionaries in messages/)
  • Contact form API route with server-side validation (/api/contact)
  • Full SEO: per-page metadata, Open Graph, sitemap.xml, robots.txt

# Project layout

text
app/
  [locale]/            Pages (home, about, founders, services, security, industries, contact)
  api/contact/         Contact form API route
  robots.ts sitemap.ts SEO metadata routes
components/            Reusable React components (PascalCase, one component per file)
lib/                   i18n loader + contact validation (pure, tested)
messages/              fr.json / en.json content dictionaries
tests/                 node:test unit tests for the API validation

# Installation

bash
npm install
cp .env.example .env   # then fill in values as needed

# Development

bash
npm run dev            # http://localhost:3000 → redirects to /fr or /en

# Tests

bash
npm test               # node --test (requires Node ≥ 22 for native TS type stripping)

# Production build & start

bash
npm run build
npm run start -- -p 8070

# Environment variables

See .env.example. No secrets are committed. If RESEND_API_KEY is unset, contact messages are validated and appended to data/contact-messages.jsonl on the server.

# Deployment

The site is portable: Vercel, any Node host, or private infrastructure. Current production deployment: MacLustr node M3U96a, PM2 (hilmacorp + hilmacorp-ngrok), exposed at https://www.hilmacorp.ai via ngrok on port 8070.