Why saving a 23-year-old farmers market platform matters more now than ever—and how modern architecture enables the next chapter of local food systems


TL;DR

⚠️ The Path Forward
Six weeks post-launch, I’m still squashing bugs daily, but the existential crisis is over. The platform that was one hardware failure away from extinction now has a solid foundation. With a clear niche (community-run, multi-grower cooperative markets), I’m focused on thoughtful improvements: automation that removes friction, EBT support for equitable access, and delivery tools for the last mile. This is about preserving vital community infrastructure that hundreds of growers and thousands of customers rely on.

Over the last five posts, I’ve walked you through a 23-year journey. I started with an accidental discovery that became pioneering infrastructure for a movement that barely existed. I sat with you in the crushing weight of a 14-year technical stagnation that brought the platform to the brink of extinction. I dissected the six-month, part-time rescue mission to rebuild everything from scratch, the architectural choices that made it possible, and the modern tools that made it feasible for a solo developer. And I lived through the brutal, humbling reality of the post-launch “bug apocalypse”.

Six weeks after launch, after hundreds of commits and countless fixes, the platform has stabilized. I’m still fixing bugs (two just today) and keeping an eagle eye on Sentry metrics while refining performance. But the constant, gnawing anxiety of imminent server failure that I lived with for years is gone. The old Rails app that could die at any moment has been replaced by a modern system that, while still needing attention, is fundamentally sound. For the first time in a long time, I can think beyond just keeping the lights on. I can think about the future.

But the world LocallyGrown.net has been reborn into is not the one it left behind. The local food movement I helped nurture is now a vibrant, competitive industry. So, for this final post in the series, I want to talk about what’s next. It’s time to look at the crowded landscape I now find myself in, define my place in it, and chart a course for the future.

Finding My Place in a Crowded Field

When I started this in 2002, the idea of an online farmers market was a novelty. Today, it’s a standard. Dozens of companies, many of them well-funded, now offer sophisticated platforms for selling local food. To understand where I go from here, I first have to understand where I fit.

The competitive landscape is diverse, with platforms specializing in different parts of the local food ecosystem:

  • Platforms for Individual Farms: Solutions like GrazeCart are built “by farmers for farmers,” offering an all-in-one system for a single farm to manage its e-commerce and in-person POS sales, with a strong focus on features like selling meat by weight.

  • Comprehensive Food Hub Software: Competitors like Local Food Marketplace provide powerful, all-in-one SaaS solutions for established food hubs, farms, and CSAs that need to manage multiple sales channels, from direct-to-consumer to wholesale.

  • The Modern SaaS Powerhouse: Then there’s a competitor like Local Line, a feature-rich “farm-to-fork commerce platform” that serves both suppliers and wholesale buyers. With sophisticated tools for subscriptions, custom price lists for different customer types (retail vs. wholesale), and advanced inventory management, it’s a powerful option for farms ready to scale their operations.

Seeing this, it would be easy to feel outmatched. But that analysis is missing the point. It’s also missing my history. These platforms aren’t competitors so much as fellow travelers, each serving different needs in the growing local food ecosystem. The diversity of solutions reflects the diversity of communities we all serve. We’re not competing to replace each other so much as completing the ecosystem from different angles.

LocallyGrown.net was never just a generic e-commerce platform. It was built to solve a specific problem for a specific type of organization: the community-run, multi-grower, cooperative online market. My core innovation wasn’t just a shopping cart; it was the “Predictable Harvesting” model that the software enabled. Farmers harvest only what’s been pre-ordered, eliminating waste while giving customers the full selection of a farmers market with the convenience of online shopping. I helped de-risk small-scale farming by eliminating waste and gave customers unprecedented choice and convenience, combining the best of farmers markets, CSAs, and buying clubs.

That is still my niche. That is still my strength. I am not trying to build the best platform for a single farm selling meat, nor am I building a sourcing platform for national grocery chains. I am, and will remain, focused on building the best platform for a community that wants to build its own online market together. My 23 years of experience are focused on that single, powerful goal.

The Path Forward: From Stability to Service

The rescue was about survival. The future is about service. Having a stable, modern platform means I can finally stop patching holes and start building bridges. I can add features that make a real difference in the day-to-day lives of the market managers and growers who depend on this system. I can’t match the big competitors feature for feature, but I can be smarter and more focused. My roadmap is about adding thoughtful improvements that align with the core mission of the platform.

1. Small Automations, Big Impact

One of the most consistent pieces of feedback I get revolves around the manual work of running a market cycle. A simple but powerful improvement is to automate the market schedule. Market managers should be able to set their ordering windows (when the market opens for shopping and when it closes) on a recurring schedule and then forget about it. No more late-night logins to manually open the market. This is a perfect example of a subtle automation that removes a recurring point of friction and frees up a manager’s time for more important work.

2. Expanding Access with Online EBT

A core principle of local food is that it should be for everyone. A major step toward that goal is accepting SNAP/EBT payments online. This is not a simple feature to add. It involves a rigorous authorization process with the USDA’s Food and Nutrition Service (FNS) to become an approved online SNAP retailer. An e-commerce platform must meet specific technical requirements for secure, encrypted PIN entry and submit a letter of intent to the FNS to even begin the process. While SNAP benefits can only be used for eligible food items and not for delivery or service fees, offering this payment option is a critical quality-of-life improvement that makes local food more accessible to more members of the community. It’s a complex challenge, but it’s one that goes to the very heart of what LocallyGrown.net is about.

ℹ️ Why this matters
Nationally, SNAP participation skews rural, and rural broadband can be spotty. Enabling secure online EBT reduces travel burdens, expands choice, and keeps dollars circulating locally.

3. Solving the Last Mile: Better Delivery Support

As more markets explore delivery, the logistical challenges become clear. It’s one thing to have customers pick up from a central point; it’s another to efficiently route deliveries to dozens of individual homes. While I have no intention of building a full-blown transportation management system like those used by large-scale haulers, there is a clear need for better delivery tools. This means features like delivery route management and optimization, which are common in CSA-focused software. The goal is to give market managers the tools they need to plan efficient routes, manage drivers, and provide customers with accurate delivery information, making home delivery a viable and scalable option.

A Renewed Commitment

Knowing who I am is the first step. The next is committing to a path that honors my past while ensuring a sustainable future. The rescue mission was a success, but it came with hard-won lessons. The existential risk is no longer technical failure. It’s ensuring that local food remains accessible to all communities, not just those with privilege. The next challenge is about equity, reach, and sustainability in the truest sense.

Moving forward, my commitment is threefold:

First, a commitment to stability and trust. Six weeks post-launch, I’m still fixing bugs and watching metrics like a hawk. The “bug apocalypse” taught me that my code has real-world consequences for people running their businesses. My first priority will always be quiet reliability and responding quickly to the needs of my users.

Second, a commitment to my story. I can’t outspend or out-develop the competition, and I won’t try. My strength is my authenticity: 23 years of being built from within the local food movement, by a grower who lived the problems he was solving. I will continue to build a platform that reflects that unique experience.

Finally, a commitment to never again. The 14-year stagnation was a crisis born from perpetually deferred maintenance. That will not happen again. A portion of my development time is now permanently allocated to the unglamorous but essential work of keeping the platform healthy. I will never again be one hardware failure away from extinction.

The Current State: By the Numbers

As of September 2025, LocallyGrown.net serves:

  • 25+ active markets across North America
  • 500+ growers and food producers
  • Thousands of customers weekly
  • Over $1.3 million in annual sales flowing directly to small farms

These aren’t Silicon Valley numbers, and they never will be. But they represent real communities, real farms, and real families making a living from the land.

The Technical Foundation for the Future

The modern SvelteKit architecture I’ve built isn’t just about escaping Rails. It’s about enabling capabilities that were impossible before. The new, decoupled service layer means I can integrate complex third-party APIs for things like EBT and delivery logistics without risking the stability of the core platform—a task that would have been impossible on the old Rails monolith. Every integration point is now isolated, testable, and replaceable. A failed Stripe webhook can’t bring down the shopping experience. A slow USDA API call for EBT verification won’t freeze the entire application. This architecture makes the ambitious roadmap above not just possible, but achievable for a solo developer.

Mobile-First by Default

<!-- Every interface component now adapts naturally -->
<div class="product-grid">
 {#each products as product}
  <ProductCard {product} {market} />
 {/each}
</div>

The platform is now truly mobile-responsive, something the old Rails app never achieved.

Real-Time Inventory Management

// API endpoint farmers can call from their phones in the field
export const POST: RequestHandler = async ({ request, locals }) => {
 const { productId, quantity } = await request.json();

 // Verify the farmer owns this product
 if (!canEditProduct(locals.user, productId)) {
  throw error(403, 'Unauthorized');
 }

 // Update through our service layer
 const updated = await ProductService.updateQuantity(productId, quantity);

 return json({ success: true, product: updated });
}

Farmers can now update availability from their phones in the field, and customers see the changes on their next page load.

Performance at Scale

With Redis caching and database optimizations, the platform handles traffic spikes gracefully:

// Market data cached in Redis for fast retrieval
export async function getMarketProducts(marketId: number) {
 const cacheKey = `market:${marketId}:products`;

 // Check Redis cache first
 const cached = await redis.get(cacheKey);
 if (cached) {
  return JSON.parse(cached);
 }

 // Fall back to database with optimized query
 const products = await ProductService.getByMarket(marketId);

 // Cache for next request
 await redis.setex(cacheKey, 300, JSON.stringify(products));
 return products;
}

Response times are consistently fast, even during peak Sunday night ordering.

The 12-Month Roadmap

Q4 2025: Foundation Solidification

Building the bedrock of trust that markets need to depend on this platform for another 20 years

  • Rails migration complete
  • Continue bug fixes and performance optimization
  • Achieve 90% test coverage
  • Automated market scheduling
  • Enhanced monitoring and alerting (building on Sentry)

Q1 2026: Access and Equity

Fulfilling the promise that local food is for everyone, not just those who can afford it

  • SNAP/EBT online payment integration
  • Multi-language support (Spanish first)
  • ADA compliance audit and fixes (WCAG 2.2 AA)
  • Low-bandwidth mode for rural areas

Q2 2026: Community Features

Strengthening the human connections that transform a transaction into a relationship

  • Farmer storytelling tools
  • Recipe sharing based on available products
  • Bulk buying coordination
  • Community-supported agriculture (CSA) management

Q3 2026: Delivery and Logistics

Solving the last-mile problem to bring the harvest to the doorsteps of those who can’t make it to market

  • Route optimization tools
  • Driver mobile app
  • Customer delivery tracking
  • Integration with existing delivery services
ℹ️ Market Managers
If you’d like to pilot scheduling automation, EBT, or delivery tools, reach out. I’m prioritizing real-world pilots over lab demos.

The Business Model: Built for Communities

LocallyGrown.net has always operated on a simple, sustainable pricing model: 3% of sales, with nothing upfront. Markets pay on their own schedule. This approach means the platform scales naturally as markets grow, and payment is never an impediment to getting started or continuing to operate. It’s pricing that reflects the community-first philosophy of local food itself.

Future Extensibility

While I’d love to extract and open source components where it makes sense, I’m still identifying what those pieces might be. One area I’m exploring is the design system. I’m planning to expose the theming framework to make it easier for designers to create safe, resilient themes. This would revive the marketplace for LocallyGrown themes that existed in the early days, bringing back the customization options that markets loved while maintaining the stability and security of the modern platform.

Closing: The Real Work Begins Again

This entire journey, from a failed cooperative in 2002 to a high-stakes rescue mission in 2025, was never just about saving a Rails application. It was about preserving vital community infrastructure that hundreds of growers and thousands of customers rely on. It was about ensuring that the accidental innovation that transformed so many local food economies would have a chance to serve the next generation.

The new foundation is solid. The code is modern, the servers are resilient, and the path forward is clear.

My deepest gratitude flows to the market managers who kept faith during the rocky transition, the growers who depend on this platform for their livelihoods, and the customers who choose local food week after week. Your patience and feedback have shaped every line of code.

The real work of growing begins again.


This is the final part of a series documenting the rescue and modernization of LocallyGrown.net. Thank you for joining me on my retelling of how I managed to make the impossible merely difficult.

The Complete Series

If you’ve come in at the end, here’s the whole journey in order:

  1. From Accidental Discovery to Agricultural Infrastructure (2002-2011)
  2. The 23-Year Rescue Mission: Saving Agricultural Innovation from Technical Extinction
  3. The Architecture Challenge: Translating 19 Years of Rails Logic to Modern SvelteKit
  4. Crisis Response: When Launch Day Goes Wrong
  5. Lessons from the Solo Developer Using Modern Tools
  6. From Survival to Sustainability: The Next 20 YearsYou are here

Want to follow the journey? Subscribe to this blog or follow me on Bluesky or Mastodon for real-time development stories.

Want to use LocallyGrown? Visit locallygrown.net to find a market near you or start your own.

Want to help? I’m always looking for feedback from markets, growers, and customers. Reach out at support@locallygrown.net.