GithubHelp home page GithubHelp logo

glideapps / autotune Goto Github PK

View Code? Open in Web Editor NEW
75.0 75.0 6.0 463 KB

Automatically tunes apps and websites to improve outcomes

Home Page: https://autotune.xyz/

License: Apache License 2.0

TypeScript 97.16% Shell 2.29% JavaScript 0.43% Dockerfile 0.12%

autotune's People

Contributors

dvdsgl avatar philals avatar schani avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

autotune's Issues

use <auto-tune> instead of <autotune>

Sorry for a pretty bike-shedding ticket, but a small improvement would be to use <auto-tune> instead of <autotune>. The latter is an unknown html element and thus invalid, but the former is a custom element, so compliant :)

autocompletion for scenarios without explicit completion events

We should have an 'ambient completion', especially for HTML clients.

Candidates

  • Duration on page
  • Scroll to bottom of page
  • Click an internal link
  • Submit a form

Activation

We can consider making this automatic, for example, if you don't have an autotune attribute on any links or buttons, but this still would not catch if you have aututone.complete in JavaScript somewhere.

Manual activation:

<script>autotune.autocomplete()</script>

Error when printing table for experiments

An error occurs when printing an experiment for an app:

$ tune ls 8a77a2d6-326f-463e-baf8-ddcef1262016
...
TypeError: Cannot set property '0' of undefined
    at chunkedValue.forEach (/usr/local/lib/node_modules/autotune/node_modules/table/dist/mapDataUsingRowHeightIndex.js:49:35)
    at Array.forEach (<anonymous>)
    at cells.forEach (/usr/local/lib/node_modules/autotune/node_modules/table/dist/mapDataUsingRowHeightIndex.js:48:20)
    at Array.forEach (<anonymous>)
    at unmappedRows.map (/usr/local/lib/node_modules/autotune/node_modules/table/dist/mapDataUsingRowHeightIndex.js:39:11)
    at Array.map (<anonymous>)
    at exports.default (/usr/local/lib/node_modules/autotune/node_modules/table/dist/mapDataUsingRowHeightIndex.js:30:35)
    at Object.exports.default [as table] (/usr/local/lib/node_modules/autotune/node_modules/table/dist/table.js:126:51)
    at logTable (/usr/local/lib/node_modules/autotune/dist/cli/index.js:508:25)
    at /usr/local/lib/node_modules/autotune/dist/cli/index.js:372:25

Better CLI experience

  • When starting CLI and no user is known, give an intro that says "Use signup to create a new user, or login to log in"
  • Once confirmed, automatically create an app ID and link to a tutorial

Infer text-based experiment option names

When options in the experiment are implicitly-labeled, but only differ based on text content, detect this and use the text as the label (rather than using the hash):

<autotune>
    <h1>The glass is half full</h1>
    <h1>The glass is half empty</h1>
</autotune>

Visible experiment options with Turbolinks.js

Given the following setup:

import Turbolinks from 'turbolinks';
Turbolinks.start();
<autotune experiment="blurb">
  <p option="option-1">option 1</p>
  <p option="option-2">option 2</p>
</autotune>

<a href="#" data-autotune data-experiment="blurb">Go</a>

Steps:

  1. Initial page load, option 1 is shown
  2. Click on an internal link and visit page (via turbolinks)
  3. Click on the initial page link, both option 1 and option 2 are visible

Would love to hear some thoughts on how to solve this!

Make autotune work with static HTML

How can we make this work with simple HTML?

One option is we gather all tags with data-experiment properties, group them by name, for each group pick one of their data-option values and hide the rest:

<p data-experiment="intro paragraph" data-option="pleasant">
  Please log in–doing so will make you fitter, happier, and more productive.
</p>
<p data-experiment="intro paragraph" data-option="threatening">
  Log in or else, you ungrateful louse!
</p>

<a href="/login" data-complete>Log in</a>

<script src="//js.autotune.io/ed019c12-1e82-4985-8940-05f524ccbcbe"></script>

Another syntax:

<at-experiment name="intro paragraph">
  <p data-option="pleasant">
    Please log in–doing so will make you fitter, happier, and more productive.
  </p>
  <p data-option="threatening">
    Log in or else, you ungrateful louse!
  </p>
</at-experiment>

<a href="/login" data-complete>Log in</a>

<script src="//js.autotune.io/ed019c12-1e82-4985-8940-05f524ccbcbe"></script>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.