Stack on a Budget - Deploy & Usage Guide
Prerequisites
- Git (2.0+) for version control
- Text Editor with Markdown support (VS Code, Typora, or similar)
- GitHub Account (required for contributing or deploying via GitHub Pages)
- Optional: Ruby 2.5+ and Bundler (only if running Jekyll locally for site preview)
- Optional: Node.js 14+ (only if using markdown linting tools)
Installation
Clone the Repository
git clone https://github.com/255kb/stack-on-a-budget.git
cd stack-on-a-budget
Optional: Local Jekyll Setup (for GitHub Pages preview)
If you want to preview the site locally as it appears on GitHub Pages:
# Install dependencies (if Gemfile exists)
bundle install
# If no Gemfile, install Jekyll directly
gem install jekyll bundler
Configuration
Repository Structure
The project uses the following structure:
README.md- Main table of contents and entry pointpages/*.md- Individual service category documentationCONTRIBUTING.md- Contribution guidelines and service selection rules
For GitHub Pages Deployment
If deploying to GitHub Pages, ensure your repository settings:
- Go to Settings > Pages
- Set Source to deploy from the
mainbranch (root or/docsfolder) - No additional configuration files required for basic Markdown rendering
Build & Run
Development Mode (Local Preview)
Option 1: Direct Markdown Reading
Simply open the .md files in your text editor or Markdown previewer. No build step required.
Option 2: Jekyll Local Server (if supporting GitHub Pages features)
bundle exec jekyll serve
# Access at http://localhost:4000/stack-on-a-budget/
Option 3: Static File Server (for raw HTML preview)
# Using Python
python -m http.server 8000
# Using Node.js npx
npx serve .
Production Build
For Jekyll-based deployment:
JEKYLL_ENV=production bundle exec jekyll build
# Output will be in `_site/` directory
Deployment
Option 1: GitHub Pages (Recommended)
- Fork the repository to your GitHub account
- Navigate to Settings > Pages
- Enable GitHub Pages from the
mainbranch - Your site will be available at
https://<username>.github.io/stack-on-a-budget/
Option 2: Netlify
- Connect your GitHub repository to Netlify
- Build settings:
- Build command:
jekyll build(or leave empty for pure Markdown) - Publish directory:
_site/(or root if no build)
- Build command:
- Deploy automatically on git push
Option 3: Vercel
- Import the project to Vercel
- Framework preset: Other
- Build command: None (static Markdown files)
- Output directory:
./(root)
Option 4: Raw Repository Usage
No deployment necessary. Users can simply browse the documentation directly on GitHub at https://github.com/255kb/stack-on-a-budget.
Usage
Browsing Services
Navigate to the specific category files in the pages/ directory:
pages/app-hosting.md- Hosting providerspages/database-hosting.md- Database servicespages/continuous-integration-delivery.md- CI/CD tools
Contributing New Services
- Review
CONTRIBUTING.mdfor service selection criteria - Add the service to the appropriate category file in
pages/ - Include specific free tier details and limitations
- Update the main
README.mdtable of contents if adding a new category - Submit a Pull Request
Content Guidelines
When adding services, include:
- Free tier specifications (limits, quotas, expiration)
- Limitations (sleeping apps, credit card requirements)
- Sponsorship disclosure (note that Mockoon sponsors this list)
Troubleshooting
Broken Internal Links
If links between pages fail:
- Ensure links use relative paths:
pages/activity-feeds.md#pubnub - Check that anchor links match header IDs (lowercase, hyphenated)
Markdown Rendering Issues
Problem: Tables or HTML divs not rendering correctly
Solution: Ensure your Markdown parser supports GitHub Flavored Markdown (GFM). Use kramdown with GFM if using Jekyll.
Problem: Images not displaying
Solution: Check that image paths are relative to the repository root. The Mockoon sponsor image uses an absolute URL.
Jekyll Build Errors
Error: Liquid Exception: Could not locate the included file
Fix: Ensure all includes referenced in templates exist in the _includes/ directory (if present).
Error: Gem::LoadError
Fix: Run bundle install to install missing dependencies.
Contribution Rejections
If your PR is rejected:
- Verify the service meets the free tier criteria in
CONTRIBUTING.md - Ensure you've disclosed any affiliation with the service
- Check that the free tier is genuinely useful for developers (not just a short trial)
Local Preview Not Matching GitHub
Issue: Local Jekyll rendering differs from GitHub Pages
Fix: Use the github-pages gem in your Gemfile to match GitHub's exact build environment:
gem 'github-pages', group: :jekyll_plugins