Overview
Discover what makes Foodsoft powerful
Foodsoft is an open‑source, web‑based platform designed to orchestrate the day‑to‑day operations of community‑supported agriculture cooperatives. From a developer’s lens, it is a full‑stack Ruby on Rails application that exposes a rich domain model for products, orders, accounting, and volunteer scheduling. The core logic is encapsulated in ActiveRecord models with extensive associations, while the presentation layer leverages Rails’ convention‑over‑configuration philosophy to deliver a responsive interface without custom front‑end frameworks. The codebase is continuously tested with RSpec and coverage tools (Coveralls, Code Climate) that enforce a high quality standard.
Language & Framework
Database
Background Jobs
API Layer
Overview
Foodsoft is an open‑source, web‑based platform designed to orchestrate the day‑to‑day operations of community‑supported agriculture cooperatives. From a developer’s lens, it is a full‑stack Ruby on Rails application that exposes a rich domain model for products, orders, accounting, and volunteer scheduling. The core logic is encapsulated in ActiveRecord models with extensive associations, while the presentation layer leverages Rails’ convention‑over‑configuration philosophy to deliver a responsive interface without custom front‑end frameworks. The codebase is continuously tested with RSpec and coverage tools (Coveralls, Code Climate) that enforce a high quality standard.
Architecture
- Language & Framework: Ruby 3.x + Rails 7 (latest stable release)
- Database: PostgreSQL is the default and only supported relational database; migrations are versioned via Rails’ ActiveRecord.
- Background Jobs: Sidekiq handles asynchronous tasks such as email notifications, data imports, and scheduled pickups.
- API Layer: A RESTful JSON API is available for external integrations, built on Rails controllers with
respond_to :json. Webhooks can be configured to push events (e.g., new order, payment status change). - Containerization: Official Docker images are maintained on Docker Hub (
foodcoops/foodsoft) and can be run withdocker-composefor quick local or staging setups. The image bundles the Rails app, PostgreSQL, and Sidekiq workers, simplifying deployment on any OCI‑compatible platform.
Core Capabilities
- Product Catalog & Ordering: CRUD APIs for products, categories, suppliers; order creation with inventory checks and price calculations.
- Accounting & Finance: Double‑entry bookkeeping, invoicing, payment tracking; export to CSV/Excel for external accounting tools.
- Volunteer Scheduling: Calendar‑based job assignments with role‑based permissions; integration points for custom scheduling logic.
- Extensibility: The application exposes a plugin hook system (
app/concerns/plugins) that allows developers to inject new controllers, models, or views without modifying core code. Custom modules can register routes, migrations, and assets via theFoodsoft::Engine. - Security: Uses Devise for authentication, Pundit for authorization; all data is served over HTTPS in production by default. The AGPL license ensures that any modifications remain open.
Deployment & Infrastructure
Foodsoft is engineered for self‑hosting on modest infrastructure: a single VM or cloud instance (e.g., DigitalOcean, AWS EC2) with 2 CPU cores and 4 GB RAM suffices for a mid‑size coop. The Docker image abstracts away system dependencies, making Kubernetes or Docker Swarm deployments trivial. For larger cooperatives, the architecture scales horizontally by separating services: a dedicated PostgreSQL cluster, Sidekiq workers behind Redis, and a load‑balanced Rails tier. Continuous integration pipelines on GitHub Actions automatically build images, run tests, and push to Docker Hub.
Integration & Extensibility
Developers can extend Foodsoft in several ways:
- API Consumption: Consume the native JSON API or expose your own endpoints via Rails controllers.
- Webhooks: Subscribe to events such as
order_createdorpayment_completed. - Custom Plugins: Fork the repository, add a plugin module, and register it in
config/application.rb. - Third‑Party Services: Integrate with payment gateways (Stripe, PayPal) or shipping providers by adding background jobs that consume external APIs.
- UI Customization: Override partials or add new views using Rails’ view inheritance, enabling a tailored user experience without touching core assets.
Developer Experience
Foodsoft’s documentation is split across the README, a dedicated doc/ folder (e.g., SETUP_DEVELOPMENT.md, SETUP_PRODUCTION.md), and an interactive wiki. The codebase follows Rails conventions, which reduces the learning curve for seasoned Rubyists. Active support for unit and integration tests is built in, with a generous test suite that covers most business logic. Community engagement occurs through GitHub issues, a monthly call on the forum, and a Slack‑style discussion channel. The AGPL license guarantees that any improvements you ship back to the community remain open, fostering a collaborative ecosystem.
Use Cases
- Small Coop: A handful of members managing weekly orders can deploy Foodsoft on a single VPS, leveraging the Docker image for zero‑configuration setup.
- Mid‑size Coop: With a dedicated PostgreSQL cluster and Sidekiq workers, the platform scales to handle dozens of orders per day and integrates with external accounting software.
- Enterprise‑grade Coop: Deploy Foodsoft on Kubernetes, split services across nodes, and use custom plugins to integrate with ERP systems or supply‑chain analytics dashboards.
Advantages
- Full Control: Self‑hosting eliminates reliance on third‑party SaaS, giving developers full access to data and the ability to audit code.
- Performance: Rails’ efficient ORM layer, combined with PostgreSQL’s robust query planner, delivers responsive order processing even under load.
- Extensibility: The plugin architecture and well‑defined API surface allow rapid feature addition without core code churn.
- Licensing: AGPL ensures that any derivative works remain open, aligning with the cooperative ethos of shared resources.
- Community: Regular roadmap updates and active community calls provide clear direction and support for contributors.
In summary,
Open SourceReady to get started?
Join the community and start self-hosting Foodsoft today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Aleph
Self-hosted other
ChannelTube
Automated YouTube channel downloader and organizer
DebOps
Automate your Debian/Ubuntu data center with Ansible roles
Shelf
Open‑source asset management for teams and institutions
sish
Self-hosted SSH tunnel for web services
Indico
Web‑based event and conference management platform