Decker, a platform that builds on the legacy of Hypercard and classic macOS
beyondloom.com
beyondloom.com
As a 6-7yo I had a collection of English words, stored with my own definitions and pronunciations, using basic building blocks, and it was as easy and intuitive as writing these words in my notebook.
People used the same building primitives to make real games or stuff like accounting applications.
And the best part - at that time it didn't looked cheap.
This one is really hard to describe - it's the same uncanny valley that makes small village in Fallout 1 feel massive and full of people despite it taking two screens with just few sprites running around, while full blown 3D world of Fallout 3, with real buildings and voice overs felt flat, soulless and empty.
Real beauty comes from expressing something coherent within constraints such that the constraints become the means of expression.
Instead of the usual hideous red, black, grey and white that seemed ubiquitous since at least the 80s along with the most terrible textures one could find, there was blue, yellow, different shades of green.
And one painting featuring an exchange of text messages.
Myst ran in Hypercard in early Mac releases but switched to a cross-platform runtime Broderbund built to sell Myst on Windows CDs (and consoles and more).
Riven was also majority designed/prototyped in Hypercard as a development platform, but more directly targeted from the beginning that same runtime Broderbund built for running Myst cross-platform.
The actual killer app turned out to be the network itself, but for anyone who used and built things with Hypercard (a lot of people), all the patterns of components and event-driven development were like an echo from a refined past by the time it became part of the modern development toolkit.
This is one of the things that I think we've lost. Or at least that we come close to losing. I go back even further, to the text screens of mainframe computers, and text based microcomputers. Because everything was text on a screen, a kid like me could make something that "looks just like software" even if I couldn't match the sophistication of commercial software in terms of the inner workings.
By the time I started using a graphical computer, my 68k Mac, it was already getting harder. I could write programs that ran in a terminal window, but making them "look like software" required a deep dive into the impenetrable workings of giant class libraries etc.
HyperCard was a great middle ground. Its widgets looked just like the basic UI widgets of the OS, and users could do things like click on buttons and edit text fields. Just like software.
Visual Basic got there too. I wouldn't say that VB (and the OS it ran on) was conceptually better than HyperCard, but VB got supported and HyperCard got dropped.
If you task an llm with writing a CLI and have it use it, then it hides the "user interface" to a sufficient degree that you can pretty much build any kind of app/functionality in a couple days and it feels "professional".
AI as UI with a somewhat universal affordance.
All you have to do is get people to try using it.
It's vastly smoother now, because nothing prevents adding colour and Unicode support, or more modern widgets, etc. without really changing anything essential about overall concept. Plus we're now in a world where LLMs could write Hypertalk (or whatever modestly-updated alternative) for you.
> the same uncanny valley that makes small village in Fallout 1 feel massive and full of people despite it taking two screens with just few sprites running around, while full blown 3D world of Fallout 3, with real buildings and voice overs felt flat, soulless and empty.
Again, all you have to do is show it to people. I don't think people actually appreciate the "classics" more simply because they remember them being SOTA. If anything, the passage of time has given the grognards a chance to notice that not everything at the time was nearly as good as the things that gave them the most nostalgia.
And again, the quality and fidelity of media is largely orthogonal to the aesthetic. 2d isometric tile games don't have the feeling they do because they're low resolution; not nearly so much as because the tiles intentionally fit together exactly, lines are at integer pixel ratios with no anti-aliasing, stuff like that.
The demand for this was huge.
If you’re a small shop and have a need for a little database, what do you use? Is there a default now? Notion?
>"If you’re a small shop and have a need for a little database, what do you use?"
not the rest of the comment. mea culpa for not quoting that specific Q.
Edit: as for the rest of it, I love using Obsidian for ~everything. It's not a database, but it does support queries and rendering of tabular data, which meets all my admittedly modest needs.
(if a true db is required, some ppl like logseq which has some feature overlap w obsidian but is db-driven)
A solution would probably be Airtable.
The FileMaker example I saw was really for a legacy shop that was primarily used for existing applications. Nothing new was being added.
But I’m sure there are more examples in the wild than I would have seen. I was curious what the larger HN community has seen or has experience with.
I mean, for me, I’d probably put something in a SQLite database and build a simple web GUI on top of it. But I know that’s an option. What does a typical office worker do these days? Put everything in Excel? (That’s probably the answer)
While it's been 20+ years since I dealt with either, you can create table, get a navigable (and perhaps other features), and a CRUD detail screen in just a few minutes of drag and drop.
And it's right there, on your machine, no cognitive load about, well, anything, and ready to go. Another 10 minutes and you have a printable report spewing out on your laser printer.
It's quite a first step to go beyond the wizard based stuff into BASIC and such, but the fundamentals are there. And the fundamentals are useful out of the box.
You can set up a usable Access DB and MS Word Mail Merge in probably 1/2 hour of reading some tutorials.
Finally, out of the box, the screens look "ok". Your collection of fields conveniently fill the window nicely. You don't have a 21" x 12" white, barren canvas with Name, Address, C/S/Z and two buttons crammed up in the upper left corner. "Gee why is the font so small?" So now you don't have to fall down the rabbit hole to try and make your simple form even baseline "presentable".
It is curious that MS (afaik) does not have a way to drag and drop an Access application and have it "deploy" to the web, and (afaik), Access isn't part of Office 365 either.
It is about as expensive as it ever was.
A proper PC or Apple device, proper being the keyword, not throwaway gear under 500 €, is as expensive as always, when buying hardware with 5 to 10 years expected lifetime in a professional setting.
In terms of hardware, a Macintosh Plus vs a MacBook Neo. The latter is many orders of magnitude superior in any metric you could possibly imagine, and it's 1/10th the price in real dollars. Even if you insist on a "serious" laptop it's still 1/4th the price.
Year Example Price Real 2026
---- ----------------------- -------- ----------
1986 Compaq Portable II (286) $3,500 $10,700
1996 Dell/Gateway Pentium 166 $2,500 $5,300
2006 Dell XPS (Core 2 Duo) $2,200 $3,650
2016 Dell XPS 15 $1,500 $2,100
2026 Dell XPS 14/16 $2,000 $2,000
Year Example Price Real 2026
---- ----------------------- -------- ----------
1986 Macintosh Plus $2,599 $7,900
1996 Power Macintosh 7200 $2,000 $4,300
2006 20" iMac $1,699 $2,800
2016 13" MacBook Pro $1,699 $2,360
2026 14" MacBook Pro (M5) $1,999 $2,000
Year Example Price Real 2026
---- ----------------------- -------- ----------
1986 Novell NetWare $3,000 $9,100
1996 Windows NT Server 4.0 $1,100 $2,400
2006 Windows Server 2003 $1,000 $1,660
2016 Windows Server 2016 $900 $1,250
2026 Linux $0 $0
Year Example Price Real 2026
---- ----------------------- -------- ----------
1986 Early pro NLE systems $50,000 $152,000
1996 Adobe Premiere 4.2 $800 $1,700
2006 Final Cut Pro $1,000 $1,660
2016 Final Cut Pro X $300 $420
2026 Da Vinci Resolve $0 $0
And all of these tables are actually unfair because the newer stuff is way, way, way, way better than any of the older stuff. If we were being fair, the old computers should be absolute top-of-the-line models and the 2016/2026 models should be a Raspberry Pi.MacBook Neo is a nothing to talk about with its 8 GB and phone motherboard, I specifically mentioned "A proper PC or Apple device, proper being the keyword, not throwaway gear under 500 €, is as expensive as always, when buying hardware with 5 to 10 years expected lifetime in a professional setting."
Neo isn't such device, my current hardware has 32 GB.
Your examples miss the relation of salaries, life cost and related percentage to hardware prices, per country.
Exactly my point. Thank you. Computers are so much more affordable now. The remainder of your post seems to be about me mentioning the Neo as an extreme case despite me ultimately ceding to your arbitrary criteria and selecting the M5 MacBook Pro as the point of comparison.
Again, comparing it to a Mac Plus or a 286, or a Pentium 166. Are we even being serious here?
> Neo isn't such device
Absolutely it is, and then some. You're just spoiled by your fancy 32 GB computer because — again, proving my point about affordability — computers are incredibly cheap now and they keep getting cheaper in real terms.
Calling the Neo "throwaway" is an incredibly privileged take. There's no reason to expect it won't have a comparable lifespan to any of the computers listed. It has a fantastic keyboard, comparable to the best laptop keyboards. If you don't agree, that's probably because you don't like laptop keyboards. So don't get a laptop.
You did have one valid point though, the Neo does have a small motherboard. That's unforgivable.
I created my bibliographic database with HyperCard. And I still miss it. HyperCard's attractiveness was the easy UI creation. FileMaker wasn't bad, but a bit more limited UI wise. And sqlite, while a phantastic DB misses the easy UI.
There's a zillion of under/over-developed solutions. Too much fragmentation for something to get enough traction to reach critical mass? Tricky space.
[1] https://en.wikipedia.org/wiki/Fourth-generation_programming_...
https://blogs.oracle.com/apex/organizations-ww-chose-apex
In that IDC survey it's the most popular low code product, over 2 million apps and half a million developers.
There's a SaaS version at apex.oracle.com with a free tier if you want to try it, and you can self-host it as well.
From that link, it seems that Salesforce and Microsoft also have offerings. That doesn’t surprise me at all. I’ve seen a bit of MS PowerApps, but generally discounted it as I thought that app should have been a proper DB. Now I’m thinking that I may have been a bit hasty.
Decker: A reincarnation of HyperCard with 1-bit graphics - https://news.ycombinator.com/item?id=40292181 - May 2024 (78 comments)
Decker – A HyperCard Replacement - https://news.ycombinator.com/item?id=38985409 - Jan 2024 (36 comments)
Decker, a platform that builds on the legacy of Hypercard and classic macOS - https://news.ycombinator.com/item?id=33377964 - Oct 2022 (88 comments)
I think this is the first time I've seen this hit #1 which is nice
I want HyperCard where I can build out a stack or whatever and actually present it to people as a real and tangible thing. I love living in the past as much as anyone else, but this is a little disappointing.
There are over 300 games, zines, visual novels, and toys built with Decker on itch.io: https://itch.io/games/tag-decker
Last month saw the first game made entirely in Decker published on Steam: https://store.steampowered.com/app/4693460/The_Dreams_in_the...
We are neither living in the past nor wasting our time.
A few years ago, I think there would have been a market for a HyperCard-inspired tool that targeted modern technologies - probably web tech.
Today, I guess vibecoding is what HyperCard was in the 80s and 90s, the tool you can use to quickly and easily build a little program that fills your specific need.
They never hacked color into HyperCard 2 since their plans for HyperCard 3 were too grand - it was going to be a part of QuickTime, so that HyperCard stacks would be multimedia applications delivered as QuickTime movies, including embedding on the web. This was when Apple was spiraling though and it got cut.
To me, a properly modern "Hypercard" would be something like if Marimo and Pygame had a baby, and that baby was IDLE except it didn't suck.
Hmm, I put that poorly, and can't edit now. I'm really thinking more about the entire Tkinter stack, and the way that IDLE is used both to demonstrate it and to provide a way to edit the Python code needed to interact with it.
I think the bigger problem was when Apple stopped shipping the Hypercard development environment and instead shipped only Player. Also when they stopped developing or supporting the environment entirely.
They had a really cool thing going, but since it didn't contribute directly to the bottom line corporate had it killed.
HyperTalk is one of the most accessible languages for beginners I've ever seen. Sure it was primitive and had somewhat weak data organization capabilities, but if you're like 6 it's pretty incredible for your experience to be:
1. Open a blank script
2. Drag a field on the screen and name it "myname"
3. Drag a button on the screen, open up it's script and see:
on mouseUp
end mouseUp
4. You then enter the following two lines between those two lines:
ask "What is your name?"
put it into card field myname
5. Then you go back and click the button and a dialog box appears asking your name and when you type it in an hit enter the name appears in the field you created.
That sort of directness is lost in modern development environments. The concept that the button's script lives inside of the button, and in fact everything on the page could have its own script. The page itself also has script, even the stack itself. Your code can of course call code in other objects if need be (typically at the page or stack level), and there is a whole message passing thing happening in the background. It's by far the most intuitive programming environment I've ever seen. It has the kind of immediate impact that helps to save off boredom or feeling like there's too much homework before the fun starts.In the day people complained about the syntactic sugar in HyperTalk, but I think it was just right for the target audience. They did have more of a point about the difficulty in managing structured data, often having to store things in hidden fields referenced by line and word number or hacks like that.
The most incredible part is this was all in an application that came with the OS. It was the perfect opportunity for a bored kid to randomly come across it and discover a lifelong passion. There was nothing to install, no product to buy first--it was just there, asking to be discovered. And even if your parents weren't about to buy a reference book you could open up other stacks and start reading the code to learn the language. Because most scripts were small and self contained (remember that they were stored at the widget level) this was a legitimate way to understand the basic syntax and keywords.
on click do
end
And filling it in with an equivalent script would be something like: on click do
myname.text:alert["What is your name?" "string"]
end
There is slightly more "programming-language-like" punctuation to Lil than HyperTalk, but simple examples are still simple, and in my opinion having first-class collections (lists, dictionaries, tables) and a richer set of APL-like operators makes Lil scale up much better to more complex programs. As a child I recall struggling tremendously with HyperTalk's "almost-english" structure; it made scripts easy enough to read and understand, but provided very little help when it came to writing new scripts.Decker has a similar Widget -> Card -> Deck event bubbling hierarchy to HyperCard, and in my opinion retains much of the same directness and simplicity for simple applications. The differences in approach won't please everyone, but they are all carefully considered, and have been refined over time based on feedback from the user community. Decker is a living, growing platform!
But your example also includes a period, a colon, square brackets, and a space where someone might expect a comma. It's going to look a lot more daunting to a first time programmer. Simply knowing when to use a period vs. the colon is not going to be obvious.
The colon (read aloud as "becomes" or "gets") is Lil's assignment operator. That single line,
myname.text:alert["What is your name?" "string"]
prompts for input and then stores the result in a card field. If you wish, you could also write it as: on click do
name:alert["What is your name?" "string"]
myname.text:name
end
Learning the syntax for calling functions is partially scaffolded by the "Action..." dialog that button widgets offer for constructing simple button scripts with a GUI: on click do
go["Next" "BoxIn"]
play["sosumi"]
end
Users can rely on the system to write code for them initially, and then slowly dip their toes into more complex compositions. Whereas HyperTalk has custom syntax for almost every programming construct and built-in function or feature, the Lil grammar is simple and uniform. Where symbols appear, they have a single meaning. Decker's "Listener" REPL allows the user to have a back-and-forth "conversation" with the Lil interpreter and see responses juxtaposed with their questions, versus the HyperCard "message box" which shows only user input or a single system response.Ultimately, every programming language does require some degree of handholding and learning, and that's why Decker comes with dozens of example decks to take apart and study. The user community has also furnished some truly fantastic interactive tutorials:
https://itch.io/t/6632495/decker-programming-tutorials-video...
Graphics via creating HyperBasic XFCN's IIRC.
One was a simulator for trading off various optical sensors that our Director enjoyed using.
Again, IIRC, graphics output was also in EPS, that the tech pubs group could import directly into reports.
Another was a form, using built-in fields, that my boss stole (YAY) for creating documentation for a progranning project we were working on.
Output was in Postscript, basically in Unix manpage format.
When your boss steals the documentation job, it's a big win.
Fantastic rapid prototyping environment with no-brainer UI elements and persistent database.
Scripting language? Javascript? Python?
SDL3 for cross-platform rendering, audio…
Should the "cards" just be a subset of HTML?
Etc…
Which answer after searching is yes and no:
https://beyondloom.com/decker/fonts.html
We also recently gained a library for working with vector-based text:
You can create "contraptions" as specialized data containers/editors for specific applications:
http://beyondloom.com/decker/decker.html#customwidgets
For example, "WigglyKit" offers several contraptions which operate on a shared convention for representing animated images:
http://beyondloom.com/decker/wigglykit.html
You can also represent composite data as a series of cards in a deck, or use cards as encapsulated "objects" that you communicate with via events:
http://beyondloom.com/blog/sketchpad.html#cardsarerecords
In a pinch, you can also easily encode arbitrary data in fields as a JSON superset with their ".data" attribute.
“classic Mac OS”
not
“classic macOS”
This is beautiful. I loved Hypercard when I was a kid. If they added networking to it, it would have been superior to web browsers!
Please people, have some joy and stop taking people down a peg for vibe coding apps. Let people have fun again for once.
Just don't put it in production or in a work flow where there could be consequences if (randomly) nondeterministic.