Sector(s)
GrantStation is a subscription platform that helps nonprofits and researchers find funding and build grant-seeking skills. It combines a curated grants database with training and expert tools. Services include data migration, custom development, search, and integrations.
DevBranch’s Tasks
Ingest IRS Form 990/990-PF reports from irs.gov at scale, transform them into Drupal entities, and make them searchable. Redesign the experience for finding funders and grants. Add paid online education with seamless provisioning and payments.
What We Built
1. Data ingestion at scale
IRS publishes large XML files; some single files exceed 150 GB and are not feasible for PHP to process directly. We built a Golang streaming/aggregation script that extracts only the required fields and produces import-ready datasets. Over 10 GB of XML was migrated.
2. Data model and performance
A bespoke Drupal 10 module ingests the processed data as entities for grants, funders, and annual reports, with relationships designed for scale. Because Drupal cannot practically load ~400,000 references in a single field, we inverted links so annual reports store back-references to grants. The dataset spans millions of entities and remains queryable.
3. Search
All entities are indexed in Apache Solr through the Search API. Users filter by funder, geography, amounts, and more, with fast faceting across very large result sets.
4. E-learning and payments
We integrated LearnWorlds for course delivery and Stripe for purchases. Drupal automatically creates users in LearnWorlds on purchase, listens to webhooks to keep course and subscription records in sync, and surfaces active courses and subscriptions on the user profile.
Results
Data from IRS filings is transformed into a usable, searchable resource inside funder and grant views, eliminating manual document digging and enabling insight at a glance. Search is significantly faster and more relevant thanks to Solr and the reworked UX. The architecture scales: Golang preprocessing plus entity relationship tuning keeps performance stable on millions of records. Education becomes a first-class revenue stream with Stripe checkout, automatic LearnWorlds enrollment, and in-profile visibility for learners.
Drupal 10 provides a robust entity model for complex relationships, a proven search stack with Search API + Apache Solr, and room for custom modules where performance or scale demand it. This combination supports very large datasets while keeping the authoring and publishing flow maintainable.
Technical Specifications
Drupal version:
Key modules/theme/distribution used: