myBud

Inspiration

I created myBud to fill a gap between medical & everyday users, I saw a need for a better way for cannabis users to understand their purchases, spending, usage, and personal experiences. Cannabis receipts are often lost, product information is scattered, and it can be difficult to remember which strains, brands, products, or dispensaries provided the best experience.

The goal of myBud is to help cannabis users make smarter purchasing decisions, understand their habits, manage their spending, and discover which products work best for them. myBud premium users will have an option to activate "Privacy Mode" toggle, which will move all User data to device/ files for storage resulting self hosting there data for safe keeping. (feature in development)

What I Learned

Building myBud taught me how to create and manage a large full-stack application with multiple connected features. Throughout the project, I gained more experience with:

  • Building REST API endpoints with Node.js and Express
  • Creating responsive interfaces with Next.js and React
  • Designing and managing a PostgreSQL database
  • Implementing JWT authentication and protected routes
  • Building image-upload and receipt-processing workflows
  • Using OCR and AI to extract structured information from receipts
  • Creating analytics from purchase and usage data
  • Building subscription-based feature restrictions
  • Synchronizing data across multiple database tables
  • Debugging complex backend processes
  • Designing mobile-first interfaces for smaller screens

I also learned that developing a large application requires more than simply adding features. Every feature must work together, and the movement of data throughout the system must be carefully planned.

How I Built It

myBud was built as a full-stack web application using a monorepo structure. The frontend was created with Next.js and React, while the backend was built with Node.js and Express. PostgreSQL is used to store user accounts, profiles, receipts, purchases, session logs, subscription information, and analytics data.

One of the main features of myBud is its receipt scanner (still fine tuning) . Users can upload an image of a cannabis receipt. The system processes the image with OCR to extract the receipt text. AI then converts that text into structured information, including:

  • Dispensary name and location
  • Purchase date
  • Brand names
  • Strain names
  • Product types
  • Product quantities
  • Total grams purchased
  • Discounts
  • Taxes
  • Final purchase total

Users can review and edit the extracted information before saving it. After the information is saved, it is synchronized with a ledger system. The ledger stores active purchase information, while permanent summary tables preserve long-term totals for analytics. This allows myBud to generate insights without depending on every original receipt remaining in the database forever.

The platform also includes:

  • Cannabis session logging
  • Saved session history
  • Purchase and spending tracking
  • Usage analytics
  • Favorite brand and product insights
  • Most-used and highest-spending dispensary insights
  • Public and private profiles
  • Customizable profile themes
  • Subscription plans
  • Plan-based feature access
  • Privacy controls
  • Mobile-responsive navigation and layouts

Challenges I Faced

One of the biggest challenges was keeping the data accurate as it moved through several parts of the application. Receipt information begins as an image, becomes OCR text, is converted into structured data, is saved in the database, is synchronized with the ledger, and is finally used to generate analytics. A problem at any stage could create inaccurate totals. For example, receipt quantities were sometimes returned as text values such as 3.5g instead of numbers. I had to normalize these values before saving them so that the total number of grams could be calculated correctly.

Another challenge involved receipts containing multiple products. Early calculations occasionally counted only one item instead of every item on the receipt. I updated the calculation logic so quantities, grams, spending, taxes, and totals were calculated across the complete product list.

Authentication and browser security also presented challenges. Because the frontend and backend run on separate ports during development, I had to correctly configure:

  • CORS
  • Cookies
  • Credentials
  • JWT authentication
  • Protected API routes
  • User access permissions

Mobile responsiveness was another important challenge. myBud includes detailed forms, receipt information, analytics, profiles, navigation menus, and data cards. I had to make sure these features remained readable and easy to use on smaller phone screens.

Debugging systems (more systems are being added)

I also created separate debugging systems for receipt processing, ledger updates, analytics calculations, and database synchronization. These logs helped me track data through the application and identify exactly where errors occurred. Features will eventually be part of admin dashboard to monitor health, functionality, erros and more.

What I Am Proud Of

myBud started out as a proof of concept, taking images and turning them into insights. myBud then turned into a big idea and I have to see it though. I plan to compete with major comapanies and as a solo developer i would like to show future developers its possible to dream big.

Instead of only storing information, myBud turns user data into personalized insights.

It can help users understand:

  • How much they spend
  • How much cannabis they purchase
  • Which products they buy most often
  • Which brands they prefer
  • Which dispensaries they visit
  • Which products provide the best personal experiences

The project is still growing, but it already represents what I enjoy most about development: solving real problems, building useful tools, improving user experiences, and continuously learning new skills.

What's Next

Moving forward, I plan to continue expanding myBud with additional features and improvements.

Some of the next steps include:

  • Improving the accuracy and speed of receipt scanning and AI parsing
  • Adding more advanced analytics and visualizations for user data
  • Introducing social features such as sharing sessions or recommendations
  • Enhancing mobile performance and usability
  • Expanding subscription tiers with additional premium features
  • Strengthening data validation and error handling across the system

Ultimately, I want myBud to become a complete ecosystem for cannabis users—one that not only tracks data but actively helps users make better decisions and discover new products tailored to their preferences.

Built With

Share this project:

Updates