A free, open source, self-hosted customer feedback tool 🦊
  • TypeScript 48.4%
  • Ruby 42%
  • HTML 5.2%
  • SCSS 3.5%
  • Dockerfile 0.4%
  • Other 0.5%
Find a file
2026-01-09 18:46:45 +01:00
.github/workflows Delete FUNDING.yml (#462) 2025-03-07 16:33:36 +01:00
app Update README and remove old links (#481) 2025-10-31 15:20:05 +01:00
bin Switch from webpacker to (css|js)bundling-rails (#227) 2023-05-19 17:47:01 +02:00
config Add webhooks (#447) 2024-12-20 14:06:48 +01:00
db Add webhooks (#447) 2024-12-20 14:06:48 +01:00
images Update README with references to paid plan (#355) 2024-05-24 18:11:03 +02:00
lib/tasks Fix Stripe subscription update webhook and tenant notification logic (#432) 2024-11-08 17:02:40 +01:00
log Setup Rails project and dockerize 2019-08-18 14:51:37 +02:00
public Fix public html pages (#312) 2024-03-15 16:11:53 +01:00
script Add system specs for site settings (#209) 2023-04-12 18:35:39 +02:00
spec Add webhooks (#447) 2024-12-20 14:06:48 +01:00
tmp Setup Rails project and dockerize 2019-08-18 14:51:37 +02:00
.browserslistrc Setup Rails project and dockerize 2019-08-18 14:51:37 +02:00
.dockerignore Add GitHub Actions (#211) 2023-04-16 15:53:05 +02:00
.gitignore Add API (#427) 2024-11-08 16:40:53 +01:00
.rspec Install rspec and factory_bot 2019-08-18 15:03:33 +02:00
.ruby-version Bump ruby to 3.0.6 (#218) 2023-05-09 09:32:18 +02:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2021-01-30 11:40:05 +01:00
config.ru Setup Rails project and dockerize 2019-08-18 14:51:37 +02:00
CONTRIBUTING.md Update contributing guidelines docker commands (#406) 2024-09-16 18:58:10 +02:00
crowdin.yml Revert crowdin config (#341) 2024-05-13 16:29:58 +02:00
docker-compose-prod.yml Remove deprecated docker compose version key (#372) 2024-06-30 12:23:51 +02:00
docker-compose.override.yml Remove deprecated docker compose version key (#372) 2024-06-30 12:23:51 +02:00
docker-compose.yml Extract common env vars in docker-compose.yml (#379) 2024-07-09 17:30:37 +02:00
docker-entrypoint-dev.sh Add API (#427) 2024-11-08 16:40:53 +01:00
docker-entrypoint-prod.sh Improve Docker installation (#152) 2022-09-15 17:15:12 +02:00
docker-entrypoint.sh Add API (#427) 2024-11-08 16:40:53 +01:00
Dockerfile Add API (#427) 2024-11-08 16:40:53 +01:00
Gemfile Add webhooks (#447) 2024-12-20 14:06:48 +01:00
Gemfile.lock Bump rails-html-sanitizer from 1.6.0 to 1.6.1 (#448) 2025-01-03 12:14:59 +01:00
LICENSE Update LICENSE (#286) 2024-02-18 15:06:12 +01:00
package.json Add webhooks (#447) 2024-12-20 14:06:48 +01:00
postcss.config.js Setup Rails project and dockerize 2019-08-18 14:51:37 +02:00
Procfile.dev Switch from webpacker to (css|js)bundling-rails (#227) 2023-05-19 17:47:01 +02:00
Rakefile Setup Rails project and dockerize 2019-08-18 14:51:37 +02:00
README.md Update README to say goodbye (#488) 2026-01-09 18:46:45 +01:00
tsconfig.json Add markdown support (#115) 2022-06-06 20:20:03 +02:00
yarn.lock Add webhooks (#447) 2024-12-20 14:06:48 +01:00

Astuto - An open source customer feedback tool 🦊 | Product Hunt Embed

👋🏻 Astuto is not maintained anymore! See this issue. Thanks everyone for the support :)

Astuto is an open source customer feedback tool. It helps you collect, manage and prioritize feedback from your customers, so you can build a better product.

Features

  • Roadmap: show users what you're working on
  • Simple Sign In: let users log in with email or any OAuth2 provider
  • Webhooks: integrate with your existing tools (e.g. Jira, Trello, Slack)
  • API: programmatically manage your feedback space with our REST API
  • Moderation Queue: decide whether to show new feedback immediately or request approval
  • Anonymous Feedback: enable unregistered users to publish feedback
  • ... and more: invitation system, brand customization, recap emails for administrators, private site settings, and more!

Documentation

Documentation website is not online anymore. You can read Astuto's documentation from the GitHub repository.

Get started

  1. Ensure you have Docker and Docker Compose installed
  2. Create an empty folder
  3. Inside that folder, create a docker-compose.yml file with the following content:
services:
  db:
    image: postgres:14.5
    environment: &db-env
      POSTGRES_USER: yourpostgresusername
      POSTGRES_PASSWORD: yourpostgrespassword
    volumes:
      - dbdata:/var/lib/postgresql/data
  web:
    image: riggraz/astuto:latest
    environment:
      <<: *db-env
      BASE_URL: http://yourwebsite.com
      SECRET_KEY_BASE: yoursecretkeybase
    ports:
      - "3000:3000"
    depends_on:
      - db
    
volumes:
  dbdata:
  1. Edit the environment variables to fit your needs
  2. Run docker compose pull && docker compose up
  3. You should now have a running instance of Astuto on port 3000. A default user account has been created with credentials email: admin@example.com, password: password.

Contributing

There are many ways to contribute to Astuto, not just coding. Proposing features, reporting issues, translating to a new language or improving documentation are a few examples! Please read our contributing guidelines to learn more.

Credits

Astuto logo and all image assets are credited here.

A huge thank you to code contributors

and translation contributors!