<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: r4nkt.com</title>
    <description>The latest articles on DEV Community by r4nkt.com (@r4nkt).</description>
    <link>https://dev.to/r4nkt</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F3421%2F0cac067b-4ec1-4248-bd7e-87bd8400e5d0.png</url>
      <title>DEV Community: r4nkt.com</title>
      <link>https://dev.to/r4nkt</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/r4nkt"/>
    <language>en</language>
    <item>
      <title>Get your streak on...!</title>
      <dc:creator>Travis Elkins</dc:creator>
      <pubDate>Fri, 09 Apr 2021 12:24:58 +0000</pubDate>
      <link>https://dev.to/r4nkt/get-your-streak-on-3fc6</link>
      <guid>https://dev.to/r4nkt/get-your-streak-on-3fc6</guid>
      <description>&lt;h3&gt;
  
  
  Get your streak on...! 🚀
&lt;/h3&gt;

&lt;p&gt;While this feature wasn't considered necessary for r4nkt's initial release, it was always considered a must-have. Well, over the last week, initial support for streaks has been deployed to production. This makes it very easy for you to define achievement criteria in terms of streaks.&lt;/p&gt;

&lt;p&gt;We are very excited to have rolled this functionality out and hope that you and your users will enjoy the new possibilities that are now available.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are streaks? 🤔
&lt;/h3&gt;

&lt;p&gt;In terms of r4nkt achievement criteria, a streak is when a player has performed some sort of action(s) over a consecutive series of time intervals. Some examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A salesperson has closed at least one sale for 10 days in a row.&lt;/li&gt;
&lt;li&gt;A student has passed the daily quiz 5 days in a row.&lt;/li&gt;
&lt;li&gt;A user has walked at least 100 steps 8 hours in a row. &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How does it work? 😯
&lt;/h3&gt;

&lt;p&gt;R4nkt's streaks are defined on the individual criteria. The criterion resource has a new property: &lt;code&gt;streak&lt;/code&gt;. Like similar properties, it takes a string that matches the following pattern: &lt;code&gt;interval:amount&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;interval&lt;/code&gt; can be one of the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;days&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hours&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both require an amount, which indicates the number of days or hours that the streak should be.&lt;/p&gt;

&lt;p&gt;So, if we take some of the examples from above, we can see how easy it is to define streaks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;days:10&lt;/code&gt;: 10 days in a row.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;days:5&lt;/code&gt;: 5 days in a row.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;hours:8&lt;/code&gt;: 8 hours in a row. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Very simple and straightforward...! 🤓&lt;/p&gt;

&lt;h3&gt;
  
  
  Take it to the next level
&lt;/h3&gt;

&lt;p&gt;For many, the basic use of streak criteria will be sufficient, but when you combine them with &lt;a href="https://docs.r4nkt.com/concepts/criteria-conditions"&gt;criteria conditions&lt;/a&gt; and &lt;a href="https://docs.r4nkt.com/concepts/custom-data-reference"&gt;custom data references&lt;/a&gt;, then you can really start to come up with very complex and interesting achievements. There are &lt;strong&gt;so&lt;/strong&gt; many possibilities...! 😃&lt;/p&gt;

&lt;p&gt;Imagine that you develop an e-learning application or service and your students are allowed to take a daily quiz. You could define an achievement for students that pass the daily quiz by 95% or more for three straight days.&lt;/p&gt;

&lt;p&gt;To do so, you would need your achievement, which we'll call &lt;a href="https://en.wikipedia.org/wiki/Triple_(baseball)"&gt;The Triple&lt;/a&gt;, your primary &lt;a href="https://docs.r4nkt.com/concepts/criteria-groups"&gt;criteria group&lt;/a&gt;, and a single &lt;a href="https://docs.r4nkt.com/concepts/criteria"&gt;criterion&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You'll also have an &lt;a href="https://docs.r4nkt.com/concepts/actions"&gt;action&lt;/a&gt;, which might be called Pass Quiz and give a custom ID of &lt;code&gt;pass.quiz&lt;/code&gt;. You will &lt;a href="https://docs.r4nkt.com/concepts/activities"&gt;report it&lt;/a&gt; whenever a player passes a quiz. And, you'll want to pass the result in the activity's custom data, like so:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"custom_data"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"result"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;97&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, your criterion will have the following properties:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;custom_action_id&lt;/code&gt;: &lt;code&gt;pass.quiz&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;rule&lt;/code&gt;: &lt;code&gt;gte:1&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;streak&lt;/code&gt;: &lt;code&gt;days:3&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These properties let r4nkt know that the criterion is met when the player has passed at least one quiz each day for three (or more) consecutive days.&lt;/p&gt;

&lt;p&gt;But what if they don't get a result of 95 or more...?&lt;/p&gt;

&lt;p&gt;Well, that's where criteria conditions come into play. For this scenario, you'll have a criteria condition on either your criteria group or your criterion with the following definition:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"conditions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"groups"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"conditions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="s2"&gt;"activityData:result,gte,95"&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So, by defining the &lt;code&gt;activityData&lt;/code&gt; criteria condition, you make sure that only activities that have a custom data &lt;code&gt;result&lt;/code&gt; of 95 or greater will be considered. This is applied and then the criterion's rule and streak are considered. That is, once all "Pass Quiz" activities for the player that did &lt;em&gt;not&lt;/em&gt; meet the criteria conditions (result &amp;gt;= 95) have been filtered out, then r4nkt will look to see if at least one such activity exists per day for three (or more) consecutive days.&lt;/p&gt;

&lt;p&gt;That's pretty great, don't you think. 😜&lt;/p&gt;

&lt;h3&gt;
  
  
  I want to learn more
&lt;/h3&gt;

&lt;p&gt;You can check out &lt;a href="https://docs.r4nkt.com/concepts/criteria#streak"&gt;our ever-improving documentation&lt;/a&gt; or you can also join our &lt;a href="https://discord.gg/3gMfd3eyHY"&gt;Discord server&lt;/a&gt; and ask for help or make suggestions. ⚡️&lt;/p&gt;

&lt;h3&gt;
  
  
  Coming Soon
&lt;/h3&gt;

&lt;p&gt;There are still more streak-related features that are in the pipeline. Obviously, we're going to expand the available time intervals and you will soon have the ability to define streaks in terms of the following time intervals:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;weekly&lt;/li&gt;
&lt;li&gt;monthly&lt;/li&gt;
&lt;li&gt;yearly&lt;/li&gt;
&lt;li&gt;minutely...? 😜&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;More may be added, but we'll allow your needs to drive those efforts. 🤓&lt;/p&gt;

&lt;p&gt;If you want to be notified when these new features are added, if you'd like to suggest one, or if you'd just like to be kept abreast of what we're doing, then &lt;a href="https://twitter.com/r4nkt"&gt;follow us on twitter&lt;/a&gt;. We'll keep you posted. 😎&lt;/p&gt;

</description>
      <category>saas</category>
      <category>gamification</category>
      <category>achievements</category>
      <category>startup</category>
    </item>
    <item>
      <title>Open for Business</title>
      <dc:creator>Travis Elkins</dc:creator>
      <pubDate>Thu, 04 Mar 2021 18:28:19 +0000</pubDate>
      <link>https://dev.to/r4nkt/open-for-business-2mfc</link>
      <guid>https://dev.to/r4nkt/open-for-business-2mfc</guid>
      <description>&lt;p&gt;Today, after a couple of months of testing and research, &lt;a href="https://r4nkt.com"&gt;r4nkt&lt;/a&gt; officially opened up for business.  That is to say, plans and their major features were selected, pricing was determined, and the site was updated as such.&lt;/p&gt;

&lt;p&gt;In selecting plans, we wanted the differences between them to be as few as possible and to be something that made sense for the customer as well as for r4nkt.&lt;/p&gt;

&lt;p&gt;Initially, we looked at  imposing limits on the various gamification resources.  R4nkt has resources like achievements, rewards, leaderboards, and players.  This seemed like an easy place to start.  But, any limits that were selected seemed somewhat arbitrary and very likely to be a bad fit for a lot of potential customers.  Some customers might want to define a lot of achievements or maybe they have a lot of players, but they wouldn't actually expect to see much in terms of player activity.  Other customers might just want to define a few achievements, for example, but would expect to see a great deal of player activity.  So, customers like these would have to pay a lot more for what they would be getting, in terms of features, than they would actually need or use.  Or, at a minimum, they might feel this way, and that is something we would rather avoid at r4nkt.&lt;/p&gt;

&lt;p&gt;Over and over again, however, we kept coming back to the number of API requests as a way to measure usage.  This seemed to translate quite well for us in determining price and for the customer in determining which plan to use.  It seemed much more natural for our anticipated customers, too, in a way where each customer seemed more likely to feel like they could make a great choice for their particular project.&lt;/p&gt;

&lt;p&gt;It's true that some customers might define a massive amount of resources, but we have some reasonable limitations on the big "resource hogs", which are r4nkt's &lt;a href="https://docs.r4nkt.com/concepts/actions#reactions"&gt;action triggers&lt;/a&gt; and &lt;a href="https://docs.r4nkt.com/concepts/criteria-groups#criteria-groups"&gt;nested criteria groups&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The only other aspect that we considered worth using as a distinction between plans was the number of team members that one could have.  All subscriptions are team-based, but we thought it made sense to limit the lesser-priced plans to fewer team members than the greater-priced plans.  Our conclusion from the feedback we received is that customers that anticipated a higher amount of player activity also had a greater interest in support for larger teams.  Those that anticipated a lower amount of player activity didn't have the same kind of interest when it came to team member limitations.&lt;/p&gt;

&lt;p&gt;So, the other side of this coin has to do with costs, of course.  At a high level, r4nkt's costs come from usage, which is primarily from storage and compute time.  After observing how the service is used, determining the costs on a per-request basis was relatively straightforward.  And so, without getting into details, it was a simple matter of basic mathematics to calculate our anticipated costs, which then pointed us to where we should be looking to set our prices.  Coupled with a few other factors, some concrete plans started to emerge...plans that we were confident would be good for our customers, good for r4nkt, and easy to understand for everyone.&lt;/p&gt;

&lt;p&gt;A final point to make has to do with the future.  R4nkt has an obvious interest in staying in business, as well as a goal of making good sense to its customers.  A fair price will always be charged, but that doesn't mean that there can't be flexibility in how it delivers its services.&lt;/p&gt;

&lt;p&gt;R4nkt will continue to look at usage and costs.  R4nkt will continue to listen to our customers' feedback and suggestions.  We will make adjustments going forward to our plans, but they will always -- hopefully -- be clear, simple, and fair.  R4nkt will always be good value for money.&lt;/p&gt;

&lt;p&gt;Check out &lt;a href="https://r4nkt.com"&gt;r4nkt&lt;/a&gt;.  Follow us on &lt;a href="https://twitter.com/r4nkt"&gt;Twitter&lt;/a&gt;.  Let us know what you think. 🤓&lt;/p&gt;

&lt;p&gt;(Originally posted at &lt;a href="https://www.indiehackers.com/product/r4nkt/open-for-business--MUyRHYgpS6pxmHTOCH0"&gt;https://www.indiehackers.com/product/r4nkt/open-for-business--MUyRHYgpS6pxmHTOCH0&lt;/a&gt;)&lt;/p&gt;

</description>
      <category>saas</category>
      <category>gamification</category>
      <category>openforbusiness</category>
      <category>achievements</category>
    </item>
    <item>
      <title>Improved Gamification: Two New Criteria Conditions</title>
      <dc:creator>Travis Elkins</dc:creator>
      <pubDate>Tue, 16 Feb 2021 16:17:52 +0000</pubDate>
      <link>https://dev.to/r4nkt/improved-gamification-two-new-criteria-conditions-1bke</link>
      <guid>https://dev.to/r4nkt/improved-gamification-two-new-criteria-conditions-1bke</guid>
      <description>&lt;p&gt;We just published a couple of simple blog posts for &lt;a href="https://r4nkt.com"&gt;r4nkt&lt;/a&gt; describing two new criteria conditions.  Check them out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://r4nkt.com/blog/new-criteria-condition-days-of-week"&gt;https://r4nkt.com/blog/new-criteria-condition-days-of-week&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://r4nkt.com/blog/new-criteria-condition-months"&gt;https://r4nkt.com/blog/new-criteria-condition-months&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're wondering what criteria conditions are, they are a simple way that r4nkt allows you to define the criteria that must be met in order for achievements to be earned in your game or app.&lt;/p&gt;

&lt;p&gt;R4nkt has &lt;a href="https://docs.r4nkt.com/concepts/criteria-conditions"&gt;over a dozen individual criteria conditions that you can use&lt;/a&gt;.  We will continue to add to the list.&lt;/p&gt;

&lt;p&gt;Combining and nesting criteria conditions and rules gives you a great deal of possibilities when it comes to defining your achievements.  It's just one of the things that sets r4nkt apart. 😎&lt;/p&gt;

&lt;p&gt;We also have plans to introduce the ability to use your own custom data in rules and conditions, which will dramatically expand the kinds of criteria you can define for your achievements. 🤯&lt;/p&gt;

&lt;p&gt;Follow us here or &lt;a href="https://twitter.com/r4nkt"&gt;on twitter&lt;/a&gt; or &lt;a href="https://r4nkt.com"&gt;sign up for early access&lt;/a&gt;.  Let us know what you think...! 🤓&lt;/p&gt;

</description>
      <category>gamification</category>
      <category>saas</category>
      <category>api</category>
      <category>achievements</category>
    </item>
    <item>
      <title>What will r4nkt do for you and your app?</title>
      <dc:creator>Travis Elkins</dc:creator>
      <pubDate>Tue, 22 Dec 2020 11:41:47 +0000</pubDate>
      <link>https://dev.to/r4nkt/what-will-r4nkt-do-for-you-and-your-app-4ipo</link>
      <guid>https://dev.to/r4nkt/what-will-r4nkt-do-for-you-and-your-app-4ipo</guid>
      <description>&lt;p&gt;If you're a developer who has thought about introducing gamification features into your app or website, you will want to take a look at &lt;a href="https://r4nkt.com"&gt;r4nkt&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Check &lt;a href="https://r4nkt.com/blog/what-will-r4nkt-do-for-you"&gt;this article&lt;/a&gt; out for a bit more insight into what a service like r4nkt can do for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://r4nkt.com/blog/what-will-r4nkt-do-for-you"&gt;https://r4nkt.com/blog/what-will-r4nkt-do-for-you&lt;/a&gt;&lt;/p&gt;

</description>
      <category>saas</category>
      <category>gamedev</category>
      <category>gamification</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
