
š Overcoming Challenges in Building & Deploying a Full-Stack Football Team Management App
At 47 years old, I never imagined Iād be building and deploying a full-stack web application. My background is in sales and marketing, not programming. But Iāve always been a technical enthusiastāI had experience building websites with WordPress, Joomla, HTML, and CSSāyet I was never a programmer.
Ā
In early 2023 (at age 46), I decided to take it a step further and started learning Python. Then, in June 2024, I began experimenting with PHP scripts on our WordPress siteājust playing around, tweaking things, and trying to understand how it all worked.
Ā
By October 2024, I took on a much bigger challenge: building a Football Team Management App from scratch using Python, React, and PostgreSQL. It wasnāt just about learning to codeāit was about solving a real-world problem.
Ā
With the help of AI tools, I managed to develop the app in just six weeks (~100 hours). But getting it to actually run in production? That was another story. Deployment took two more months (~150 hours) of troubleshooting, frustration, and persistence.
Ā
Now, in March 2025, the app is live and being used by my sonās football team. Looking back, I can say one thing for sureābuilding an app is one thing, but making it work in the real world is a completely different challenge.
The App Idea: Solving a Real-World Problem
My son’s football team relied on a chaotic Facebook Messenger group for training schedules, match confirmations, and general communication. Messages got lost, parents forgot match times, and tracking attendance was a mess.
So, I built an app that allows coaches, players, and parents to:
ā
Track attendance for matches and training sessions
ā
Manage events (trainings, matches, tournaments)
ā
Support multiple teams per player
ā
Control access with role-based permissions
ā
Generate real-time statistics
The tech stack? React (frontend), FastAPI (backend), PostgreSQL (database), and Google Cloud (deployment).
The Hardest Part: Deployment Struggles

Building the app was relatively smoothāthanks to AI tools like GPT-4, Claude 3.5, and Claude 3.7, I could troubleshoot issues, learn new concepts, and build features efficiently.
Ā
But getting the app to actually run on the cloud? That was a whole different battle.
1ļøā£ First Deployment Attempt: Total Failure
After finishing development, I tried deploying my appāand nothing worked. The backend refused to connect to the database, the frontend wouldnāt load, and authentication failed. I realized that I had developed the app without thinking about deployment requirements.
Ā
š¹ Solution: I had to go back and update many files to be production-ready. That meant restructuring API calls, fixing environment variables, and reworking the database connection.
2ļøā£ Frontend Deployment Disaster
I initially thought Google Cloud Storage was the right place to deploy my frontend. I spent weeks configuring it, only to realize that Cloud Run was the proper choice for hosting my React app.
Ā
š¹ Lesson Learned: Always research the correct deployment strategy before committing time and effort.
3ļøā£ Small Issues That Took Big Time
Some of the biggest headaches came from tiny details that cost me 10-20 hours each to debug:
ā Line endings in deployment scripts ā Windows-style (CRLF) instead of Unix-style (LF) caused silent failures.
ā Cloud Run port issues ā My app was listening on port 8000, but Cloud Run expected 8080.
ā OAuth redirect mismatches ā Google authentication failed because of incorrect redirect URIs.
ā Database connection problems ā Special characters in my password caused SQLAlchemy connection failures.
Ā
Each of these issues took hours of frustration, endless Googling, and AI-assisted debugging to resolve.
Lessons Learned & What Iād Do Differently
After 270+ hours of development and deployment, I walked away with hard-earned knowledge:
ā
Think about deployment from the start. Building an app is just half the journeyāgetting it to run is equally crucial.
ā
Research deployment strategies early. Avoid weeks of wasted effort by planning your frontend and backend hosting correctly.
ā
Be prepared for small but painful issues. Deployment failures often come from tiny details like incorrect config files, network settings, or file formats.
ā
AI is an incredible assistant, but persistence is key. AI helped me troubleshoot and learn, but grit and problem-solving made the real difference.
The App is Live & Whatās Next

š Today, my Football Team Management App is live and running. My sonās team is using it, testing features, and providing valuable feedback.
š The next step? Turning it into a commercial product. Iām refining the app based on user feedback and planning a scalable version for broader use.
Final Thoughts: If Youāre Struggling, Keep Going
When I started in June 2024, I was just playing with PHP scripts. In October 2024, I began building my first full-stack app. And now, in March 2025, itās live in production.
Ā
The AI tools have evolved so much in this time. I built the first version with GPT-4, then came Claude 3.5, and now Claude 3.7āeach one making development even smoother. But AI wonāt do everything for youāyou still need the patience to troubleshoot and the persistence to finish the job.
Ā
š” If youāre struggling with deployment, donāt give up. The first failure isnāt the endāitās just the beginning of learning how to actually ship a product.
š¹ Have you ever faced deployment struggles? How did you overcome them? Letās share experiences! š
ā½ Is your child in a football team?
Do you struggle with the same chaos in communicationālost messages, missed training confirmations, and disorganized schedules?
š² My Football Team Management App could solve your problems too!
The commercial version is coming soon, and Iād love to hear from teams who need a better way to manage their events.
š¬ Reach out to me! Letās bring better organization to youth football together.
Tags:
Building with AICategories
- Building with AI (2)
- Data Analysis (4)
- Data Collection (4)
- Data Driven Marketing (6)
- Data Preprocessing (2)
- Reporting (1)