Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Check Pages build

on:
pull_request:
push:
branches: [master]

permissions:
contents: read

jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- name: Build with the GitHub Pages toolchain
uses: actions/jekyll-build-pages@v1
with:
source: ./
destination: ./_site
- uses: actions/upload-pages-artifact@v3
with:
path: ./_site
retention-days: 1
138 changes: 32 additions & 106 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,120 +1,46 @@
> March, 2016: If you're on an old version of Jekyll Now and run into a) build warnings or b) syntax highlighting issues caused by [Jekyll 3 and GitHub Pages updates](https://github.com/blog/2100-github-pages-now-faster-and-simpler-with-jekyll-3-0), just :sparkles:[update your _config.yml](https://github.com/barryclark/jekyll-now/pull/445/files):sparkles: and you'll be set!
# Michael Neeley’s portfolio

# Jekyll Now
https://redreceipt.github.io/

**Jekyll** is a static site generator that's perfect for GitHub hosted blogs ([Jekyll Repository](https://github.com/jekyll/jekyll))
A handwritten HTML + CSS portfolio. No JavaScript, framework, package manager,
web fonts, tracking, or API calls. The homepage is served as written.

**Jekyll Now** makes it easier to create your Jekyll blog, by eliminating a lot of the up front setup.
## Preview

- You don't need to touch the command line
- You don't need to install/configure ruby, rvm/rbenv, ruby gems :relaxed:
- You don't need to install runtime dependencies like markdown processors, Pygments, etc
- If you're on Windows, this will make setting up Jekyll a lot easier
- It's easy to try out, you can just delete your forked repository if you don't like it
From this directory:

In a few minutes you'll be set up with a minimal, responsive blog like the one below giving you more time to spend on writing epic blog posts!
```sh
python3 -m http.server 8000 --bind 127.0.0.1
```

![Jekyll Now Theme Screenshot](/images/jekyll-now-theme-screenshot.jpg "Jekyll Now Theme Screenshot")
Open http://127.0.0.1:8000/. No install or build step is needed for the portfolio.

## Quick Start
## Update the gallery

### Step 1) Fork Jekyll Now to your User Repository
Edit the project cards in `index.html` and styles in `portfolio.css`.
Keep the selection small: original public projects with recent development,
useful documentation, and something meaningful to inspect or try. Do not
include private repositories or present upstream forks as original work.

Fork this repo, then rename the repository to yourgithubusername.github.io.
The current selection is Lamplight and Animal Mania, both active in October 2026.
Links and project descriptions are deliberately curated, not fetched in the
browser. Revisit the selection when projects change; there is no automatic sync.

Your Jekyll blog will often be viewable immediately at <https://yourgithubusername.github.io> (if it's not, you can often force it to build by completing step 2)
`assets/animal-mania.webp` is a real gameplay capture from animalmania.app,
resized to 800px wide and encoded as WebP. The Lamplight preview is an HTML
workflow diagram, not a screenshot or claimed execution output. Keep images
local, specify dimensions, and keep the total homepage payload below 100 KB.

![Step 1](/images/step1.gif "Step 1")
## Publishing and older content

### Step 2) Customize and view your site
GitHub Pages already publishes `master` at the repository root. Merging the
portfolio PR will update the homepage; pushing a feature branch does not
publish it. No Pages settings changes are needed.

Enter your site name, description, avatar and many other options by editing the _config.yml file. You can easily turn on Google Analytics tracking, Disqus commenting and social icons here too.
The original Jekyll configuration, layouts, posts, and conference pages remain
to preserve older URLs. The malformed collection default in `_config.yml`
has been fixed so Pages can build again. Jekyll processes the legacy Markdown
and Sass only; the portfolio has no front matter, Liquid, or generated content.
The Python preview shows the new portfolio, not the rendered legacy pages.

Making a change to _config.yml (or any file in your repository) will force GitHub Pages to rebuild your site with jekyll. Your rebuilt site will be viewable a few seconds later at <https://yourgithubusername.github.io> - if not, give it ten minutes as GitHub suggests and it'll appear soon

> There are 3 different ways that you can make changes to your blog's files:

> 1. Edit files within your new username.github.io repository in the browser at GitHub.com (shown below).
> 2. Use a third party GitHub content editor, like [Prose by Development Seed](http://prose.io). It's optimized for use with Jekyll making markdown editing, writing drafts, and uploading images really easy.
> 3. Clone down your repository and make updates locally, then push them to your GitHub repository.

![_config.yml](/images/config.png "_config.yml")

### Step 3) Publish your first blog post

Edit `/_posts/2014-3-3-Hello-World.md` to publish your first blog post. This [Markdown Cheatsheet](http://www.jekyllnow.com/Markdown-Style-Guide/) might come in handy.

![First Post](/images/first-post.png "First Post")

> You can add additional posts in the browser on GitHub.com too! Just hit the + icon in `/_posts/` to create new content. Just make sure to include the [front-matter](http://jekyllrb.com/docs/frontmatter/) block at the top of each new blog post and make sure the post's filename is in this format: year-month-day-title.md

## Local Development

1. Install Jekyll and plug-ins in one fell swoop. `gem install github-pages` This mirrors the plug-ins used by GitHub Pages on your local machine including Jekyll, Sass, etc.
2. Clone down your fork `git clone https://github.com/yourusername/yourusername.github.io.git`
3. Serve the site and watch for markup/sass changes `jekyll serve`
4. View your website at http://127.0.0.1:4000/
5. Commit any changes and push everything to the master branch of your GitHub user repository. GitHub Pages will then rebuild and serve your website.

## Moar!

I've created a more detailed walkthrough, [**Build A Blog With Jekyll And GitHub Pages**](http://www.smashingmagazine.com/2014/08/01/build-blog-jekyll-github-pages/) over at the Smashing Magazine website. Check it out if you'd like a more detailed walkthrough and some background on Jekyll. :metal:

It covers:

- A more detailed walkthrough of setting up your Jekyll blog
- Common issues that you might encounter while using Jekyll
- Importing from Wordpress, using your own domain name, and blogging in your favorite editor
- Theming in Jekyll, with Liquid templating examples
- A quick look at Jekyll 2.0’s new features, including Sass/Coffeescript support and Collections

## Jekyll Now Features

✓ Command-line free _fork-first workflow_, using GitHub.com to create, customize and post to your blog
✓ Fully responsive and mobile optimized base theme (**[Theme Demo](http://jekyllnow.com)**)
✓ Sass/Coffeescript support using Jekyll 2.0
✓ Free hosting on your GitHub Pages user site
✓ Markdown blogging
✓ Syntax highlighting
✓ Disqus commenting
✓ Google Analytics integration
✓ SVG social icons for your footer
✓ 3 http requests, including your avatar

✘ No installing dependencies
✘ No need to set up local development
✘ No configuring plugins
✘ No need to spend time on theming
✘ More time to code other things ... wait ✓!

## Questions?

[Open an Issue](https://github.com/barryclark/jekyll-now/issues/new) and let's chat!

## Other forkable themes

You can use the [Quick Start](https://github.com/barryclark/jekyll-now#quick-start) workflow with other themes that are set up to be forked too! Here are some of my favorites:

- [Hyde](https://github.com/poole/hyde) by MDO
- [Lanyon](https://github.com/poole/lanyon) by MDO
- [mojombo.github.io](https://github.com/mojombo/mojombo.github.io) by Tom Preston-Werner
- [Left](https://github.com/holman/left) by Zach Holman
- [Minimal Mistakes](https://github.com/mmistakes/minimal-mistakes) by Michael Rose
- [Skinny Bones](https://github.com/mmistakes/skinny-bones-jekyll) by Michael Rose

## Credits

- [Jekyll](https://github.com/jekyll/jekyll) - Thanks to its creators, contributors and maintainers.
- [SVG icons](https://github.com/neilorangepeel/Free-Social-Icons) - Thanks, Neil Orange Peel. They're beautiful.
- [Solarized Light Pygments](https://gist.github.com/edwardhotchkiss/2005058) - Thanks, Edward.
- [Joel Glovier](http://joelglovier.com/writing/) - Great Jekyll articles. I used Joel's feed.xml in this repository.
- [David Furnes](https://github.com/dfurnes), [Jon Uy](https://github.com/jonuy), [Luke Patton](https://github.com/lkpttn) - Thanks for the design/code reviews.
- [Bart Kiers](https://github.com/bkiers), [Florian Simon](https://github.com/vermluh), [Henry Stanley](https://github.com/henryaj), [Hun Jae Lee](https://github.com/hunjaelee), [Javier Cejudo](https://github.com/javiercejudo), [Peter Etelej](https://github.com/etelej), [Ben Abbott](https://github.com/jaminscript), [Ray Nicholus](https://github.com/rnicholus), [Erin Grand](https://github.com/eringrand), [Léo Colombaro](https://github.com/LeoColomb), [Dean Attali](https://github.com/daattali), [Clayton Errington](https://github.com/cjerrington), [Colton Fitzgerald](https://github.com/coltonfitzgerald), [Trace Mayer](https://github.com/sunnankar) - Thanks for your [fantastic contributions](https://github.com/barryclark/jekyll-now/commits/master) to the project!

## Contributing

Issues and Pull Requests are greatly appreciated. If you've never contributed to an open source project before I'm more than happy to walk you through how to create a pull request.

You can start by [opening an issue](https://github.com/barryclark/jekyll-now/issues/new) describing the problem that you're looking to resolve and we'll go from there.

I want to keep Jekyll Now as minimal as possible. Every line of code should be one that's useful to 90% of the people using it. Please bear that in mind when submitting feature requests. If it's not something that most people will use, it probably won't get merged. :guardsman:
The original Jekyll Now license is retained in `LICENSE`.
10 changes: 5 additions & 5 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
name: Michael Neeley

# Short bio or description (displayed in the header)
description: Web Developer from Somewhere
description: Software engineer · Greenville, SC

# URL of your avatar or profile pic (you could use your GitHub profile pic)
avatar: https://raw.githubusercontent.com/barryclark/jekyll-now/master/images/jekyll-logo.png
Expand Down Expand Up @@ -91,7 +91,7 @@ collections:

defaults:
- scope:
path: ""
type: "connecttech2018"
values:
layout: "post"
path: ""
type: "connecttech2018"
values:
layout: "post"
Binary file added assets/animal-mania.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions assets/favicon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
120 changes: 106 additions & 14 deletions index.html
Original file line number Diff line number Diff line change
@@ -1,18 +1,110 @@
---
layout: default
---
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Michael Neeley — Software Engineer</title>
<meta name="description" content="Selected open-source work by Michael Neeley: developer tools, web apps, and the occasional game. Built with less ceremony.">
<meta name="theme-color" content="#111412">
<meta property="og:type" content="website">
<meta property="og:title" content="Michael Neeley — Software Engineer">
<meta property="og:description" content="Useful software. Less ceremony. A small collection of active, open-source projects.">
<meta property="og:url" content="https://redreceipt.github.io/">
<link rel="canonical" href="https://redreceipt.github.io/">
<link rel="icon" href="/assets/favicon.svg" type="image/svg+xml">
<link rel="stylesheet" href="/portfolio.css">
</head>
<body>
<a class="skip-link" href="#main">Skip to content</a>
<div class="shell">
<header class="site-header">
<a class="identity" href="/" aria-label="Michael Neeley, home">
<span class="monogram" aria-hidden="true">mn.</span>
<span>Michael Neeley</span>
</a>
<nav aria-label="Main navigation">
<a href="#work">Work</a>
<a href="https://github.com/redreceipt">GitHub <span aria-hidden="true">↗</span></a>
<a href="mailto:michael@neeley.dev">Contact <span aria-hidden="true">↗</span></a>
</nav>
</header>

<div class="posts">
{% for post in site.posts %}
<article class="post">
<main id="main">
<section class="intro" aria-labelledby="intro-title">
<p class="eyebrow"><span class="marker" aria-hidden="true"></span> Software engineer · Greenville, SC</p>
<h1 id="intro-title">Useful software.<br><span>Less ceremony.</span></h1>
<p class="intro-copy">I’m Michael. I build developer tools, web apps, and the occasional game. Here’s a small collection of what I’m working on in the open.</p>
<a class="text-link" href="#work">Explore the projects <span aria-hidden="true">↓</span></a>
</section>

<h1><a href="{{ site.baseurl }}{{ post.url }}">{{ post.title }}</a></h1>
<section id="work" class="work" aria-labelledby="work-title">
<div class="section-header">
<h2 id="work-title">Selected projects<span class="count"> / 02</span></h2>
<p>Public code. Active work.</p>
</div>
<div class="project-grid">
<article class="project" aria-labelledby="lamplight-title">
<div class="project-preview terminal" aria-hidden="true">
<div class="terminal-bar"><span class="terminal-dots">● ● ●</span><span>lamplight / workflow</span></div>
<div class="terminal-body">
<p class="command"><span>$</span> npx lamplight</p>
<ol class="workflow">
<li><span>01</span> Triage GitHub issues</li>
<li><span>02</span> Work in isolated clones</li>
<li><span>03</span> Validate the change</li>
<li><span>04</span> Open a draft pull request <b>↗</b></li>
</ol>
</div>
</div>
<div class="project-body">
<p class="eyebrow">01 / Developer tooling</p>
<h3 id="lamplight-title"><a href="https://github.com/redreceipt/lamplight">Lamplight <span aria-hidden="true">↗</span></a></h3>
<p>Issues in. Pull requests out. A small GitHub + pi runner that turns an issue queue into isolated coding-agent runs.</p>
<p class="technical-note">Sequential execution. Draft PRs. Zero runtime npm dependencies.</p>
<ul class="tags" aria-label="Lamplight technologies">
<li>JavaScript</li><li>Node.js</li><li>GitHub CLI</li>
</ul>
<div class="project-links">
<a href="https://github.com/redreceipt/lamplight">Source &amp; docs <span aria-hidden="true">↗</span><span class="sr-only"> for Lamplight</span></a>
</div>
</div>
</article>

<div class="entry">
{{ post.excerpt }}
</div>
<article class="project" aria-labelledby="animal-title">
<div class="project-preview game-preview">
<img src="/assets/animal-mania.webp" width="800" height="655" alt="Animal Mania gameplay: a tiger faces a gorilla in a pixel-art jungle arena." decoding="async">
</div>
<div class="project-body">
<p class="eyebrow">02 / Browser game</p>
<h3 id="animal-title"><a href="https://animalmania.app/">Animal Mania <span aria-hidden="true">↗</span></a></h3>
<p>An 8-bit-style tactical animal battler. Play against the CPU, share a screen, or challenge a friend in a private online room.</p>
<p class="technical-note">Server-authoritative turns. Redis-backed rooms. Data-driven fighters.</p>
<ul class="tags" aria-label="Animal Mania technologies">
<li>JavaScript</li><li>WebSockets</li><li>Redis</li>
</ul>
<div class="project-links">
<a href="https://animalmania.app/">Play the game <span aria-hidden="true">↗</span></a>
<a href="https://github.com/redreceipt/animal-mania">Source <span aria-hidden="true">↗</span><span class="sr-only"> for Animal Mania</span></a>
</div>
</div>
</article>
</div>
<a class="all-projects text-link" href="https://github.com/redreceipt?tab=repositories&amp;type=source">More on GitHub <span aria-hidden="true">↗</span></a>
</section>

<a href="{{ site.baseurl }}{{ post.url }}" class="read-more">Read More</a>
</article>
{% endfor %}
</div>
<section class="contact" aria-labelledby="contact-title">
<div>
<p class="eyebrow">Keep in touch</p>
<h2 id="contact-title">Good software starts<br>with a conversation.</h2>
</div>
<a class="text-link" href="mailto:michael@neeley.dev">michael@neeley.dev <span aria-hidden="true">↗</span></a>
</section>
</main>

<footer class="site-footer">
<p>HTML + CSS. No JavaScript. No tracking.</p>
<div><a href="https://neeley.dev/">neeley.dev <span aria-hidden="true">↗</span></a><a href="https://github.com/redreceipt/redreceipt.github.io">This site’s source <span aria-hidden="true">↗</span></a></div>
</footer>
</div>
</body>
</html>
Loading
Loading