Project updates

Timeline

Notes on what I worked on, what changed, and what I’m still figuring out.

Newest first. Some dates are approximate; their order within a month or year is not exact.

2026

  1. YesterDay

    Set priorities for the next stage

    I continued planning how to resume consistent detailing work, choose a replacement vehicle, and add independent water and power. Better equipment organization, customer acquisition, and booking were also priorities rather than completed changes.

  2. YesterDay

    Compared vehicles for mobile detailing

    I researched the Mazda3 Hatchback and Honda Civic Sport as possible daily drivers that could also carry detailing equipment. I considered cargo space, water and power storage, and equipment access without making a final selection or purchase.

  3. YesterDay

    Planned independent water and power

    I reviewed how relying on customers for water and electricity limited where I could detail cars. I started planning a compact setup with its own water, power, and organized equipment storage. I had not purchased or installed the proposed setup.

  4. JOS

    Started revising JOS’s responses

    I started a personality overhaul to make JOS more consistent and direct, with less generic assistant language. I wanted its responses to feel more familiar and better matched to the conversation.

  5. JOS

    Explored a logo and startup animation

    I explored visual directions for JOS, including terminal-inspired type and simple symbols. I also considered a startup animation, but neither a final logo nor a finished animation was established.

  6. JOS

    Worked on personality controls

    I started extending personality settings into user-facing configuration. Controls for humor, directness, energy, and formality were still being developed.

  7. JOS

    Planned an offline experience

    I started designing a dedicated offline page for when Homebase is unreachable. It could show limited, non-sensitive connection information instead of a generic error, but it was not deployed.

  8. JOS

    Worked on the dashboard and navigation

    I started a broader interface redesign, including dashboard spacing, cards, typography, and grouping. I also worked on collapsible sidebar categories to make the growing navigation easier to use. This redesign was still in progress.

  9. JOS

    Improved task and scholarship pages

    I improved the organization of Codex tasks so their states were easier to scan. I also updated how individual scholarship opportunities showed details such as deadlines, eligibility, and status.

  10. JOS

    Added Codex Bridge and checked remote access

    I added Codex Bridge to connect JOS to its development environment. I was still investigating why it could appear offline away from home even when Tailscale was active.

  11. Homebase

    Planned an offline page for JOS

    I started planning a dedicated offline page for times when Homebase cannot be reached. It could show limited, non-sensitive connection information, but it was not deployed.

  12. Homebase

    Investigated remote Codex Bridge access

    I started investigating why Codex Bridge could appear offline away from home even with Tailscale active. I checked which network interfaces and addresses the bridge was listening on; the issue was still under investigation.

  13. JOS

    Started organizing system settings

    I worked on putting system configuration under System → Settings, starting with appearance and Codex options. More settings were planned, but the full settings system was still in development.

  14. JOS

    Started planning portfolio updates from JOS

    I built my portfolio and began designing a workflow for JOS to draft updates that could be applied to its repository. Public updates would still require my approval; this did not establish a working publishing connection.

  15. Homebase

    Connected my portfolio to Cloudflare

    I created this portfolio and connected its GitHub repository to Cloudflare deployments. The portfolio runs separately from Homebase.

  16. JOS

    Tried a wake-up trigger

    I began exploring Apple Watch health data and Sleep Focus changes as a trigger for a JOS morning briefing. I also questioned whether this would be more useful than simply scheduling the briefing. It remained an experiment.

  17. JOS

    Revisited the morning briefing plan

    I revisited the briefing idea with more context about my day, upcoming exams, projects, and relevant news. This was planning work, not a completed briefing system.

  18. JOS

    Added authentication for public access

    I made owner authentication the default and protected the API routes and documentation. I also tightened session handling, added login and request limits, and separated Codex worker authentication.

  19. Homebase

    Protected the public JOS deployment

    I added owner authentication and protected API access to the public JOS deployment. The work also covered session cookies, login limits, and separate authentication for Codex worker routes.

  20. Homebase

    Started planning power backup

    A power outage shut down Homebase and the services running on it. I began work on a UPS and server upgrade plan, including battery backup and controlled shutdown; those upgrades were not finished.

  21. JOS

    Used one JOS instance across access methods

    I clarified that my LAN address, Tailscale address, and usejos.com all pointed to the same application. I did not need separate versions for each connection method.

  22. Homebase

    Clarified how JOS is accessed

    I confirmed that the LAN address, Tailscale address, and usejos.com all reached the same JOS application. They were different ways to access it, not separate deployments.

  23. JOS

    Added a Scholarship section

    I added a Scholarship section and planned how it could help discover and track opportunities. Ranking, eligibility checks, and automatic discovery were broader design goals, not all finished features.

  24. September 18, 2026 – September 20, 2026
    JOS

    Moved JOS to usejos.com

    I worked on making JOS accessible at usejos.com through Cloudflare Tunnel. The application continued running on Homebase.

  25. JOS

    Updated the Courses dashboard

    I expanded the Courses page toward a dashboard with clearer course information and upcoming work. I focused on making assignments, deadlines, and course status easier to see.

  26. Homebase

    Worked through domain and tunnel issues

    I moved usejos.com toward the Homebase-hosted application and checked DNS, HTTPS, and tunnel connectivity. A Cloudflare 1033 error helped identify that the tunnel connector was unavailable.

  27. JOS

    Explored model selection

    I started exploring how JOS could use configurable AI models. Support for different providers, local models, or models for specific tasks was still experimental.

  28. JOS

    Investigated Canvas access

    I looked into connecting Canvas for assignments, deadlines, and course information. My institution restricted student-created API tokens, so the direct integration was blocked.

  29. JOS

    I defined a workflow where JOS can suggest adding a capability but must ask me before changing its code. I wanted to keep control of which changes get made.

  30. JOS

    Fixed Calendar authorization

    Google Calendar authorization needed repair on the headless Homebase server. I used SSH port forwarding for the browser callback, renewed access, and restarted the backend to restore it.

  31. JOS

    Added an approval-based Codex workflow

    I connected the development workflow to Codex and added Codex Drafts to track proposed tasks. Code changes require my approval, followed by implementation, testing, and review.

  32. JOS

    Connected Google Calendar

    I connected JOS to Google Calendar so it could use my actual schedule. This gave it access to events and deadlines instead of relying only on information I typed into chat.

  33. JOS

    Planned a more useful daily briefing

    I worked on a briefing concept that would include my schedule, free time, study priorities, and project suggestions. It was still a plan rather than a finished daily workflow.

  34. JOS

    Found a gap in course knowledge

    Saving a syllabus did not automatically let JOS answer questions about grading, attendance, or course policies. I still needed to improve how it reads and retrieves the relevant parts of those documents.

  35. JOS

    Moved configuration out of Codex Drafts

    I moved approval and destination-conversation settings out of the normal Codex Draft interface. This let that page focus on development tasks.

  36. Early September 2026
    JOS

    Improved assignment review

    I improved the workflow for reviewing, approving, and rejecting extracted assignments. I kept the course name visible, added Reject All, and moved adding assignments to the calendar to the final step.

  37. JOS

    Defined approval for portfolio updates

    I set the rule that JOS could help draft and organize portfolio updates, but I would approve public changes. This described the publishing policy rather than a tested integration.

  38. Homebase

    Reviewed storage and upgrade plans

    I reviewed the split between application storage on the SSD and Plex media on the external drive. I also started planning more memory, better backups, battery backup, and a better server setup. These were upgrade plans, not completed installations.

  39. Homebase

    Added public access through Cloudflare

    I began moving JOS from private LAN and Tailscale access to usejos.com. Cloudflare Tunnel connected the public site to Homebase without directly forwarding router ports.

  40. Homebase

    Connected Google Calendar

    I connected JOS to Google Calendar on Homebase. Later, I used SSH port forwarding to complete browser authorization for the headless server and restored the integration after renewing access.

  41. JOS

    Saved syllabus files and course records

    I added persistent syllabus storage on Homebase and linked uploads to courses in PostgreSQL. I confirmed that a CHM 111 syllabus was stored and tracked as uploaded.

  42. Homebase

    Stored syllabus uploads

    I added persistent storage for uploaded syllabi and linked the files to course records in PostgreSQL. I confirmed that a CHM 111 syllabus was uploaded and tracked.

  43. Homebase

    Troubleshot remote access to JOS

    SSH worked through Tailscale, but the JOS webpage initially did not. I checked service bindings, ports, and firewall settings to work out why the web application was not reachable.

  44. Homebase

    Worked on keeping the server awake

    I investigated sleep, suspend, hibernation, and automatic shutdown settings. Homebase needed to stay available as more of my applications depended on it.

  45. JOS

    Added school to the project plan

    After starting classes, I decided JOS should keep track of course information instead of making me explain it repeatedly. I focused on courses, syllabi, assignments, and deadlines.

  46. JOS

    Updated the name across the project

    I started replacing Jarvis references across the code, interface, prompts, and configuration. I also registered usejos.com and moved toward keeping the assistant’s identity in one configuration.

  47. JOS

    Renamed Jarvis to JOS

    I changed the name from Jarvis to JOS, short for Just One System. I wanted a name that belonged to this project rather than being tied to Marvel.

  48. JOS

    Built the conversation service

    The backend, model connection, identity layer, and web interface were coming together. I built and tested a service to create conversations and save and retrieve messages before connecting it to the main chat API.

  49. Late August 2026
    JOS

    Built a syllabus upload workflow

    I built a workflow for uploading syllabi and planned the extraction steps around reviewing the results before saving them. I wanted to approve course and assignment information rather than trust AI extraction automatically.

  50. JOS

    Expanded what I wanted JOS to help with

    I started planning how JOS could connect school, business, projects, coding, files, and other tools. This was the direction for the project, not a set of finished integrations.

  51. JOS

    Kept conversations after a refresh

    I connected saved conversations to the interface and checked that history stayed available after refreshing. I added conversation switching, New Chat, and navigation for desktop and mobile.

  52. JOS

    Worked on mobile access

    I continued working on the desktop and mobile interfaces so I could use JOS from more than one device. Voice access was still a future goal.

  53. JOS

    Separated identity from the model

    I added a dedicated identity and personality layer for JOS. This keeps its name, tone, and communication rules separate from the AI model underneath it.

  54. Early August 2026
    JOS

    Set up the backend and database

    I built the backend with Python and FastAPI and added PostgreSQL for persistent data. I introduced Alembic migrations so database changes could be tracked as the project grew.

  55. Homebase

    Connected remotely with Tailscale

    I set up Tailscale, MagicDNS, and Tailscale SSH for private access to Homebase. I was able to manage the server from my Mac while away from home without exposing SSH publicly.

  56. Homebase

    Saved chat history in PostgreSQL

    JOS began storing conversations and messages in PostgreSQL. I checked that conversations stayed available after refreshing the page and switching between chats.

  57. JOS

    Got the first conversation working

    I got the web interface to send a message to the AI model and display its response. I also designed a PostgreSQL-backed memory system for conversation context, tasks, and longer-term information; that design was separate from getting chat working.

  58. JOS

    Started building Jarvis

    I started developing the assistant on Homebase under the name Jarvis. My first goal was to get an AI-powered web chat working.

  59. Homebase

    Started hosting JOS

    I started running my personal assistant project on Homebase, initially under the name Jarvis. It later became JOS and grew into the main application on the server.

  60. YesterDay

    Planned how JOS could help the business

    I outlined how JOS could help with business tasks, marketing reminders, and scheduling. Calendar and Notion connections were part of the plan, not all completed integrations.

  61. JOS

    Planned a personal assistant

    I wanted a self-hosted assistant that could remember context and help with my calendar, tasks, projects, and detailing business. I planned to use it from my computer and phone, with voice as a later goal.

  62. Homebase

    Troubleshot an SSH connection problem

    Homebase became unreachable over SSH. I checked the Ethernet connection, host address, and SSH service, and learned to distinguish Docker bridge addresses from the server’s LAN address.

  63. YesterDay

    Continued work on the business identity

    I continued using YesterDay Car Detailing across the website and service offerings. I also worked on keeping the identity consistent as I planned marketing channels.

  64. Late July 2026
    JOS

    Planned the main parts of JOS

    I separated the design into identity, conversation, memory, planning, tools, and interface components. I wanted the AI model to be one part of the application rather than the whole application.

  65. Homebase

    Reviewed the services running on Homebase

    By July, Homebase was running Portainer, Plex, Pi-hole, Netdata, Minecraft, and WG-Easy. It had become the server I used for several projects rather than just a Linux experiment.

  66. Summer 2026
    Homebase

    Added the JOS backend and database

    As JOS grew, I set up its backend, frontend, PostgreSQL database, and persistent file storage on Homebase. I also introduced Alembic migrations to keep track of database changes.

  67. YesterDay

    Organized service packages and pricing

    I documented the main detailing packages and optional add-ons so customers could compare services and starting prices. The packages covered exterior, interior, combined, and more detailed services.

  68. Homebase

    Tried WireGuard for remote access

    I started experimenting with WireGuard through WG-Easy. The goal was to connect my laptop and phone to my home network while I was away.

  69. Homebase

    Added Plex and media storage

    I set up Plex and connected an external drive for movies and TV. This gave me practice with Linux mounts and keeping container data on persistent storage.

  70. Homebase

    Set up Pi-hole

    I deployed Pi-hole in Docker to filter DNS requests and block advertising and tracking domains on my home network.

  71. Homebase

    Set up my first server

    I turned an old spare PC into Homebase and installed Ubuntu Server. I managed it over SSH and used it to learn Linux and try self-hosting services.

  72. Homebase

    Added an Ethernet switch

    I added a switch so my main computer and Homebase could share the available Ethernet connection.

  73. Homebase

    Added Docker

    I installed Docker and Docker Compose to run services in separate containers. This let me update or restart one service without changing everything on the server.

  74. YesterDay

    Built and hosted the business website

    I developed the YesterDay Car Detailing website and used Homebase to host it during this period. I worked with a domain, Linux hosting, networking, and deployments; this does not describe where the website is hosted today.

  75. YesterDay

    Planned local marketing

    I planned before-and-after photos, short videos, and local promotion through social and business platforms. I also considered a $5-per-day Facebook and Instagram ad budget. These were marketing plans, not a record of campaigns run or money spent.

  76. YesterDay

    Looked into online booking

    I explored adding Square booking to the website to make scheduling and service selection easier. The integration was still planned.

  77. Homebase

    Hosted the detailing website

    I hosted the YesterDay Car Detailing website on Homebase. Maintaining it gave me more experience with web servers, domains, DNS, and deployments.

  78. Early 2026
    Homebase

    Added container management and monitoring

    I added Portainer to manage containers and check their logs. I also set up Netdata to see how the server was using CPU, memory, storage, and network resources.

  79. Early 2026
    Homebase

    Hosted a Minecraft server

    I deployed a Minecraft server on Homebase. I worked with container storage, ports, and networking to run it alongside my other services.

2024

  1. 2024 – 2025
    YesterDay

    Kept the business running alongside school

    I continued operating the business while balancing school, athletics, and other commitments. This period gave me more experience with scheduling, customer service, and managing my time.

2021

  1. YesterDay

    Started YesterDay Car Detailing

    I started YesterDay Car Detailing while attending school. I took on the detailing work and the responsibility of running the business.

  2. 2021 – 2023
    YesterDay

    Learned to run a detailing business

    I developed my detailing techniques and gained experience communicating with customers and coordinating appointments. I also learned to manage supplies, equipment, and operating expenses.