Operations Tools: Project Management, Documentation, Analytics, Forms

Setup guide for operations infrastructure including GitHub Projects, Notion+Wiki docs, Google Analytics, and Google Forms

Introduction

Operations tools form the backbone of solo business management. This chapter covers essential infrastructure for project management, documentation, analytics, and data collection. The goal is sustainable workflows that scale with minimal overhead.

The four tools covered here represent a complete operations stack: GitHub Projects for task management, Notion+Wiki for documentation, Google Analytics for measurement, and Google Forms for data collection. Each tool serves a specific purpose and integrates with the broader ecosystem.

GitHub Projects: Visual Project Management

GitHub Projects provides Kanban-style project management directly integrated with repositories. For solopreneurs managing code, content, and learning projects, it offers zero-context-switching task management.

Setting Up GitHub Projects

Create New Project

Navigate to GitHub profile or organization, click "Projects" tab, then "New project":

Select template:

  • Board view (Kanban)
  • Table view (spreadsheet)
  • Roadmap view (timeline)

Recommended: Start with Board view for visual workflow management.

Name the project descriptively: "Product Development Q1 2025" or "Content Pipeline 2025".

Configure Columns

Default columns (To Do, In Progress, Done) work for simple workflows. Customize based on project type:

Product development columns:

  • Backlog
  • Ready
  • In Progress
  • Review
  • Deployed

Content creation columns:

  • Ideas
  • Researching
  • Drafting
  • Editing
  • Published

Learning projects:

  • To Learn
  • Learning
  • Building
  • Completed

Drag-drop cards between columns as work progresses.

Enable Automation

GitHub Projects supports workflow automation to reduce manual updates:

Built-in automations:

  • Auto-archive cards moved to "Done"
  • Auto-add new issues to project
  • Auto-move based on PR status

Setup automation:

  1. Click "..." menu in project header
  2. Select "Workflows"
  3. Enable desired automations:
# Example: Auto-add issues with label
- name: Auto-add issues
  filters:
    - label: "project:tech-stack"
  actions:
    - add-to-project
    - set-status: "To Do"

Automation saves hours of manual card management weekly.

Connect GitHub issues and PRs directly to project cards:

Create card from issue:

  • Open issue
  • Right sidebar → "Projects"
  • Select target project
  • Issue appears as card automatically

Create card manually:

  • Click "+" in project column
  • Type description or paste issue URL
  • Card links to issue/PR automatically

This creates bidirectional linking: update issue status, project card updates automatically.

Add Custom Fields

Enhance cards with metadata for better filtering and organization:

Useful custom fields:

  • Priority (High/Medium/Low)
  • Size (Small/Medium/Large)
  • Type (Feature/Bug/Documentation)
  • Sprint/Milestone
  • Assignee

Add custom field:

  1. Click "+" in table header
  2. Select field type (Select, Text, Number, Date)
  3. Configure options
  4. Apply to cards

Custom fields enable advanced filtering and reporting views.

Author's Three Project Types

The author maintains three GitHub Projects for different work modes. Product Projects track feature development with columns: Backlog → Ready → In Progress → Review → Deployed. Content Projects manage articles and tutorials with columns: Ideas → Researching → Drafting → Editing → Published. Learning Projects organize skill development with columns: To Learn → Learning → Building → Completed. This separation prevents context switching and maintains focus within each domain.

Advanced Project Management

Saved views allow multiple perspectives on the same project:

  • Sprint view: Filter by current sprint/milestone
  • Priority view: Sort by priority field
  • Team view: Group by assignee (for collaborative projects)
  • Timeline view: Visualize project roadmap

Insights and reports:

  • Velocity charts (cards completed per week)
  • Burndown charts (remaining work over time)
  • Custom reports using GitHub GraphQL API

Keyboard shortcuts:

  • C - Create new card
  • E - Edit card
  • X - Archive card
  • Arrow keys - Navigate cards

Notion + GitHub Wiki: Two-Tier Documentation

Documentation serves two audiences: internal (personal notes, drafts, research) and external (public guides, tutorials, references). The two-tier system separates these cleanly.

Notion: Internal Documentation

Notion serves as private workspace for research notes, drafts, project planning, and experimental ideas not ready for public release.

Create Documentation Workspace

Setup workspace structure:

Documentation
├── Research Notes
│   ├── AI Economics Literature
│   ├── Platform Theory Papers
│   └── Methodology References
├── Content Drafts
│   ├── Blog Posts (WIP)
│   ├── Tutorial Outlines
│   └── Guide Sections
├── Project Planning
│   ├── Roadmaps
│   ├── Feature Specs
│   └── Architecture Decisions
└── Learning Journal
    ├── Course Notes
    ├── Experiments
    └── Reflections

Page templates:

  • Research Note (source, key findings, citations)
  • Content Draft (outline, sections, revision history)
  • Project Spec (problem, solution, implementation plan)

Use Databases for Organization

Notion databases enable structured content management:

Research database properties:

  • Title (Text)
  • Source (URL)
  • Date Added (Date)
  • Topic Tags (Multi-select)
  • Reading Status (Select: To Read, Reading, Completed)
  • Key Insights (Text)

Content pipeline database:

  • Title (Text)
  • Type (Select: Blog, Tutorial, Guide)
  • Status (Select: Idea, Draft, Review, Published)
  • Target Audience (Multi-select)
  • Priority (Select: High, Medium, Low)

Filter, sort, and view content by any property.

Establish Publishing Workflow

Internal → External transition:

  1. Draft in Notion: Write freely without public pressure
  2. Refine and structure: Organize for external consumption
  3. Copy to Wiki: Transfer polished content to GitHub Wiki
  4. Archive in Notion: Mark as published, keep for reference

Workflow markers:

  • 🔴 Not ready for public
  • 🟡 Ready for review
  • 🟢 Published to Wiki

This workflow maintains quality control before public release.

Documentation Workflow Strategy

The author's documentation workflow treats Notion as the thinking space and Wiki as the publication platform. Rough ideas, experimental code, and half-formed thoughts live in Notion without pressure to be perfect. Once content matures and proves valuable, it migrates to GitHub Wiki for public access. This separation allows messy creative work internally while maintaining clean external documentation. The key insight: not everything needs to be public, but everything public should be polished.

GitHub Wiki: Public Documentation

GitHub Wiki provides version-controlled public documentation directly integrated with repositories.

Enable Wiki for Repository

Activate Wiki:

  1. Navigate to repository
  2. Settings → Features section
  3. Check "Wikis" checkbox
  4. Click "Save changes"

Wiki tab appears in repository navigation automatically.

Create Wiki Pages

Add first page:

  1. Click "Wiki" tab in repository
  2. Click "Create the first page"
  3. Title: "Home" (required landing page)
  4. Write content in Markdown
  5. Save page

Wiki markdown example:

# Project Documentation

Welcome to the official documentation for [Project Name].

## Quick Start

Get started in 5 minutes:

1. Install dependencies: `npm install`
2. Configure environment: Copy `.env.example` to `.env`
3. Run development server: `npm run dev`

## Documentation Sections

- [[Installation Guide]]
- [[Configuration Reference]]
- [[API Documentation]]
- [[Troubleshooting]]

## Contributing

See [[Contributing Guidelines]] for how to contribute to this documentation.

Internal wiki links: Use [[Page Title]] syntax to link between pages.

Organize Wiki Structure

Create documentation hierarchy:

Home page: Overview, quick links, getting started Setup guides: Installation, configuration, deployment Reference docs: API reference, configuration options Tutorials: Step-by-step guides, examples Troubleshooting: Common issues, solutions

Sidebar navigation: Create _Sidebar.md file with navigation links:

### Documentation

- [[Home]]
- [[Quick Start]]

### Guides

- [[Installation Guide]]
- [[Configuration Guide]]
- [[Deployment Guide]]

### Reference

- [[API Reference]]
- [[Configuration Reference]]

### Help

- [[Troubleshooting]]
- [[FAQ]]

Sidebar appears automatically on all wiki pages.

Maintain Wiki Quality

Documentation maintenance:

  • Update with code changes (keep docs synchronized)
  • Add examples for complex features
  • Include screenshots for visual clarity
  • Link to related GitHub issues and PRs

Version documentation: For projects with releases, create version-specific pages:

- [[v1.0 Documentation]]
- [[v2.0 Documentation]]
- [[v3.0 Documentation]] (current)

Track wiki changes: Wiki has full git history. View changes with git log in wiki repository.

Obsidian: Local-first Markdown notes with graph view, perfect for knowledge management. Free, supports plugins, no cloud dependency.

Roam Research: Network-based note-taking with bidirectional links. Powerful for research, $15/month subscription.

Logseq: Open-source Roam alternative with local storage, task management, and graph visualization. Free and privacy-focused.

GitBook: Beautiful documentation platform with WYSIWYG editor, versioning, and team collaboration. Free tier available, paid plans start $6.70/user/month.

Docusaurus: React-based documentation framework by Meta, excellent for technical docs with versioning. Free and open-source.

ReadTheDocs: Documentation hosting with Sphinx integration, popular for Python projects. Free for open-source projects.

Google Analytics 4: Web Analytics

Google Analytics 4 (GA4) provides comprehensive website and application analytics. For solopreneurs, it answers critical questions about audience behavior and content performance.

Setting Up Google Analytics 4

Create Analytics Account and Property

Setup account:

  1. Visit analytics.google.com
  2. Click "Start measuring"
  3. Account name: Your business/project name
  4. Account settings: Enable all data sharing (recommended)
  5. Click "Next"

Create property:

  1. Property name: "Website Name - Production"
  2. Reporting timezone: Your primary timezone
  3. Currency: Your business currency
  4. Click "Next"

Business details:

  • Industry category (affects default reports)
  • Business size
  • Intended use (select all applicable)

Set Up Data Stream

Add data stream:

  1. Platform: Web (for websites)
  2. Website URL: https://yourdomain.com
  3. Stream name: "Main Website"
  4. Enhanced measurement: Enable all options
    • Page views
    • Scrolls
    • Outbound clicks
    • Site search
    • Video engagement
    • File downloads

Copy measurement ID: Format: G-XXXXXXXXXX

Save this ID for implementation step.

Install Tracking Code

Add to website HTML:

Insert before closing </head> tag on every page:

<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'G-XXXXXXXXXX');
</script>

Replace G-XXXXXXXXXX with your measurement ID.

For Next.js projects:

Install official package:

npm install @next/third-parties

Add to app/layout.tsx:

import { GoogleAnalytics } from '@next/third-parties/google'

export default function RootLayout({
  children,
}: {
  children: React.ReactNode
}) {
  return (
    <html lang="en">
      <body>{children}</body>
      <GoogleAnalytics gaId="G-XXXXXXXXXX" />
    </html>
  )
}

Configure Events and Conversions

Custom event tracking:

Track important user actions:

// Track button clicks
gtag('event', 'button_click', {
  'button_name': 'Download Guide',
  'page_location': window.location.href
});

// Track form submissions
gtag('event', 'form_submit', {
  'form_name': 'Contact Form',
  'form_destination': '/thank-you'
});

// Track scroll depth
gtag('event', 'scroll_depth', {
  'percent_scrolled': 90
});

Mark events as conversions:

  1. Admin → Events
  2. Click toggle next to event name
  3. "Mark as conversion"

Conversions appear in reports for optimization tracking.

Verify Installation

Check real-time reports:

  1. Open Reports → Realtime
  2. Open your website in new tab
  3. Verify activity appears in realtime report
  4. Check events are firing correctly

Debug with GA Debugger: Install Google Analytics Debugger Chrome extension for detailed event logging.

Using Analytics for Decisions

Weekly Analytics Routine

The author checks analytics every Monday morning with specific focus areas. Traffic sources reveal where visitors come from (organic search, social media, direct traffic) to guide marketing efforts. Top content shows which blog posts and tutorials resonate most with readers, informing future content topics. User flow tracks navigation paths to identify where visitors drop off and which pages drive engagement. Conversion tracking monitors goal completions like newsletter signups and resource downloads. This 15-minute weekly review identifies trends early and validates content strategy decisions without drowning in data.

Key reports for solopreneurs:

Acquisition report:

  • Traffic sources (organic, social, direct, referral)
  • Landing pages
  • User demographics

Engagement report:

  • Page views and sessions
  • Average engagement time
  • Scroll depth
  • Events triggered

Retention report:

  • New vs returning visitors
  • User lifetime value
  • Cohort analysis

Custom explorations: Build custom reports combining multiple dimensions:

  • Content performance by traffic source
  • User journey analysis
  • Conversion funnel visualization

Privacy-focused, lightweight alternative: No cookies, GDPR compliant, simple dashboard. Perfect for solopreneurs who want essential metrics without complexity.

Pricing: €9/month (10k pageviews), scales with traffic Pros: Privacy-first, fast loading, beautiful UI Cons: Fewer features than GA4, paid only

Open-source web analytics: Self-hosted or cloud, simple and privacy-focused. Great for developers comfortable with deployment.

Pricing: Free (self-hosted), Cloud starts $9/month Pros: Own your data, unlimited websites, open-source Cons: Requires technical setup for self-hosting

Simple, privacy-focused analytics: No cookie banners needed, GDPR compliant, beautiful reporting. Premium option for privacy-conscious businesses.

Pricing: $14/month (100k pageviews), 7-day free trial Pros: Simple setup, excellent support, great UX Cons: Higher price point, fewer integrations

Google Forms: Data Collection

Google Forms provides free survey and data collection capabilities with spreadsheet integration. Essential for user research, feedback collection, and lead generation.

Creating Effective Forms

Design Form Structure

Create new form:

  1. Visit forms.google.com
  2. Click "Blank" or choose template
  3. Add title and description

Question types:

  • Short answer: Name, email (single line text)
  • Paragraph: Feedback, suggestions (multi-line text)
  • Multiple choice: Single selection from options
  • Checkboxes: Multiple selections allowed
  • Dropdown: Long list of single-select options
  • Linear scale: Rating questions (1-5, 1-10)
  • Multiple choice grid: Matrix questions

Form organization:

  • Use sections to group related questions
  • Add page breaks for multi-step forms
  • Include progress bar for longer forms

Configure Form Settings

Settings panel (gear icon):

General settings:

  • Collect email addresses (required for contact forms)
  • Limit to 1 response per person (prevent spam)
  • Allow response editing (after submission)
  • See summary charts and text responses

Presentation settings:

  • Show progress bar
  • Shuffle question order (for surveys)
  • Show link to submit another response
  • Confirmation message customization

Quiz settings: (Enable for educational assessments)

  • Make this a quiz
  • Release grade immediately/later
  • Allow respondent review

Setup Response Collection

Link responses to Google Sheets:

  1. Click "Responses" tab
  2. Click green Sheets icon
  3. Create new spreadsheet or select existing
  4. Responses populate automatically in real-time

Spreadsheet structure:

  • Column A: Timestamp
  • Columns B+: Question responses (one column per question)
  • New row added for each form submission

Response notifications:

  1. Responses tab → Three dots menu
  2. "Get email notifications for new responses"
  3. Receive email for every submission

Share and Embed Forms

Distribution methods:

Direct link: Click "Send" → Link icon → Copy URL Shorten with bit.ly or custom domain

Email invitation: Send → Email icon → Enter addresses Customize subject and message

Embed in website: Send → < > embed icon → Copy iframe code

<iframe
  src="https://docs.google.com/forms/d/e/FORM_ID/viewform?embedded=true"
  width="640"
  height="800"
  frameborder="0"
  marginheight="0"
  marginwidth="0">
  Loading…
</iframe>

Social media: Share link directly on Twitter, LinkedIn, Facebook

Advanced Forms Automation

Google Forms Automation with Apps Script

For power users, Google Apps Script enables custom form automation. Common use cases: send custom email confirmations based on responses, automatically populate CRM or database with form data, trigger Slack/Discord notifications for new submissions, generate PDF receipts or certificates. Access Apps Script from form menu: Three dots → Script editor. Write JavaScript to interact with form responses and integrate with external services. This transforms basic forms into powerful data collection and automation systems.

Example: Email confirmation script

// apps-script-confirmation.js
function onFormSubmit(e) {
  const response = e.response;
  const email = response.getRespondentEmail();
  const itemResponses = response.getItemResponses();

  // Extract form data
  let name = '';
  let message = '';

  for (let i = 0; i < itemResponses.length; i++) {
    const item = itemResponses[i];
    if (item.getItem().getTitle() === 'Name') {
      name = item.getResponse();
    }
    if (item.getItem().getTitle() === 'Message') {
      message = item.getResponse();
    }
  }

  // Send confirmation email
  const subject = 'Thanks for your submission!';
  const body = `Hi ${name},\n\nThank you for submitting the form. We received your message:\n\n"${message}"\n\nWe'll get back to you soon.\n\nBest regards,\nThe Team`;

  MailApp.sendEmail(email, subject, body);
}

// Setup trigger
function createTrigger() {
  const form = FormApp.getActiveForm();
  ScriptApp.newTrigger('onFormSubmit')
    .forForm(form)
    .onFormSubmit()
    .create();
}

Setup automation:

  1. Open Script editor from form
  2. Paste code above
  3. Run createTrigger() function
  4. Authorize permissions
  5. Trigger fires on every form submission

Beautiful conversational forms: One question at a time, smooth animations, high completion rates. Premium UX for forms that feel like conversations.

Pricing: Free (10 responses/month), paid from $25/month Pros: Gorgeous design, great UX, logic jumps Cons: Limited free tier, can be expensive

User feedback management: Purpose-built for product feedback, feature requests, and roadmap voting. Integrated community engagement.

Pricing: Free (basic), $50/month (growth) Pros: Feedback tracking, public roadmap, voting Cons: Focused on product feedback only

Professional survey platform: Advanced question types, data analysis, A/B testing. Enterprise-grade survey capabilities.

Pricing: Free (basic), $25/month (standard) Pros: Powerful analysis, templates, integrations Cons: Expensive for advanced features, complex UI

Operations Integration Strategy

These four tools work together to form complete operations infrastructure:

GitHub Projects ↔ Notion:

  • Track project tasks in GitHub Projects
  • Document project decisions in Notion
  • Link GitHub issues in Notion databases
  • Weekly review: Notion planning → GitHub execution

Notion ↔ Wiki:

  • Draft documentation in Notion
  • Publish refined content to Wiki
  • Keep Wiki synchronized with code changes
  • Archive published content in Notion

Analytics ↔ Forms:

  • Track form conversion rates in Analytics
  • Monitor which pages drive form submissions
  • Use form data to validate Analytics insights
  • A/B test form placement based on traffic data

Projects ↔ Analytics:

  • Content performance in Analytics informs project priorities
  • High-traffic topics get dedicated project boards
  • Analytics conversion data drives feature roadmap
  • Weekly analytics review feeds project planning

This integrated approach creates feedback loops: data informs decisions, decisions become tasks, tasks drive outcomes, outcomes generate data.

Next Steps

With operations tools configured, the final chapter covers analytics and monitoring for technical infrastructure health and performance tracking.