From Rock Bottom to Production Code
Published on June 27, 2025
Introduction: From Rock Bottom to Production Code
My name is Matthew Raynor. I’m a 35-year-old quadriplegic and self-taught Python/Django developer. Six years ago, I broke my neck in a diving accident, leaving me paralyzed from the collarbone down—without functional use of my hands or triceps. Before that, I was a commercial fisherman in the Northeast. I loved that job, and I never imagined learning something as complex as programming.
The years after my injury were brutal. I lost my independence, my passions, and my sense of purpose. I moved back into my childhood home, which was a nightmare—comparable, honestly, to breaking my neck. Then COVID hit, and things got worse. I burned through the money raised for my care, couldn’t find consistent help, and after a hospital stay, I became—well, kind of homeless. That’s when I landed in a nursing home. I had no usable skills, no real support system, and I hit rock bottom—hard. But somehow, from a nursing home bed, I decided: this isn’t where it ends. I refuse.
I got off all my medications and made a promise to myself—I’d learn a skill. My brother is a software engineer, and compared to my chaotic life, his seemed stable and secure—something I desperately wanted for myself. So I started learning. From bed. With a stylus strapped to each hand. Typing one key at a time.
Things evolved. I got my power chair back and started getting out of bed more consistently. I began brainstorming more efficient ways to use a computer. I’ve had six or seven different iterations of my setup—and now, my workflow is fantastic.
My first textbook was Python Basics. I read it cover to cover, taking obsessive notes. I had nothing else—no distractions, no ability to leave the nursing home—so I stared at code every day until it started to click.
Then I found Django for Beginners by William S. Vincent. That changed everything. For the first time, full-stack web development felt accessible. It was linear. Before that, learning felt chaotic—tutorials left me more confused than confident. I constantly asked myself: Am I even making progress? Or just fooling myself?
But I kept going. I worked through Django for APIs and Django for Professionals, built my first apps, and pushed them to GitHub. Somewhere along the way, I also discovered ChatGPT—and that became the single most transformative tool in my workflow. I use it for everything: planning, debugging, design… even as a therapist and spiritual guide. Yeah, it’s a little weird—but whatever works. It 10x’d my progress.
Fast forward: I’ve now built multiple full-stack Django applications. I’ve also started working with React—my first full-stack app uses a Django backend hosted on Heroku and a React frontend deployed to Netlify. One project is a complete business dashboard for an art moving company, designed for someone with dyslexia. Another is my flagship personal site, MatthewRaynor.com—a portfolio, blog, e-commerce store, and AI-powered chatbot that answers questions about my story, my work, and my art.
Building a Business Dashboard for an Art Moving Company
A friend of mine was struggling to manage both his dyslexia and his art moving business. Things were chaotic—he couldn’t keep track of work orders, pickups, drop-offs, installations, or dates. He asked if I could build him an app to help.
At the time, I’d only built a few tutorial-based projects and didn’t feel ready. I said no.
But he didn’t take no for an answer.
So I cloned a starter project from Django for Professionals with custom user auth and got to work. My vision was to build a clean, visual dashboard he could log into and instantly see his schedule: a color-coded calendar with day, week, and month views. I wanted him to stop relying on paper and finally see his business.
The app’s evolved since then. His bookkeeper uses it. His crew in the field uses it. And he relies on it every day.
🧠 Technical Breakdown
Built with Django, the app is split into modular apps:
- accounts – Custom user model with full auth
- clients – Contact/address book with import/export
- workorders – CRUD, scheduling, status tracking with events ie pickup/dropoff
- invoices – Linked to work orders, with PDF export and payment status
- calendar – FullCalendar.js for event display. Week snd day view
- pages – Static content like home and dashboard
- scripts – Nightly db backup automation
The frontend uses Bootstrap 5, Select2, Flatpickr, Font Awesome, and FullCalendar. I styled it with SCSS and Bootstrap Icons. jQuery and AJAX support dynamic interactions—like marking invoices as paid—without page reloads. There’s also dynamic event scheduling asnd a search bar for finding a client to create a workorder.
PDFs are generated using WeasyPrint, styled with branding and work summaries. The calendar shows WorkOrderAddress events (pickups, installs, drop-offs) across month/week/day views. The day view is nice – it lays out where the workers need to go and what they need to do.
🔒 Auth & Admin
The system uses a custom CustomUser model and Bootstrap-styled templates for login, logout, and password reset. I customized the Django admin to show key model fields—including primary keys, which I learned (painfully) are essential. Admin users can export data like clients or invoices in CSV or JSON.
🔁 Backups & Data Portability
At one point, I refactored the workorders models and pushed it live—breaking everything. I lost most of the production data and was terrified to tell my client.
But it taught me something: people were actually depending on what I built. I called him, owned it, and promised to fix it. I added a Dockerized cron job that runs nightly backups—exporting .json and .dump files with email confirmations. I also integrated django-import-export so i can export/import invoices and clients as CSVs or Excel sheets.
💡 UX and Accessibility
The whole layout is very mobile-friendly and card-based, with polished touches like Select2 dropdowns, Flatpickr date pickers, tooltips, toast alerts, sidebar nav, and AJAX modals. The goal was clarity—desktop and mobile—especially for a dyslexic user who needed visual flow, not clutter.
This was my first real freelance project, and it was a wild ride. But it built my confidence—and by the end, I didn’t just feel like I was trying to become a developer. I was one.
Building MatthewRaynor.com — A Hub to Elevate My Life from the Nursing Home
This wasn’t just another project. I built MatthewRaynor.com to prove—to myself and to the world—that I am a full-stack web developer.
I used to run a Shopify store to sell art prints and a photo book I created called Before Me, After Me. But I really didn’t like Shopify—its Liquid templating system felt restrictive, the customization options were limited unless you paid for templates, and overall, it didn’t reflect the skills I was working so hard to build. I wanted something real. Something I built myself.
More than that, I wanted this site to be a hub for everything Matt Raynor: my portfolio, my store, my writing, a contact page for clients and employers, and a place where people could learn about my journey—and how they could support me as I work toward getting out of the nursing home. I even added an AI chat widget to explain it all in case someone didn’t feel like navigating the page themselves.
🧩 What I Built
I designed and built a site that combines:
- A full e-commerce store
- A Django portfolio with polished case study pages
- A contact form powered by Gmail SMTP
- A personal blog and vlog space for my inspirational writing
- An AI chatbot trained on a custom JSON knowledge base
I wanted everything to feel seamless—and I wanted to prove I could create a professional-grade product experience, end to end.
🧠 Tech Overview
Backend: Django 5.x with PostgreSQL
Templating: Django Templates + modular SCSS (compiled via sass)
Frontend Features:
- Custom CSS keyframe animations
- Vanilla JavaScript for scroll reveals and chat behavior
- Font Awesome icons
Authentication:
- Django Allauth
- Google SSO integration
E-Commerce:
- Stripe Checkout (with cart, webhook handling, login, reviews)
- Order confirmation emails via Gmail SMTP
Chatbot:
- AI Chat Widget powered by OpenAI
- Trained on a JSON file with everything about me: who I am, how to use the site, how to help me, what I sell, and more
Deployment:
- Heroku (Dockerized)
- Whitenoise for static file serving
💡 Why I Built It
This site is more than just code. It’s a living résumé, a digital storefront, a blog, and a personal advocate—all rolled into one. It shows what I’ve built. It shares who I am. And it opens a door for people to help, hire, or collaborate with me.
One of the features I’m most proud of is the AI chatbot—not just because it works, but because it talks like me. You can ask it who I am, how to use the site, how to buy my book, what my spiritual practice is, or how to help me move forward. It’s powered by OpenAI and fed a custom JSON knowledge base. It’s my voice—available 24/7.
Comments
No comments yet. Be the first to comment!