Wynglet

Wynglet

The dynamic companion for your static site: a self-hosted toolkit that brings dynamic capabilities to static websites without depending on paid third-party services.

Static site generators are great at producing fast, secure, cheap-to-host websites. But they have one inherent limitation: they’re static. Features like auto-generated OpenGraph social preview images, forms, QR codes, etc. each require a back-end or a separate paid SaaS subscription: each with its own account, pricing model, and data silo.

Wynglet bundles all of these features into a single containerized open-source binary:

Learn more →

Form Submissions

Learn more →

QR Codes

Learn more →

Rating Widget

Learn more →

GitHub Repository Stats

Learn more →

Getting Started

For detailed installation and deployment instructions, see Installation & Deployment Guide.

Supported deployment methods:

One instance serves multiple sites. A single Wynglet deployment can power all your static sites simultaneously. Every feature is gated by a domain allowlist: only explicitly authorized domains can embed or use your instance, preventing unauthorized use.

Self-hosted. Your data stays on your own infrastructure. You can host Wynglet on a cheap VPS from any provider (here’s $200 in credits with a DigitalOcean referral code). No vendor lock-in, no per-request billing, no privacy trade-offs.

Open source. Apache 2.0 licensed, free forever.

Quick Example

The simplest way to get started is with the default link preview template. Just paste this meta tag into your page:

<meta property="og:image" content="https://wynglet.your-server.com/link-previews/v1?url=your-site.com/some/page">

Then test it by sharing your page on social media. For more details, see OpenGraph Link Previews.

Tech Stack

Wynglet is primarily Golang + PostgreSQL + HTMX + Templ (+ some custom TypeScript compiled to JavaScript).

Why Golang + PostgreSQL

Go’s standard library offers excellent APIs for Web services, and is extremely lean on resources at runtime.

Templ, Tailwind, & HTMX

sqlc and Goose

If this interests you, I’d love for you to contribute to Wynglet!

AI Usage

As a professional software engineer for the last 25+ years (and 17+ years at Google), I value immensely the craft & joy of software engineering. I sweat the big parts & the small parts—the high-level architecture as well as each and every line of code—to make sure it’s clean, bug-free, and maintainable.

That said, as all effective engineers should, I use the best tools available for the job. In the 1990s, that was Turbo C++; in the 2000s, Visual Studio; in 2010s, JetBrains; in 2025, that’s LLMs. I use AI unapologetically to ship features faster, locate tricky bugs, and ensure a high standard of security across my projects.

I do not let LLMs commit any code on my behalf; I review every line of code before it is merged. If a function was LLM-generated, I typically fix up things by hand before committing anything.

And irrespective of how that code got authored—either in a text editor, IDE, via LLMs, or by an external human contributor—you should feel free to hold me personally responsible for everything in this project.

Getting Help

License

Copyright 2025 onwards, Chimbori.