A product of Gibson Mainframe Co. — Hack the planet.
The web application server for the new millennium. Rebuilt from scratch in C, 27 years late.
A loving, fully working tribute to the CFML application servers of 1999: the tags, the functions, the frameset Administrator, the Error Diagnostic Information pages, and the password "encryption" you could break with a pencil.
What is this?
KoldFusion is a web server and CFML engine in about 27,000 lines of dependency-free C. Point a browser at it and you get
the whole 1999 experience: <CFQUERY> against a built-in database, session and client variables,
<CFMAIL> spooling to real SMTP, scheduled tasks, Verity-style search, WDDX, CFX tags compiled from C,
custom tags with ThisTag.GeneratedContent, CFFORM's generated JavaScript… and every page of the
navy-and-sage Administrator.
It is not a modern CFML engine. It is the one you remember, bugs and all — variables are case-insensitive,
comparisons print YES, nested IIf() still bites, and there are no user-defined functions
(those arrived in the next version).
Quick Start
Needs only a C compiler, make and pthreads. Administrator password: admin. Please keep it on
127.0.0.1 — the security is authentically 1999.
Screenshots 
Every screenshot is the real server running in a modern browser. Click to enlarge.
The 1999 Web 
Twelve web sites from the class of 1999, re-imagined as loving parodies and served by KoldFusion, each at its own
address like an IIS virtual site (http://yowza.localhost:8500/). Over 2,300 static pages with search, shopping
carts, proxy bidding, threaded comments and moderation all done the 1999 way: cookies and
document.write(). Every name, story, product and graphic is invented. Start at
http://localhost:8500/web1999/.
» Visit The 1999 Web live, right now, in your browser «
![]()
Everything in the Administrator works
server
- Request limit, timeouts, the Restart at N unresponsive requests watchdog
- Template & query caching, trusted cache
- Basic Security: tag restrictions, unsecured tags directory
- Advanced Security: user directories, contexts, rules, policies
- Variables, Locking (full checking!), Mappings, Java, Version Info
datasources
- ODBC, Native Drivers and OLE DB pages
- "CF Settings >>": restrict SQL operations, login timeout
- Verify Data Source & a table browser
- All served by the built-in Flat-File Driver
extensions
- CFX tags: real shared libraries,
ProcessTagRequest() - Applets registry for
<CFAPPLET>
logging
"Severity","ThreadID","Date","Time","Details"- Slow-page logging, syslog, mail logging
- Log file viewer with download & delete
automated tasks
- One-time, daily/weekly/monthly, every N minutes
- RUN now, publish output to a static file
miscellaneous
- Mail: verify, spool, undeliverable folder, respool
- Debugging output appended to every page
- Verity collections: create, index, optimize, purge
Hello, 1999
<!--- hello.cfm ---> <CFQUERY NAME="emps" DATASOURCE="cfsnippets"> SELECT FirstName, Department FROM Employees ORDER BY Department </CFQUERY> <CFOUTPUT QUERY="emps" GROUP="Department"> <H4>#Department#</H4> <CFOUTPUT>#FirstName# </CFOUTPUT> </CFOUTPUT> <CFOUTPUT>Is it 1999? #Year(Now()) IS 1999#</CFOUTPUT>
Accounting
Oscar Rosa IdaAdministration
Quentin Hank NadiaEngineering
Wendy Samir Lena Jack…Is it 1999? NO
Grouped output, nested CFOUTPUT and a comparison that prints NO, exactly like 1999.

Authentically insecure
Encrypt() is the original algorithm, re-implemented bit for bit and checked against the published test vector:
<CFOUTPUT>#Encrypt("text", "key")#</CFOUTPUT> <!--- $38YC!P --->
It is a three-register bit generator whose key schedule only ever reads characters 5 to 8 of your key. The Administrator stores its own password with it, under a fixed key, in a REGEDIT4-format registry file. As the README says: exactly as insecure as 1999 intended.
By the numbers
| Thing | Count |
|---|---|
| Lines of C (no build dependencies) | ~27,000 |
| CFML tags / built-in functions | ~80 / 250+ (everything in the 4.5 reference) |
| Servers in one binary | 3 — web (HTTP/1.1 + SSL), LDAP directory, and a Java VM if you have one |
| Language Reference pages, each with a runnable example | 325 |
| Vintage CFML scripts in the Demo Gallery (from Rosetta Code, GitHub…) | 60 (51 run as-is) |
| Example applications (intranet, HR app, parks browser, widgets) | 5 |
| Retro 1999 web sites / static pages in them / GeoHoods homesteaders | 12 / ~2,350 / 251 |
| Animated GIFs drawn from scratch for this project | too many |
| Java applets required | 0 — CFGRID, CFTREE and CFSLIDER render as HTML |
You are visitor number since November 1999!
Sign my guestbook! (it's GitHub Issues. Sorry.)
![]()
This page is best viewed at 800x600 in 256 colors. Last updated: Y2K + 26 years.
