I'm a child of the web - consuming and building static & flash(lol) websites since high school. I now specialize in building rich web applications. Below are a few of the solo projects I've built that still find themselves in production.
Neobub is a microblogging platform built around email subscription.
I quit Facebook a year ago and have replaced it with a newsletter with monthly/quarterly updates about my life, for those that care and I wanted to build a dead-simple platform for others to do the same (while retaining the flexibility to use it as a custom blog).
Neobub is a simple server-rendered rails app, backed by postgres using good ol' HTML, CSS, and very limited vanilla JS. It uses rails mailer and sendgrid as the mail provider. It uses tachyons for style utility (which I've become a fan of) with raw CSS on top. Most technical decisions revolved around simplicity, minimal ongoing maintenance, and page performance.
Ooze Saga is a multiplayer web game where you collect and farm adorable oozes.
Ooze Saga started as a concept for a physical card game which was tranditioned into a web app/game. Players collect and plant oozes to grow their wealth, using many real-time mechanics. There are currently hundreds of players interacting with the game world every day.
Ooze Saga is a vanilla server-rendered Rails app, filled with art and assets I've created. Partially, I wanted the app to feel like the web games of yesteryear (which were all server-rendered), but I also needed an infastructure where I could quickly build/alter features and test new game mechanics. Some interactions would benefit from having a more robut front-end implementation, but rails gets me 90% of the way.
Treebie is a database for thoughtful cannabis product reviews.
As a cannabis consumer myself, I found product reviews largely useless and not very informative. This project was simply an attempt to create a review platform that inspired more thoughtful (and funny) product reviews.
Treebie was made over a few weekends using rails and postgres. I really enjoy working w/ rails and still love the simplicity of server-rendered pages (even if they aren't en vogue at the moment). I leveraged a simple CSS framework which I cooked up a while back to make styling fast and lightweight. I was able to pre-populate the manufacturers database with spreadsheets from the Coloardo licensing board's website and the product and review pages are server-rendered optimized for maximum SEO value (search for specific product keywords is now where most of the traffic comes from).
Magehand is a mobile-focused web app designed to share Dungeons and Dragons game data in real-time with folks sitting around the gaming table.
As an avid DND fan I know first-hand that the tech for tabletop RPG games is abysmal. Despite the demand for such tooling, the market is just too small and fragmented for larger orgs to execute in this space (although you can see that trend starting now). Magehand was an excuse to build an app I wanted to use while playing with some new tech along the way.
The app allows DMs (dungeon masters) to create a 'campaign' and assigns a code where players sitting around the table can join, giving the DM access to all the player data in real-time. As a players change stats or edit their inventory, everybody sees the changes live. For players, it keeps a consistent source of truth without using paper (if you're into that kind of thing).
The app had a few hundred users at the peak, and the usage isn't large enough to warrant monetizing at the moment.
Magehand was my first experience at using firebase and vue together (and my first experience building a production-level app with either). Although my app architecture was somewhat clunky, the fundamental principle of having a unidirectional source of truth through firebase, and then using vue's diffing power to rerender on updates worked really well. It meant I could send frequent real-time payloads and not have to worry too much about reflow inefficiencies. This project inspired me to continue using both Vue and Firebase on future projects.
Lil' Trump is a tiny weekend project, simulating the tamagotchi experience with some presidential flair.
After reading some of Trump's tweets, I thought it might be possible to create a script that would generate believable tweets. The result is this silly 'game' where you're rewarded for generating tweets and giving them media attention. The game mechanics were poorly thought out and not very engaging. Despite that, it was featured on Product Hunt and I continue to get kind messages about the project.
Lil' Trump is just a simple HTML file with about 100 lines of jquery. I made a few sprites and used CSS animations to give them life.
Pokedate was an absurd weekend project to capitalize on the popularity of Pokemon Go (ah, simpler times), where you are can chat with Pokemon trainers near you.
Some coworkers and I were talking about the absurd specificity in new dating app startups and started joking about a pokemon-based dating app. I took that inspiration and hacked together pokedate.me (a $5 domain), largely as a practical joke, in about a weekend.
Once you sign up, you are presented with a tinder-style interface where you see a photo, and you can 'Catch' or 'Run' (terminology used in Pokemon). If both users 'catch' each other, they can chat.
The Monday I got back to work, it got featured on Product Hunt and hundreds of people started streaming in (despite a horrific onboarding/product experience) and I got invited to have lunch with the Firebase team @ Google. I probably could have spent time promoting the app and/or throwing ads up, but I didn't anticipate it having lasting traction. It was a fun 15 minutes of fame, regardless.
The entirety of this web app sits on a single HTML page (on some static hosting service) where it utilizes Firebase for auth/storage and jquery for everything else. The entirety of the app logic (including chat) is done client-side with no server involvement (do not recommend).
Gruup is a simplistic group chat platform.
Gruup is essentially a slack clone I built to play with some new tech. It has things like public/private channels, inline image detection and slash commands, but wasn't meant for mass consumption and isn't in active development.
I love working with both ruby and firebase, and this was some early exposure to both, as well as flexbox (which I hadn't really dug into previously). It lives as a simple sinatra app using firebase as the data store and user auth.