Building Personal Software: A Non-Developer's Guide

Nate B Jonesgo watch the original →

You don't need to be a developer to build custom software; by identifying one of five software 'shapes' and using AI agents to manage the build, you can create functional, private tools for your specific life needs.

The Five Software Shapes

Before writing code, identify the 'shape' of your project to determine the necessary infrastructure. Most personal software falls into one of five categories:

  1. Local Tool: Runs on one computer using local files; ideal for private research or file management.
  2. Web App: The default recommendation. Accessible via browser, works on mobile/desktop, and avoids app store friction.
  3. Native Phone App: Necessary only if you require deep hardware integration like Bluetooth, NFC, or background location.
  4. Background Service: Automated scripts that run on a schedule or trigger (e.g., checking public records or sensor thresholds).
  5. Hardware Project: Software that interfaces with physical devices (e.g., Raspberry Pi, ESP32) to interact with the real world.

The Build Strategy: AI as a Partner

Avoid the 'vibe coding' trap where models make opaque decisions. Instead, treat the AI as a junior engineer who must justify their work. Maintain four plain-text files in your project repository to keep the AI aligned: project.md (goals/constraints), decisions.md (rationale for technical choices), scenarios.md (test cases), and an instruction file (e.g., claude.md) that forces the model to explain trade-offs regarding cost, privacy, and portability before executing changes.

Tooling and Portability

For beginners, hosted builders like Lovable provide the fastest path to a working web app. However, prioritize portability by connecting your project to GitHub from day one. If you need more control, use coding agents like Claude Code or Codeex on your local machine. These allow you to swap components—such as moving from a managed database to Supabase or deploying via Vercel—without rebuilding the entire application.

Managing Hardware and Data

When building hardware-adjacent projects, use a Raspberry Pi as a local hub to process signals (like AIS radio data) and store them in a local SQLite database. Use Tailscale to securely access these local services from outside your home network without exposing them to the public internet. Always keep secret keys out of your code; explicitly instruct your AI agent to handle sensitive credentials securely.

  • #tutorial
  • #ai
  • #dev-tooling

summary by google/gemini-3.1-flash-lite. probably wrong about something. check the source.