Work meiuxmeiux
web

MeiuxMeiux

One house. Software, logistics, and consulting — the site you're already on.

MeiuxMeiux is the company's own home page — and yes, it's in its own portfolio. Single Go binary, SQLite, no framework, no build step, deploys via systemd behind Apache. Twenty-seven routes, full admin panel with leads + email + reviews + AI news discovery, vitrine with live capture pipeline, dark mode, passkey-grade session hardening, and a scrub gate that walks every route at test time to keep brand leaks out. Self-hosted, self-monitored, self-deployed.

Last updateApr 28, 2026 LicenseMIT PrimaryGo
  • Go 1.25
  • SQLite (WAL)
  • html/template
  • Postmark
  • OpenRouter
  • Lucide
  • Playwright
  • Apache
  • systemd
  • Let's Encrypt
MeiuxMeiux — One house. Software, logistics, and consulting — the site you're already on.
MeiuxMeiux media
MeiuxMeiux media

MeiuxMeiux is the site you're already standing on — and it ships in its own portfolio because the way the site is built is a fair sample of how we build everything else. A single Go binary plus SQLite, no framework, no build pipeline, no node_modules. Twenty-seven routes responding, full admin panel, vitrine capture pipeline, AI news discovery, dark mode, rate limiting, session hardening — and a scrub gate that walks every route at test time to keep upstream brand leaks out of the rendered output.

The shape of the site

  • Public face — Home, Services, About, Contact, Careers, Testimonials, Terms, Privacy, News (list + detail), Portfolio (list + per-exhibit detail). Each page is a server-rendered template; no client-side router, no hydration round-trip.
  • Lead form — honeypot + 3/hour rate limit + Postmark notification, lands in the admin inbox the same way an email reply does.
  • Admin panel at /admin/ — Dashboard, Leads, Inbox, Sent, Compose, News CRUD with AI-discovery flow, Reviews CRUD, Trash, Settings, Help. Constant-time credential compare, session cookies HttpOnly + Secure + SameSite=Strict + Path=/admin, 5/15min admin login rate limit.
  • Vitrine pipeline — every exhibit you're browsing was captured by a Playwright + Sharp tool that screenshots the live URL at desktop + mobile, pulls inline media, pulls GitHub stats, security-screens the README, and writes a sidecar JSON the Go side imports into SQLite.
  • AI news discovery — admin-only SSE-streamed flow that fetches Google News RSS, dedupes against the DB, fetches OG metadata, asks an OpenRouter model for title/summary/category/tags, saves as a draft article. Brand-neutral by config.
  • Session persistence — sessions live in the SQLite sessions table and survive systemd restarts; an in-memory cache hydrates at boot.

The discipline

  • Scrub gate — the site was forked from a vertical-specific predecessor and scrubbed of every brand leak; a static-grep + live-route HTML scan enforces zero HARD-tier hits and runs as part of the gate ritual on every commit.
  • File size budgets — Go files stay under 250 lines, CSS under 450; the renderer is split into public / admin / pagedata pieces, each one easy to hold in a head.
  • No middleware chain — auth checks are flat if !h.SessionMgr.Validate(r) calls at the top of each admin handler, on purpose. The flat pattern is load-bearing for readability.
  • Hardened systemd unitNoNewPrivileges + PrivateTmp + ProtectSystem=full, unprivileged user, TLS 1.2+ only, HSTS + X-Frame-Options + Referrer-Policy headers.

How it deploys

Pull, rebuild on the server, restart the systemd unit, curl /health. The whole cycle is one shell script. No CI runner, no container registry, no orchestration. The site you're reading was deployed by the same script that deploys every other binary in the fleet, and the fleet numbers on the home page are pulled from the same Galaxy ledger that watches them all.

Straight from the source

The project's own README.

Rendered in place — every link, image, and code block carried over from the repo. The page below is what a contributor would see opening the project for the first time.

DarkLabel

A white-label lead management platform built with Go. Features a public-facing website with service information and contact form, plus a full admin panel for managing leads and email communications. Fully configuration-driven — customize business name, colors, services, and more via environment variables.

Features

  • Public Website

    • Responsive, mobile-first design
    • Service listings and business information
    • Contact form with validation and honeypot spam protection
    • SEO optimized (meta tags, sitemap, structured data)
    • Configurable color scheme via CSS variables
  • Admin Panel

    • Lead management with status tracking (new, contacted, closed)
    • Email inbox (Postmark inbound webhook)
    • Compose and send emails via Postmark
    • Email forwarding configuration
    • Trash/spam management for leads and emails
    • Session-based authentication with rate limiting
  • White-Label Ready

    • All branding configured via environment variables
    • Dynamic service options (JSON configuration)
    • Customizable color palette (primary, secondary, accent)
    • No hardcoded business names, addresses, or phone numbers

Tech Stack

  • Backend: Go (standard library, no frameworks)
  • Database: SQLite with WAL mode
  • Email: Postmark API
  • Frontend: Vanilla HTML/CSS/JS, Lucide icons
  • Deployment: systemd service behind nginx

Quick Start

# Copy environment config
cp .env.example .env
# Edit .env with your business details

# Build
make build

# Run locally
make run

The app will start on the configured port (default: 8123).

Configuration

Copy .env.example to .env and configure all variables:

Variable Default Description
PORT 8123 Server port
DOMAIN localhost Your domain name
ADMIN_USER admin Admin login username
ADMIN_PASS changeme Admin login password
BUSINESS_NAME My Business Displayed throughout the site
BUSINESS_PHONE (555) 000-0000 Contact phone number
BUSINESS_EMAIL [email protected] Contact email address
BUSINESS_ADDRESS Your City, ST Business location
BUSINESS_TAGLINE Professional services you can trust Hero/meta tagline
BUSINESS_HOURS Mon-Fri: 9am-5pm Displayed on contact page
SERVICES_JSON [{"value":"general","label":"General Inquiry"}...] Contact form service options
COLOR_PRIMARY #1e293b Primary brand color
COLOR_SECONDARY #334155 Secondary brand color
COLOR_ACCENT #3b82f6 Accent/highlight color
POSTMARK_TOKEN (empty) Postmark server API token
POSTMARK_FROM (empty) Postmark sender address
REPLY_SUBJECT_TEMPLATE Re: Your Inquiry - %s Email reply subject (%s = business name)

Services Configuration

The SERVICES_JSON variable accepts a JSON array of service options for the contact form:

[
  {"value": "consulting", "label": "Consulting"},
  {"value": "support", "label": "Technical Support"},
  {"value": "sales", "label": "Sales Inquiry"},
  {"value": "other", "label": "Other"}
]

Project Structure

.
├── cmd/main.go              # Entry point, routing, middleware
├── internal/
│   ├── config/              # Environment configuration
│   ├── database/            # SQLite initialization and migrations
│   ├── handlers/
│   │   ├── admin/           # Admin panel handlers
│   │   └── public.go        # Public page handlers
│   ├── mailer/              # Postmark email client
│   ├── models/              # Data structures
│   ├── ratelimit/           # IP-based rate limiting
│   ├── session/             # Session management
│   ├── templates/           # Template rendering
│   ├── testutil/            # Test helpers
│   └── validation/          # Form validation
├── static/
│   ├── css/                 # Stylesheets
│   └── js/                  # JavaScript
├── templates/               # HTML templates
│   ├── admin/               # Admin panel templates
│   ├── base.html            # Base layout
│   └── *.html               # Public pages
├── data/                    # SQLite database (gitignored)
└── .env.example             # Environment template

Commands

make build      # Build the binary
make run        # Run locally
make restart    # Rebuild and restart systemd service
make logs       # View service logs
make status     # Check service status

Customization

Colors

Override the default slate/blue palette with any hex colors:

COLOR_PRIMARY=#1a1a2e
COLOR_SECONDARY=#16213e
COLOR_ACCENT=#e94560

These are injected as CSS custom properties and cascade throughout the site.

Templates

HTML templates are in the templates/ directory. They use Go's html/template package with template variables for all business data. No hardcoded values need changing — everything flows from the configuration.

License

MIT License. See LICENSE for details.

Gallery

The full set.

Build something like this

Want a tool like this for your shop?

We've shipped this kind of thing before. Twenty-minute intro call, no slides.