Skip to content

Repository files navigation

Bytes of Purpose

Purposeful code, one byte at a time.

Read the blog Built with Docusaurus Last commit License: MIT

A developer blog and documentation site built with Docusaurus, focused on coding challenges, development tools, and technical insights. This repository contains the complete source code, content, and automation tools for the Bytes of Purpose website.

🎯 What You'll Find Here

This repository serves as both a developer blog and a comprehensive documentation site covering:

  • Coding Challenges & Algorithms - Problem-solving techniques and solutions
  • Development Tools & Mechanics - Technical implementation guides
  • Learning Resources - Deep dives into programming concepts
  • Project Documentation - Real-world development experiences
  • Process & Workflow Insights - Productivity and development practices

πŸ—οΈ Repository Structure

The docs are a topic-based information architecture: each top-level folder is a reader-facing topic (kebab-case, no numeric name prefix β€” order is set by each _category_.json's position, and every doc carries an absolute slug: so a folder move never changes a URL).

omars-lab.github.io/
β”œβ”€β”€ bytesofpurpose-blog/          # Main Docusaurus site
β”‚   β”œβ”€β”€ blog/                     # Blog posts (publication-ready content)
β”‚   β”œβ”€β”€ designs/                  # System designs / architectural insights
β”‚   β”œβ”€β”€ docs/                     # Topic-organized knowledge base (see below)
β”‚   β”‚   β”œβ”€β”€ welcome/             # Site introduction and how to browse
β”‚   β”‚   β”œβ”€β”€ generative-ai/       # GenAI fundamentals + building GenAI systems
β”‚   β”‚   β”œβ”€β”€ software-development/ # Dev process: experiments, projects, roadmaps
β”‚   β”‚   β”œβ”€β”€ product-management/  # Ideaβ†’ship lifecycle (ideas, research, POCs)
β”‚   β”‚   β”œβ”€β”€ productivity/        # Organizing/discovering/analyzing/automating
β”‚   β”‚   β”œβ”€β”€ blogging/            # Authoring + embedding content in the site
β”‚   β”‚   β”œβ”€β”€ interview-prep/      # DS&A, system design, behavioral prep
β”‚   β”‚   β”œβ”€β”€ companies/           # Roles, levels, skills, and company culture
β”‚   β”‚   β”œβ”€β”€ entrepreneurship/    # Engineer β†’ founder notes
β”‚   β”‚   β”œβ”€β”€ personal-growth/     # Habits, reflection, health, finances
β”‚   β”‚   └── faith/               # Where faith meets craft (Islamic automations)
β”‚   β”œβ”€β”€ ideas/                    # Post-idea seeds β†’ generated /vote page data
β”‚   β”œβ”€β”€ changelog/                # Changelog seeds β†’ generated /changelog cards
β”‚   β”œβ”€β”€ src/                      # Custom React components, theme swizzles, styles
β”‚   β”œβ”€β”€ scripts/                  # Build/validation tooling (links, structure, data)
β”‚   β”œβ”€β”€ static/                   # Static assets (images, icons, etc.)
β”‚   └── build/                    # Generated static site (deployment ready)
β”œβ”€β”€ .claude/                      # Claude Code skills, hooks, and plans
β”œβ”€β”€ Makefile                      # Build, validation, and deployment automation
└── package.json                  # Root package configuration

πŸ“ Key Directories

/bytesofpurpose-blog/ - Main Site

The core Docusaurus application containing all content and configuration.

/bytesofpurpose-blog/docs/ - Documentation Hub

A topic-organized knowledge base. Each top-level folder is a reader-facing topic:

  • welcome/ - Site introduction and how to browse by topic
  • generative-ai/ - GenAI fundamentals and designing/shipping GenAI systems
  • software-development/ - The dev process: experiments, projects, roadmaps
  • product-management/ - The ideaβ†’ship lifecycle (ideas, research, POCs, experiments)
  • productivity/ - Organizing, discovering, analyzing, and automating work
  • blogging/ - Authoring and embedding content (components, diagrams, code)
  • interview-prep/ - Data structures, algorithms, system design, behavioral prep
  • companies/ - The roles, levels, skills, and culture inside companies
  • entrepreneurship/ - Notes on going from engineer to founder
  • personal-growth/ - Habits, reflection, reading, mentorship, health, finances
  • faith/ - Where faith meets craft β€” Islamic automations and trackers

/bytesofpurpose-blog/blog/ - Blog Posts

Publication-ready articles covering experiences, insights, and lessons learned.

/bytesofpurpose-blog/designs/ - Design Content

Architectural decisions, design patterns, and system design insights.

/bytesofpurpose-blog/scripts/ - Build & Validation Tooling

Node scripts wired into the build and the Makefile:

  • generate-changelog-data.js / generate-ideas-data.js - Turn changelog/ and ideas/ seeds into the JSON the /changelog and /vote pages render
  • validate-links.js - Source-level link hygiene (bare/long/tracking URLs, broken-internal + link-to-draft)
  • validate-docs-structure.js - Enforces the topic-folder contract (absolute slugs, naming, depth)

/.claude/ - Claude Code Automation

Skills (the SDLC playbooks), PostToolUse validation hooks, and planning docs.

πŸš€ Getting Started

Prerequisites

  • Node.js (v18 or higher)
  • Yarn package manager

Quick Start

# Clone the repository
git clone https://github.com/omars-lab/omars-lab.github.io.git
cd omars-lab.github.io

# Install dependencies
make install

# Start development server
make start

Building for Production

# Build the site
make build

# The built site will be in bytesofpurpose-blog/build/

πŸ“– For detailed development instructions, see DEVELOPMENT.md which covers:

  • Component development
  • Storybook setup and usage
  • Testing
  • TypeScript & Babel configuration
  • Troubleshooting
  • Changelog generation system

πŸ› οΈ Key Features

Content Management

  • Draft System - Content can be marked as draft for work-in-progress
  • Frontmatter Standards - Consistent metadata across all content
  • Tag System - SEO-friendly tagging for content discovery
  • Sidebar Navigation - Organized content hierarchy

Technical Implementation

  • Docusaurus 3.x - Modern static site generator
  • React Components - Custom interactive elements
  • MDX Support - Rich content with embedded components
  • Responsive Design - Mobile-first approach

Automation & Maintenance

  • Automated Builds - Makefile-based build system
  • Link Validation - Automated broken link detection and fixing
  • Content Standards - Automated frontmatter validation
  • SEO Optimization - Structured metadata and sitemap generation

πŸ“ Content Philosophy

Documentation vs Blog Posts

  • Documentation (/docs/) - Durable, reference material for solving specific problems
  • Blog Posts (/blog/) - Experiences, lessons learned, and evolving perspectives
  • Design Posts (/designs/) - Architectural decisions and design insights

Quality Standards

  • All content is thoroughly reviewed for accuracy and clarity
  • Code examples are tested and working
  • Links are verified and maintained
  • Content is regularly updated to reflect current best practices

πŸ”§ Maintenance & Automation

Validation (run from the repo root)

  • make validate-links - Link hygiene + broken-internal / link-to-draft checks
  • make validate-structure - Topic-folder contract (absolute slugs, naming, depth)
  • make secret-scan - gitleaks scan (also runs as a pre-commit hook)
  • make test-regression - Playwright e2e (a11y + SEO gates)

The same checks run automatically as warn-tier PostToolUse hooks while editing (see .claude/settings.json).

🌐 Deployment

Deployment is run manually with make deploy (from the repo root): it secret-scans, builds the Docusaurus site with the PostHog env, and pushes the static output to the gh-pages branch, which serves blog.bytesofpurpose.com.

🀝 Contributing

This repository welcomes contributions in several areas:

  • Content Improvements - Fix typos, improve clarity, add examples
  • Technical Enhancements - Component improvements, performance optimizations
  • Documentation - Additional guides, tutorials, or reference materials
  • Automation - New maintenance scripts or build improvements

How to Contribute

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly (especially for link integrity)
  5. Submit a pull request

πŸ’‘ Developer Guide: See DEVELOPMENT.md for detailed setup, component development, testing, and build instructions. See NAMING_CONVENTIONS.md for changelog entry naming conventions.

πŸ“Š Project Status

  • Live: βœ… blog.bytesofpurpose.com
  • Content Coverage: Comprehensive across the topics above
  • Validation: link hygiene + topic-structure checks run on every edit (warn-tier)

πŸ”— Links

πŸ“„ License

This project is open source and available under the MIT License.


Built with ❀️ using Docusaurus and deployed on GitHub Pages

Releases

Packages

Used by

Contributors

Languages