Featured project

Mars Rails

A personal operating system for projects, learning and work evidence. Rails and MCP give AI persistent, structured context and controlled ways to act.

Role
Product design and full-stack development
When
Ongoing personal project
Focus
Ruby on Rails, PostgreSQL, MCP integrations and workflow design
Mars project board with sample API integration tasks grouped by progress
The project board connects a goal to the work needed to deliver it. All screenshots use sample data.

Context & problem

I built Mars to bring project planning, learning and work evidence into one application. I wanted the information to remain useful beyond a single conversation: a task should belong to a project, completed work should leave a record, and an AI assistant should be able to work with that context.

My contribution

I designed and developed the Rails application, its PostgreSQL data model, interface and MCP integration. The work spans project boards and subtasks, end-of-day work records, guided learning, job tracking and versioned CV editing. I actively use Mars as a personal product and continue to develop it.

Connecting AI to application workflows

Mars exposes structured tools through the Model Context Protocol (MCP). An assistant can retrieve project context, find tickets and perform defined actions through the same application services used to enforce validation. The integration turns persistent application records into context an assistant can use across conversations.

I separated compact discovery and list responses from detailed reads. For example, project lists return ticket counts, while ticket summaries are requested explicitly. This keeps everyday interactions focused without removing access to the detail needed for a decision.

Engineering decisions

Defined actions and explicit permissions. Bearer authentication and OAuth scopes gate tool calls. CVs, jobs and learning records are scoped to their owner; project boards use the application's shared workspace model. Authenticated dispatches leave audit records, including unsuccessful calls.

Writes that can be retried safely. CV saves use an idempotency key and an expected revision. If a document has changed since it was read, the write returns a conflict so the assistant can retrieve the latest version. Each successful edit creates a new revision rather than overwriting the history. Work-record batches also deduplicate retry identities.

A clear boundary around learning. Assistants record evidence of demonstrated skills; the application computes mastery and review dates. Changes to learning tasks, skills and focus are proposed for the learner to accept or reject.

One Rails application. Server-rendered views and a relational data model keep the interface and integrations close to the same rules. Public portfolio pages read explicitly curated content, while private application routes require authentication.

Mars CV editor displaying a fictional sample CV and revision controls
Structured CV content supports both direct editing and versioned changes through MCP.

Verification & outcome

The repository includes request, service and browser tests covering authentication, tool contracts, ownership boundaries, learning workflows and CV revisions. These checks exercise the behaviour around integrations as well as the interface.

Mars is an application I actively use, with an MCP connection that can read structured context and save controlled changes. It demonstrates how I approach a product across the stack: model the workflow, make the interface usable, and account for permissions, retries and conflicting updates.

The next challenge is keeping the growing tool surface easy to understand as the product develops. I treat compact responses, explicit write contracts and regression checks as part of that ongoing work.

← Back to featured projects