Feedback portal1.2.7

LastHelp

A self-hosted feedback portal that speaks to your forge — bugs and ideas from anybody, without an account, turned into issues on GitHub, GitLab, Gitea or Forgejo.

LastHelp: the team's reports screen on a laptop and a public front page on a phone

Run it

One command, with Docker or on Linux. Releases are signed, and the install guide is in the documentation.

Docker$docker pull git.codigosh.com/codigosh/lasthelp:latest
Linux$curl -fsSL https://git.codigosh.com/CodigoSH/LastHelp/raw/branch/main/install.sh | sudo sh

Screenshots

Click one to enlarge

The reports screen: what is waiting in every repository, with the report open beside the list
The reports screen: what is waiting in every repository, with the report open beside the list
A repository's public board, with open and closed reports, filters and votes
A repository's public board, with open and closed reports, filters and votes
The panel overview: the last thirty days, the most wanted ideas and the work per repository
The panel overview: the last thirty days, the most wanted ideas and the work per repository
The public roadmap, built from the state of each report
The public roadmap, built from the state of each report

Features

14 in all

01

Reporting without an account

Anybody can send a bug or an idea from one short form. What they get back is a secret link to their own report — the only way back to it, and the reason no sign-up is needed at all.

02

Bugs and ideas, two journeys

A bug is asked which version and how to see it happen, and is not voted: agreement does not make something crash harder. An idea is one sentence, gathers votes and ranks by them.

03

Similar reports while typing

As somebody writes a title, the reports that already say the same thing appear under it, so the tenth person with the same crash adds a vote or a comment instead of a duplicate.

04

A roadmap nobody maintains

Three columns built from the state of each report, so the public roadmap cannot go out of date — when an issue closes on your forge, the report moves on its own.

05

One screen for the team

Every repository you work on in one list, with the report beside it: publish, reject or spam with a key each, edit its words, change its status, reply, edit or delete comments, merge a duplicate, or open an issue. The same screen is the archive of every report ever sent.

06

A bridge to your forge

GitHub, GitLab, Gitea and Forgejo, including instances on your own network. A triaged report becomes an issue or is attached to one that already exists, and follows it when it closes or reopens.

All 14 features
07

Nothing is published without a person

Every report and every visitor's comment waits for the team. Your own replies do not — you are the person.

08

Anti-abuse without a third party

A signed single-use form token, a timing window, a honeypot, rate limits by address and network block, duplicate and link heuristics, your own word list, and a breaker that closes a board for a while. No captcha service, no reputation API, no model.

09

A front page you compose

Bands of modules — the repositories, the most voted ideas, what was resolved, statistics, links, and your own words and images — arranged on a grid in the page itself, under your name, logo and colour.

10

Two levels of trust

A lead runs an organisation, its forge token and its repositories; a collaborator triages the repositories they are given and never sees the token.

11

Notifications both ways

The team hears about new reports through ntfy, Gotify, a webhook or mail, per repository. Reporters follow an Atom feed that needs no account, or leave an email that is deleted when their report closes.

12

Twenty languages, right-to-left included

Hand-translated into twenty languages, with full right-to-left layout for Arabic, Persian and Urdu, applied on the server for the first paint.

13

Signed, verified updates

Releases are signed with Ed25519. The updater in the panel checks the signature and the checksum, makes the new binary prove it runs, refuses one older than the database and takes a backup before it swaps anything.

14

One binary, one file

A static Go binary or a Docker image for amd64 and arm64, and one SQLite file beside it. No database server, no runtime, no telemetry, and a browser wizard instead of a configuration file.

Use cases

What people run it for

A front door for a self-hosted forge

Registration on your Forgejo or Gitea is closed, as it should be — and that closed the only way outsiders had to tell you something broke. LastHelp is the door you open instead, without giving strangers accounts on your forge.

An open-source project with more users than contributors

The people who use your software will never open an issue tracker. Give them one form, keep the tracker for work you have accepted, and attach ten reports of the same crash to the one issue that already exists.

Ideas ranked by the people who asked

Collect feature requests with votes, answer them in public, and let the roadmap show what is planned and shipped without anybody maintaining it by hand.

A small team's support inbox

Several repositories, a couple of people triaging, one list of what arrived. Collaborators work the repositories they are given; the forge token stays with whoever runs the organisation.

Feedback that stays on your server

No third-party widget, no hosted board, no analytics. What people write reaches one database on your machine and goes nowhere else.

A self-hosted alternative to Canny, UserVoice and Fider

Hosted feedback boards such as Canny or UserVoice keep your users' words on somebody else's servers and charge per board or per seat. Open-source boards such as Fider can run on your own server. LastHelp is self-hosted and free too, and it is built around the forge: a triaged report becomes a real issue on GitHub, GitLab, Gitea or Forgejo, follows that issue when it closes, and keeps the public roadmap in step with it. It ships as one binary with one SQLite file, so trying it costs a single command.

Frequently asked questions

Is LastHelp free and open source?

Yes. LastHelp is free and open source under the Apache License 2.0. You can read, run, fork and self-host it; the licence reserves only the names and logos. There is no paid tier.

Do people need an account to report something?

No. Anybody can send a bug or an idea from the public form. They get a secret link back to their own report, which is how they follow it without signing up.

Which forges does it work with?

GitHub (including Enterprise Server), GitLab (hosted or self-managed), Gitea and Forgejo, including instances on your own network with self-signed certificates. It also runs without any forge — everything except creating issues works.

What happens when an issue is closed on my forge?

The report follows it. A forge webhook tells LastHelp the issue closed or reopened, the report changes state, and the public roadmap moves with it.

How does it keep spam out?

Nothing is published until a person approves it. Before that, a signed single-use form token, a timing window, a honeypot, rate limits by address and network block, duplicate and link checks, your own word list and a per-board breaker refuse most automated submissions — all without calling a third-party service.

How do I install it?

Run the one-line installer on Linux (amd64 or arm64), which verifies the release signature and sets up a hardened systemd service, or use the Docker image. The first run is a three-step wizard in the browser; there is no configuration file to write.

How much does it need to run?

Very little: one static Go binary with SQLite compiled in, no CGO and no runtime dependencies. A backup is a copy of one file, or a button in the panel.

Does LastHelp send any data anywhere?

No. There is no telemetry, no analytics and no AI. It talks only to the forge and the notification channels you configure, and it can be told to make no outbound connection at all.

Can a team work on it together?

Yes. The administrator creates accounts. A lead runs an organisation, its forge connection and its repositories; a collaborator triages the repositories they are given and never sees the forge token.

How do updates work?

An administrator can update from the panel: LastHelp checks the Ed25519 signature and the checksum, makes the new binary prove it runs, refuses one older than the database, takes a backup and only then swaps, showing each step. Running the installer again or pulling a new image works too.

What languages is it available in?

Twenty, all hand-translated: Arabic, Bengali, Chinese, Dutch, English, Farsi, French, German, Greek, Hindi, Indonesian, Italian, Japanese, Korean, Polish, Portuguese, Russian, Spanish, Turkish and Urdu — with full right-to-left layout for Arabic, Farsi and Urdu.

LastHelp release history

Try LastHelp

Free, open source and yours to run. No account, nothing reporting back.