Startup 3: Draupnr

This is part of a series on Building 12 Startups in 12 Months.

This is product number three: Draupnr!

Serving a folder full of html files will always be orders of magnitude faster than any dynamic, scripted site. It also requires orders of magnitude less in resources and thereby cost. Also, this paradigm allows better integration with serverless deployment and better integration with functional paradigm compute services especially. This will come up again in later projects.

But, it is hard to modify content on large sites with hundreds of pages, when the pages are all static. Nonetheless, we go to incredible lengths to simulate the speed of static pages through elaborate caching schemes. There are entire industries built on the idea of serving static versions of dynamic sites.

I have been experimenting recently with the ability to automatically, periodically fetch some data sources and then insert things into templates and generate static html files based on the data. The performance boost versus a dynamic PHP site is enormous, and the important parts can still be dynamic using JavaScript, ajax, or even PHP (ie. Facebook integration, etc.).

The Name

There is an old Norse story about a gold ring owned by Odin. Every ninth day, draupnir dripped eight copies of itself. When I was thinking about what I want this project to do, the ring from this story jumped out as the perfect name for this project.

How It Works

Periodically, the system tries to fetch various data sources and perform some work on them, then it injects the results into a series of templates and outputs that as a series of static html files.

This happens automatically on a set schedule, or whenever the admin wants to make a change to the site. This means the site is effectively just a set of static files but with all the benefits of a dynamic application.

Obviously this does not work for every type of application. But it is perfect as a cms for a blog or some other type of data-driven content which updates infrequently enough as to gain the benefits of this approach. This idea was inspired in large part on my previous work on and by Ev Bogue’s work on metalsmith.

The product is available for free on Github and there is a live example at which automatically creates a static html page each day with a random design quote fetched from a public API.

Startup 2: RSI Alert

This is part of a series on Building 12 Startups in 12 Months.

This is product number two:!

What Inspired This Project?

I follow a few dozen stocks and do some day trading in my spare time. Working on a previous project Securities.Science, I did some research into strategies using RSI to decide when to buy and sell stocks. I got some feedback from the first users of that project about how they would like to be able to receive email alerts at certain indicator points.

For example, one simulation on Securities.Science explored trading based on the RSI-14, or the RSI for the previous 14 trading days. Whenever the RSI-14 of a stock is below 30, the simulation buys, and then sells at close on the same day. Run against the previous year’s data, this simulation indicated a 136% return. This number could easily be improved upon by selling at a better point than close, but that’s another story.

Initially, I explored trying to add email alerts to queries inside Securities.Science, but it really isn’t set up to work that way. Users construct arbitrary datasets which would be difficult to integrate into a mail trigger system, and there is obviously potential risk of abuse with automated outbound emails. I decided to build a new product which focuses on only this one type of automated email.

This product is very simple compared to the other ones I am considering for this challenge. It just shows a list of a few high-return securities and their RSI-14 as of the previous close. Users can sign up to receive email alerts each day letting them know when the RSI-14 of any of the securities is below 30.

What Exactly is RSI?

From Investopedia:

“The relative strength index (RSI) is a momentum indicator developed by noted technical analyst Welles Wilder, that compares the magnitude of recent gains and losses over a specified time period to measure speed and change of price movements of a security. It is primarily used to attempt to identify overbought or oversold conditions in the trading of an asset…

The RSI provides a relative evaluation of the strength of a security’s recent price performance, thus making it a momentum indicator. RSI values range from 0 to 100. The default time frame for comparing up periods to down periods is 14, as in 14 trading days…

Traditional interpretation and usage of the RSI is that RSI values of 70 or above indicate that a security is becoming overbought or overvalued, and therefore may be primed for a trend reversal or corrective pullback in price. On the other side of RSI values, an RSI reading of 30 or below is commonly interpreted as indicating an oversold or undervalued condition that may signal a trend change or corrective price reversal to the upside.”

Straightforward Monetization

Monetization will be very straightforward; ads on the site and maybe in emails. This project also has the potential to expand into other verticals for various other things people may want automated emails about.

Lack of Similar Products
Means Competitive Advantage

As far as I am aware, there is no other product which does what this does, or I would be using that myself rather than building this.

A few companies have put together similar models for other topics, like Medium which offers a daily email containing some stories they have picked for you to read.

I was also partially inspired by IFTTT which allows you to set up automated emails for lots of different things, but it all requires domain expertise and setting it up involves some degree of technical complexity. This product and any future expansion is designed to be idiot-proof, with a broad market in mind.

Future Features

One obvious next step would be to integrate this with my upcoming current-events project; automatically including relevant news content related to these data would be valuable data for users to analyze along with the RSI-14 data.

Startup 1: Securities Science

This is part of a series on Building 12 Startups in 12 Months.

This is number one: Securities.Science!

What Inspired This Project?

My first startup in the series is Securities.Science. It lets users run queries against historic stock trading data in order to test theories and strategies. All data is public and everyone can see the work that others are doing.

This started with my coworker Luke Leggio and I trying to collaborate on developing strategies for trading leveraged commodity ETFs on RobinHood. I was very frustrated with the few tools and communities that exist for this purpose.

I had tried Openfolio which has since pivoted to a totally different kind of product. At the time, they let you share your trading activity and results with others and compare to how their strategies worked out for them. The problem was that it was terribly buggy and often reported things incorrectly. I wrote to their support people several times, even offering to do the work of fixing their products for them because the problems were so obvious. (Numbers being negative instead of positive when pulled from certain APIs, etc.) Some features like search and viewing the top performers didn’t work at all. They had no interest in making their product work, so I decided to make my own as an alternative.

Securities.Science automatically pulls data from various public APIs and allow users to write SQL queries that implement securities trading strategies. Their queries will pair with simple visualization tools in order to show how each strategy works over time.

First Steps

The site is now live, and the source code is all available on Github. Anyone can sign up for free and start running queries against historic datasets.

I have included lots of different tickers including all of the leveraged commodity ETFs which I follow, along with all the top stocks millennials like according to Business Insider. Adding more is trivially easy, but I didn’t want to just add thousands of tickers because of the maintenance overhead. And because most of them are not particularly interesting.

I wrote this as a plugin for Astria, a simple web application framework I have been developing for almost a decade. The code is very simple and hopefully distilled to the minimum necessary to explain the content. Check it out!

Next Steps

There are a few next steps that jump out at me if this finds adoption.

Expanded Datasets

The page describing available data encourages the user to reach out to me if they want to see any additional data sources. Eventually, users should be able to add data sources for whatever they want with simple tools.

Content Development

Scraping and collating data is one thing, but presenting it in a format which brings in organic traffic is a separate art. Other news and data sources relating to each stock could be integrated so that users can focus on particular industries, commodities, or ETFs and get more information than just trading data.

Execution Integration

There are lots of great APIs which would allow integration with stock brokerages so that users can set up triggers for buying and selling based on their models in the app. It would be fun to add that later.

Machine Learning and Other Advanced Analytics

The first version of the product only features SQL queries for strategy development. This enables lots of interesting and basic strategies to be implemented and tested, but adding machine learning and other advanced analytics features would be another order of magnitude in capability for users.


The Levels Challenge

Pieter Levels has been a very inspirational figure for me. I have been thinking a lot about his series of blog posts, “Building 12 Startups in 12 Months.”

I really enjoyed reading these, and I really liked his definition of what a startup is. In this context, a minimum-viable-product which is publicly available for people to use online. That definition is a huge accomplishment. Creating something is the most important and valuable thing we can do. In fact, there are whole ideological identities based on this idea. Another Peter, Peter Thiel, calls this Zero To One, the title of his book; the act of creating something that has never existed before. He calls it the miracle that we will need to accomplish over and over in order if we want the future to be better than today.

Like many of us, I am often overcome by choice-paralysis over all the options I have, and end up doing nothing because I am overwhelmed by all the ideas I come up with.

Obviously there is a lot more to building a company then the MVP, but this wasn’t about building some global zaibatsu like Facebook or Google in his spare time, it was about starting something. Pieter’s 12 startups may turn into successful and self-sustaining businesses, but that wasn’t necessarily his goal. It was about shipping multiple products quickly.

Like most engineers I know, I have a long list of “someday” projects and ideas. I decided to take a long look at that list and distill it down to a few of the best, easiest to start projects in order to challenge myself to stop adding things to the list and start checking things off the list.

Looking at the startup products Pieter built during his 12 month challenge, a lot of them do not seem very complicated or likely to become revenue-producing, but the point is that he built them. AND that at least some of them have some chance of making money, and one or two of them stand a good chance of making a lot of money. He often comments that he makes over $10k/month from some of these projects and that that is so simple and easy an accomplishment that literally anyone ought to be able to do it.

Here is my final list;