Tarot.js – 2024 Progress Report

#webdev #webapps #progressivewebapps #programming #tarot #tarotapp

Two years ago I signed up for a front-end web development class. Granted, I've had plenty of experience over the years with building websites and whatnot, I've been playing around with that kind of stuff since I was in grammar school. Nonetheless I'm still interested in learning more, especially when it comes advanced programming techniques, new technologies, and different methods for building websites. React was the one popular method that kept coming up. So that's what I decided I should learn. Yet, in over two years, I haven't built a functional website using React (other than the demo project we put together in the boot camp I did). That being said, the project just before my final project was a virtual Tarot deck. This post is both the story of, and the reflection on, that project.

Keep in mind though, it's still a work in progress. I'm still developing it and adding features to it as well as improving the interface. But the current version accomplishes what I wanted; it's a mobile-centric web app that anyone can access.

I originally built Tarot.js with vanilla ES5/6, and I was able to nail down some crucial concepts and core mechanics during that period.

In the past I would have just gone through it myself without the boot camp, but by learning alone, you don't get the feedback needed to REALLY improve.

You may have noticed that the project does not use a React workflow. I understand what React has done for Facebook and other larger enterprises, but it's a very unique use case when you consider the majority of websites out there. MOST websites do not need to use React to function properly. And there is quite a bit that you can do on the web that doesn't require a database or someway for people to login to your service, or even query an API. All of those are useful skills, definitely, but the parameters are always changing. At the end of the day, all modern JavaScript projects are just an abstraction and they generally compile down into vanilla HTML/CSS/JS.

As it turns out, whatever is popular or is currently being used is bound to be replaced by something else even better, sooner rather than later. SO, the important skills that I learned for when it comes to web development (specifically for front-end work) is to show that you can adapt, continually learn, and make definitive decisions about how to proceed with a project. As long as your decisions provide tangible results for you and your team, then that's what truly matter, not the framework or the ideology you're ascribing to. More importantly though, it has been in pursuit of simply completing a project that I've decided to go the development route that I've gone down. It's a mishmash of all the techniques that have caught my attention and interest over the years. All the stuff that I find fun to use and do. It's also a fairly simple workflow.

Although the app is developed solely for mobile use right now, I believe that it can be tailored for a desktop experience in the near future. And I may look into that sooner rather than later, but I was thinking of the TikTok/Shorts/Reels format, and tarot readers on those platforms using the virtual deck... I do ask for a donation for the compiled downloads, but if you're savvy enough, feel free to download the source and compile you're own version. It'll be interesting if I ever find any other people who are interested in a Tweego workflow as much as I am.

[Twine]() was a very deliberate choice... Traditionally, Twine has been used for building interactive fiction. I think a digital book format that is both web-based and has interactive qualities to it will be the format that wins out on a long enough timeline for what it is that I want to create and share with people. So long as the source can be rendered by most web browsers, I think I'm safe.

When I took the time to learn how to publish a physical book and I released my version of Ayn Rand's Anthem, the one thing that stuck with me was that epub3 format is just specialized HTML... As such, the Twine Story format serves the needs of humanity in much the same way, in the short term at least. It is a very robust format for sharing information in general, as we continue to transition to fully digital lifestyles.

Ghetto Classy Swordfish...

Now that the basic functionality of the deck works, I've been focusing on the little white booklet that always comes with your tarot deck. It gives you insight into the card and explains how to use them. The largest portion of the text is essentially done... All of the individual card explanations. However, I am going back through them and editing where I see fit. All of the definitions were taken directly from A.E. Waite's The Pictorial Key to the Tarot (1911), so there is some improvement that can be made to the text for a modern audience. Additionally, I'm incorporating the essay portions from that book as well as portions of Papus' Tarot of the Bohemians (1896) and S.L. MacGregor Mathers' The Tarot (1888).

I think Crowley's magick is still copyrighted, so if you're so inclined to learn that stuff, I would recommend Lon Milo DuQuette's work on the subject of the Thoth Tarot. It's top notch scholarship, and he is an author for Weiser Books, who is the company that holds the copyright to a lot of Crowley's stuff. Nonetheless, I'll endeavor to incorporate Astrological and Kabbalistic attributions where I'm able.

While working on the booklet portion of the app, I'm also going to work out the best way to take screenshots... I'd like a button in the app itself to make it easy for people to snap a picture of their spread and share it online. Additionally, I'd like to overlay some of the spread information on top of the cards at the time the screenshot is taken, or perhaps add another layer of information to the main interface that can be toggled on or off.

My wife said that I shouldn't worry about screenshots because most users will just use the function built into their phones. Regardless, having it built into the app encourages it.

In any case, I've much interested in your opinions. Should you have any trouble accessing the deck online to check it out, or if you have any comments on any part of the program and text, I'm more than happy to hear what you have to say. If it's something that I can fix or improve on, I'll definitely endeavor to do so if I think it will improve the product.