this is the story of:
My Virtual Sobriety

Who am I?

Profile Picture of the user
Craig Sehlhoff
Elkton, Maryland
Recovering addict who wanted to make a safe haven online

Attributes

  • 15+ years sober
  • pretty cool guy
  • is holding a cake in his picture

Hey there and welcome!


I'm Craig and I've been in recovery for over 16 years!

After spending over a decade in the restaurant industry, I decided to transition into programming, a field I've always been curious about as an avid gamer and life-long nerd.

For my first major project, I wanted to create something meaningful: a virtual community centered around sobriety. When I first got clean I felt out of touch and alone, if this community can help even one person with their struggle it will be a huge success for me.

I'm excited to share this project with you, along with several other apps I've developed since starting this journey. Feel free to explore them below!

Oh, and don't forget to check out my Blog! I'll be sharing updates about my programming journey, thoughts on recovery, and everything in between.

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

  • HTML5

  • JavaScript

  • React

  • CSS3

  • TypeScript

  • Tailwind CSS

  • Godot Engine

  • Next.js

Some of my other projects!

Retro Maze Runner

I made this game for the fall 2024 React Game Jam! This was my first time making any game myself and I fell in love with this process

...also it doesnt work on mobile...

Farkle!

I made this game to practice my Next.Js skills and see if I could get a better handle on making dice games. This is probably me and my brothers favorite dice game so this one is for him. Oh and one day I will add the ability to play this online with friends.

Meme Generator

This was from a Scrimba course. It isn't perfect but it was the first project I was confident going into.

Tenzies

The Tenzies game was the last thing I worked on before starting this website. I like to think I've improved a bit since then.