diff --git a/README.md b/README.md index 9b67b1c..ae4c136 100644 --- a/README.md +++ b/README.md @@ -14,59 +14,46 @@ ecosystem, you want the [Aeternity JavaScript SDK](https://github.com/aeternity/aepp-sdk-js). The SDK is a Swiss Army Knife. Vanillae is just a knife. -## Flagship Tools +Vanillae grew out of [Aegora.jp](https://aegora.jp). We made a simple +e-commerce store using Aeternity as the payment system. We encountered a lot +of rough edges in Aeternity's tooling, and so developed our own, and +open-sourced it. That became this project + +Our tooling is grouped according to the project that spawned it - [Sidekick](./sidekick/) - A library to talk to a browser wallet extension from the perspective of a - page script. + We needed the ability to talk to Superhero (the standard Aeternity browser + wallet extension) from our page script. Sidekick is a simple library to do + just that. -- Bindings + - [Sidekick Examples](./sidekick_examples/) illustrate how to use sidekick - These are language-specific libraries that expose the most common functions you - need in a backend application that uses Aeternity. + - [AWCP](./libs/awcp/): the aepp/waellet communication protocol - These intentionally do not cover obscure or esoteric Aeternity features - (e.g. hyperchains). + This is the definition of the messaging protocol between the page + script and the wallet. Sidekick implements one half of this protocol. - - [Erlang](./bindings/erlang/) + - [jex](./utils/jex/) + We encountered packaging as an obvious problem to solve, and NPM is + simply a terrible way to solve it. Jex is a TypeScript/JavaScript + package manager that avoids most of the NPM-related security issues. -## Libraries +- [Vanillae Erlang Bindings](./bindings/erlang) -These are libraries that were developed incidentally which made sense to factor -out. + Our server backend is written in Erlang. We needed to talk to the + blockchain from our server backend. Vanillae.erl is an Erlang application + that does that. -- [AWCP](./libs/awcp/) + It is designed in such a way that you could write say a Vanillae Go + library with an identical API but totally different internals. Ultimately + the idea here is to create a language-agnostic API for talking to the + Aeternity blockchain from the - Aepp/waellet communication protocol +- [Jaeck Russell](./jrx/): this is a (work-in-progress) simpler wallet than + Superhero - This is just type definitions and constants (error codes). Type definitions - consist of what data the waellet expects from the aepp, and what data the - aepp expects from the waellet. - - -## Utilities - -These are applications that were developed incidentally during the course of -this project. - -- [jex](./utils/jex/) - - A TypeScript/JavaScript package manager that avoids a large class of - NPM-related security issues. - -- [vlogd](./utils/vlogd/) - - **NOT FOR PRODUCTION USAGE** - - Simple HTTP server that just logs requests it gets. Used in example code - for demonstrating sidekick's logging capabilities. - -## Documentation - -- [base64 versus base58 explainer](./docs/baseN/) - - These are two numerical notations used in the Aeternity project. - -- [NPM guide](./docs/npm-misc/) +- [Vanillae Files](./docs/): any time where we encountered some weird thing + that is like 1 hour of information but takes 15 hours to understand because + it's poorly documented, we tried to document it here. diff --git a/art/Vanillae_circle_logo_128.png b/art/Vanillae_circle_logo_128.png new file mode 100644 index 0000000..203928b Binary files /dev/null and b/art/Vanillae_circle_logo_128.png differ diff --git a/art/Vanillae_circle_logo_1620.png b/art/Vanillae_circle_logo_1620.png new file mode 100644 index 0000000..02809bc Binary files /dev/null and b/art/Vanillae_circle_logo_1620.png differ diff --git a/art/Vanillae_circle_logo_1620_indexed.png b/art/Vanillae_circle_logo_1620_indexed.png new file mode 100644 index 0000000..2f78d0e Binary files /dev/null and b/art/Vanillae_circle_logo_1620_indexed.png differ diff --git a/art/Vanillae_circle_logo_256.png b/art/Vanillae_circle_logo_256.png new file mode 100644 index 0000000..698c60f Binary files /dev/null and b/art/Vanillae_circle_logo_256.png differ diff --git a/art/Vanillae_logo_1200.png b/art/Vanillae_logo_1200.png new file mode 100644 index 0000000..7b0fb32 Binary files /dev/null and b/art/Vanillae_logo_1200.png differ diff --git a/art/Vanillae_logo_1200_transparentbg.png b/art/Vanillae_logo_1200_transparentbg.png new file mode 100644 index 0000000..87357b6 Binary files /dev/null and b/art/Vanillae_logo_1200_transparentbg.png differ diff --git a/art/Vanillae_logo_1200_transparentbg.xcf b/art/Vanillae_logo_1200_transparentbg.xcf new file mode 100644 index 0000000..738caf1 Binary files /dev/null and b/art/Vanillae_logo_1200_transparentbg.xcf differ diff --git a/art/Vanillae_logo_1500.xcf b/art/Vanillae_logo_1500.xcf new file mode 100644 index 0000000..0766c86 Binary files /dev/null and b/art/Vanillae_logo_1500.xcf differ diff --git a/art/Vanillae_logo_1620_indexed.xcf b/art/Vanillae_logo_1620_indexed.xcf new file mode 100644 index 0000000..f494e65 Binary files /dev/null and b/art/Vanillae_logo_1620_indexed.xcf differ diff --git a/art/Vanillae_logo_circle_1400.png b/art/Vanillae_logo_circle_1400.png new file mode 100644 index 0000000..3033f1d Binary files /dev/null and b/art/Vanillae_logo_circle_1400.png differ diff --git a/art/Vanillae_logo_favicon_32.ico b/art/Vanillae_logo_favicon_32.ico new file mode 100644 index 0000000..6bbe83a Binary files /dev/null and b/art/Vanillae_logo_favicon_32.ico differ diff --git a/site/art/Vanillae_circle_logo_128.png b/site/art/Vanillae_circle_logo_128.png new file mode 100644 index 0000000..203928b Binary files /dev/null and b/site/art/Vanillae_circle_logo_128.png differ diff --git a/site/art/Vanillae_circle_logo_256.png b/site/art/Vanillae_circle_logo_256.png new file mode 100644 index 0000000..698c60f Binary files /dev/null and b/site/art/Vanillae_circle_logo_256.png differ diff --git a/site/favicon.ico b/site/favicon.ico new file mode 100644 index 0000000..6bbe83a Binary files /dev/null and b/site/favicon.ico differ diff --git a/site/index.html b/site/index.html new file mode 100644 index 0000000..d52a879 --- /dev/null +++ b/site/index.html @@ -0,0 +1,148 @@ + + + + + + Vanillae Project + + + + + + +
+ +

+ Vanillae Project +

+
+ +
+

1. tl;dr

+ +

+ This is a set of libraries, applications, and utilities which make it + easy to for developers to use the Æternity payment network. Including: +

+ +
    +
  1. Vanillae.erl: talk to an Æternity node from an Erlang application
  2. +
  3. Sidekick: talk to an Æternity browser wallet extension from a page script
  4. +
  5. Jex: a more intelligent alternative to NPM, specifically for packaging page scripts
  6. +
  7. Jack Russell: a browser wallet extension
  8. +
  9. VDK: a set of self-contained TS/JS libraries
  10. +
+
+ +
+

2. Contents

+ +
    +
  1. tl;dr
  2. +
  3. Contents
  4. +
  5. Motivation/History
  6. +
  7. Vanillae.erl
  8. +
  9. Sidekick
  10. +
+
+ +
+

3. Motivation/History

+ +

The two developers on this project are Craig Everett and Peter + Harpending. Craig is an Erlang graybeard. Peter is a recovering + mathematician who reluctantly programs because food is kind of expensive. + For the most part, Craig handles the Erlang stuff, and Peter handles the + TypeScript stuff (hurray).

+ +

Vanillae started as our own internal toolset that we developed in the + process of making Aegora.jp. In + particular, Craig developed Vanillae.erl because talking to the blockchain + was needlessly annoying, and Peter developed Sidekick because the Æternity + JavaScript SDK was (is) impossible to use. We then open-sourced our + tooling, and the Æternity Foundation decided to pay us to continue to + develop it and expand it.

+ +

Aegora is the first normal e-commerce platform that utilizes any form of + cryptocurrency. We would like if Aegora made us billionaires, but really + Aegora is really a proof-of-concept; that concept being + "cryptocurrency could actually be useful."

+ +

Our hope is that you (yes, you) will be inspired by Aegora, and + go off and use Æternity for your own commercial projects. The point of the + Vanillae project is to make it easy for you to do that. Craig and I are + also working on a number of other projects to make Æternity useful to + ordinary people, not just developers.

+ +

Cryptocurrency has thus far failed to penetrate the economy of ordinary + goods and services. Cryptocurrency has been used on the dark web for + buying babies and cocaine, and for various scams such as NFTs, fraudulent + crypto exchanges, and pump-and-dump schemes. One has to ask: why?

+ +

Our hypothesis is that most cryptocurrencies (i.e. every coin except + Æternity) are technically deficient to the point that they are totally + useless in the space of Things That Actually Have To Work (i.e. + business).

+
+ +
+

4. Vanillae.erl

+ +

+ This is an Erlang application that smooths over the rough edges + involved in talking to Æternity nodes. +

+
+ +
+

5. Sidekick

+ +

Sidekick is a simple, transparent, and self-contained library for + talking to an Æternity browser wallet extension (e.g. Superhero [hence the + name] or Jack Russell) from your page script.

+
+ + + + + +