Manyfold
About this project
Manyfold is an open source, self-hosted web application for managing a collection of 3d models, particularly focused on 3d printing.
Visit manyfold.app for more details, installation instructions, and user and administration guides! Or, to have a go straight away, try our demo at try.manyfold.app.
Help and Support
There are a few routes to get help:
- GitHub issues is the best place to report bugs.
- Live chat to the "team" on Matrix (an open Discord/Slack-like chat system).
- Get in touch with our social media presence in the Fediverse (Mastodon, etc).
And, if you want to contribute financially to development efforts...
Developer Documentation
Manyfold is open source software, and we encourage contributions! If you want to get involved, follow the guidance below, which explains how to get up and running. Then take a look at our good first issue tag for tasks that might suit newcomers to the codebase, or take a look at our development roadmap.
Application architecture
The application is built in Ruby on Rails, and tries to follow the best practices of that framework wherever possible. If you're not familiar with Rails, their Getting Started guide is a good first introduction.
In general, Manyfold is a server-side app that uses plain old HTTP requests. We don't have any code using XHR, Websockets, or other more interactive comms yet (though could do in future).
The application consists of the application server itself, plus a background job runner using Sidekiq for asynchronous tasks.
There are a few other major components that we build with:
- Bootstrap 5 provides the frontend CSS / JS
- THREE.js (via TypeScript) is used for the client-side 3D rendering
- Mittsu, a Ruby port of THREE.js, is used for server-side 3D code
- PostgreSQL is the production database, though sqlite3 is used in dev
Running locally
To run the app yourself, you'll need the following installed:
- Ruby 3.4
- Bundler 2.6+
- Node.js 22.15.1 (and run
corepack enable
) - Yarn 3.8+
- Foreman or [anoth