Development Workflow

Core Tools

Project Lifecycle

Hardware Projects

# New hardware project
mkdir project_name/
cd project_name/
# Create KiCad project
kicad project_name.kicad_pro

# Development cycle
git add . && git commit -m "feat: initial schematic"
# Iterate: schematic → PCB → gerber → review
git commit -m "fix: update power routing"

# Final output
# Generate gerber files for manufacturing

Web Projects

# New web project (use existing as template)
cp -r vocabvibe/ new-project/
cd new-project/

# Setup
npm install
npm run dev  # Local development

# Deploy
npx wrangler deploy  # To Cloudflare Workers
git commit -m "feat: add new feature"

Content Creation

# Create new note in org/
emacsclient --eval "(denote-create-note)"
# Write content in org-mode
# Content auto-syncs to mayphus.org/content/

# Publish
cd mayphus.org/
npm run build && npx wrangler pages deploy dist/

Git Workflow

Commit Style (Conventional Commits)

Branch Strategy

Important: Force push requires explicit approval

Development Environment

Local Setup

# Primary workspace
cd ~/workspaces/

# Emacs as primary editor
emacsclient filename

# Remote development
ssh ubuntu  # For ROS2/LeRobot work

Central Tool: Emacs

Emacs serves as my primary interface for:

Language and Framework Support

Primary Languages

Web Development Stack

MCP Integration

Project-Specific Workflows

Hardware Design

  1. Schematic → KiCad electrical design
  2. PCB Layout → Physical board design
  3. DRC Check → Design rule verification
  4. Gerber Export → Manufacturing files
  5. Assembly → Physical testing

Web Development

  1. Local Devnpm run dev
  2. Buildnpm run build
  3. Deploynpx wrangler deploy
  4. Test → Verify in production

Content Publishing

  1. Write → org-mode files in org/
  2. Sync → Content syncs to mayphus.org/content/
  3. Build → Astro processes org files
  4. Deploy → Cloudflare Pages deployment

Quality Assurance

Before Commit

Deployment Checks

Automation Opportunities

Current Manual Steps

Potential Improvements

Notes Management

All notes stored in org/ using org-mode:

Remote Work

Use ssh ubuntu for:

Private Cloud Infrastructure

Hardware Foundation

I use a mini PC as my private cloud server - a compact, energy-efficient solution that provides:

Operating System Choice: FreeBSD

After trying various operating systems, I settled on FreeBSD because:

Service Architecture with Jails

FreeBSD jails provide the foundation for service isolation:

Jail 1: Development Services

Jail 2: Web Services

Jail 3: Virtualization Platform

Using bhyve inside jails for:

This hybrid approach gives me:

System Administration

Automation Tools

Security Framework

Storage Management

Backup and Disaster Recovery