.net
All site revenue goes to charity

Change Log

Much of the older stuff is ancient history and I'm just guessing about dates.

Early 1996

Launched the initial version of the game basically just a Java applet front end for my old Unix-based server. It only supported 8x4 and it required a socket to talk back to the server. Firewalls were not yet common and this worked. It had a super simple static 4 page web site and the scores stuff was just a Java text list. It was hosted at Central Data with some kind of weird URL like "www.cd.com/~denny/netcell/index.html". Still somehow it got discovered and early Freecell savants ran up streaks of 1000 or so.

Later 1996

Switched to using HTTP instead of sockets so we could get around some corporate firewalls. At some point early on I switched to using web pages to surface the scores stuff so we could use tables and have more statistics. I got an early lesson in how vocal people can be about relatively innocuous changes.

Nov(?) 1996

I changed jobs to work at Spyglass down the street from Central Data and NetCELL hosting moved with me. It probably had a similarly tangly URL, e.g. www.spyglass.com/users/dcronin/netcell/index.html or some such.

Mar 1997

Spyglass didn't last long. They closed their corporate offices in Champaign and I was given two months of severance pay. In a hurry to replant NetCELL Mike Heins hosted me on his minivend.com server, again with a long and confusing URL. Somehow folks followed me through the changes.

Summer 1997

I went to Microsoft and continued hosting NetCELL with Mike. By this point I think I was using his Minivend server and his [tag] language to make the pages somewhat dynamic.

Fall 1998

I moved out of my initial Pocket PC group to MSNBC.com. I signed a 6 month contract to do web development for Tim Lee who had the domain name cool.com. It was a heady time for the Internet and we all thought we were going to get incredibly rich. I integrated Freecell with cool.com along with a big "tunes" project to try to host mp3s so bands could share their music. And the mainstay was that we picked a cool new site every day. Something which was pretty common back in the early days of the Iternent. I also added chat rooms and had a bunch of annoying teenagers in the cool.com chat room (MadChatter) having drama about this and that.

Spring 1999

I recommended Tim Lee sell cool.com for a few million dollars and let some big dev shop take it over because me as one lone web developer couldn't compete with the likes of Lycos and Excite. But Tim hung on to the name, got some funding, burned through it, went bankrupt, lost the domain name, and now I have no idea what happened to him. This tells a bit of the story.

2000

At this point I think I bought freecell.com for $1000 and finally moved to a domain worthy of the content. I tried to move what I had developed for cool.com to coolios.com, another domain name I picked up back then. Shortly thereafter got sued by the rapper Cooio though. Then I bought coolpick.com and moved that content again.

Mid 2000

In May I implemented tournaments allowing folks to play a fixed set of deals to see who could solve them fastest. Initially I only ran 2-3 tournaments per week with a 2 hour Masters tournament on Sunday. I was getting decent ad revenue so I gave a whopping $50 prize to the winner of the Masters.

Late 2000

I was using a lot of Javascript and "Dynamic HTML" at MSNBC and realized I could implement the game in Javascript using XMLHTTP to make calls to the server. This was before that technique was christened "AJAX". I carried two confusingly different implementations of the game for a while, the Java and the DHTML. And anytime I added new features I had to implement in both Java and DHTML. I remember adding support for variants (not just 8x4) and having to do it in both Java and DHTML. What a pain. I think early on 10x6 was the biggest I could do. 13x0 was still a dream.

2003

At first the DHTML/Javascript was Internet Explorer only. But then even Safari and Firefox/Mozilla were starting to play the DHTML version and Java usage had dropped to about 5% so I discontiued the Java applet flavor of NetCELL. I briefly packaged the DHTML version up as an .exe application you could install it and made it so Anonymous mode didn't require a server connection so you could play fully offline.

2004

I think it was around this time that I switched to using a database for a lot of stuff but still kept scores lists in a complicated linked list in the server. But instead of using files for users and statistics I started using database tables. Somwhere along the line I added a bunch of choices for card faces, writing a program to generate card images. I offered Hollywood, Motorcyle, Fairy, Bold, Kitten, Puppy, Nature, Booze,and Foil.

2005

This is about how far back my usage stats go and it looks like this was probably peak traffic time serving about 120,000 games/day.

2007

I sold freecell.com to some investor guy for the princely sum of $65,000 and bought freecell.net for $2000. I followed Google's rules for moving domain names and as you can see from the above graph most of my traffic stayed with me.

2008

I was starting to have eyesight issues so I implemented larger scaled cards, initially choosing about 8 fixed sizes. The client would pick the most appropriate size and use that set of card images. I continued to support "old cards" because there was a very vocal contingent of users who insisted those cards were clearer. It might have been at this time I dropped the novelty card faces as I'd had very low uptake on that.

2010

I briefly had a whole separate mobile client with slightly different Javascript and some mobile-friendly web pages.

2014

I was laid off from Microsoft and took advantage of the 3 month paid vacation to implement "responsive UI" which just uses the same set of web pages for all devices but causes them to dynamically reformat depending on the screen size of the device. I likely went to a single set of card images at this time as browser scaling of images was getting much better and they no longer looked all ugly and pixel-y.

2018

I moved all score keeping functionality into the database, no longer using the server to do field-specific sorts of the lists. I implemented a bunch of Perl CGI scripts to query the database and provide the desired sorts. I also made all the site data available via some CGI Perl scripts so folks could build their own unique views on the data.

2020

During the COVID lockdown I implemented Elo using a system the Tyler (ElGuapo) proposed (which I think in turn came from SlowPoker) where games and humans exchange Elo values so that both eventually converge on correct ratings. This took a ton of work but Tyler was very helpful and we got through it. He took over some tweaks needed to make all the lesser played variants fall into line.

2025

I retired and with a bunch of free time undertook a complete rewrite of the server and the client. The older server was writtein in C/C++ with code dating back to my initial Unix implementation circa 1995. The client was an unmanageable mess of Javascript. The rewrite moved the server into C# with a separate Linux box spun up and provisioned to host the C# app server. The client was rewritten in TypeScript which is just type-safe Javascript.

Aug 11, 2025

I went live with the new version. Here's the summary of user-visible changes.

Winnable mode is gone. Winnable as a separate scoring mode is history. Now the more streakable variants are all guaranteed winnable and any unwinnable deals are filtered out. Affected variants: 13x0, 5x7, 6x5, 4x10, 9x2, 11x1, 7x4, 8x3, 5x8, 6x6, 10x1, and 12x1. You can specify unwinnable games via the Custom menu.

HotStreak is gone at least for the time being. I will probably try to bring it back as it's an interesting mode of competition but it's had pretty low adoption so it didn't make the list for this release. Edit: actually looks like never. I've had only 1 query about it.

Old cards are history. I designed the old cards back when monitors were often only 16 colors and when 640x480 was a typical display size. With today's plethora of devices and screen resolutions it was very hard to keep the code working for fixed-size cards. (It's hard enough to try to make it work with scalable cards!)

Top level mode for Tournament play. Tournament mode used to be buried in a really long drop down list of game options. Now it's at the top level and in general the tournament experience is enhanced. Hopefully this will drive up adoption of this fun mode of competition.

No anonymous access anymore. We're focusing on the competitive aspects of playing Freecell and are enhancing those features. Anonymous was a small portion of our traffic and will not be supported going foward. Note: the "undo" function was tied to anonymous mode so it too is gone.

Real time "bubbles" showing traffic. Both site-wide and tournament specific, there are realtime displays showing deals, wins, and losses so you can get a visceral impression of the other folks playing Freecell that you're competing with.

Very basic chat. It's on the tournament Current Results page but any logged in user can use it. No frills, just basic communication.

Back end changes only nerds care about. The older server was written in C/C++ and had code dating back to the late 80s before the Internet happened. And the front end was written in Javascript long before that language had matured to where it's at today. Now it's a total rewrite in C# and TypeScript. I hate rewrites just for the sake of, but it had gotten to where I couldn't move things forward any more using that ancient tech.

Sep, 2025

Replaced WRAC's old hard-coded tournament generation with a database table-driven approach. Built admin UI for it and handed it over to Tyler to run.

Oct 20, 2025

Anonymous mode with infinite undo will never come back but by not having an easy "no email" way to play we were losing a fair amount of traffic from folks who didn't want to go through all the rigamarole to sign up and get authorized. So now I generate a fake anonymous name like 'AnonForMedLup' and log them in as a full regular user but just without their own private nickname.

Oct 30, 2025

Changed the Freecell cookie format and the login logic so that longer names/password wouldn't overflow the apparently limited Interchange cookie.

Nov 1, 2025

Introduced new tournament theme Descent Into Madness.

Nov 4, 2025

Moved the web server side up a tier to try to address slowness issues.
All content copyright ©2025 Freecell.net
By using our games you consent to our minimal use of cookies to maintain basic state.
Maintained by Dennis Cronin