+ - 0:00:00
Notes for current slide
Notes for next slide

🌧 Make it RAEN: tooling for ambitious Open Web apps

How to use the slides:

  • P toggle presenter notes
  • ? help menu
  • β†’ next slide

Also, here's the source

1 / 74

Watch it

2 / 74

🌧

Make it RAEN

tooling for ambitious Open Web apps

@raendev

3 / 74
4 / 74

I'm Chad O,
on Twitter and GitHub at chadoh

I'm Chad O,
on Twitter and GitHub at chadoh

Willem here and I parted ways
with Near Inc, now Pagoda,
at the end of last year,

I'm Chad O,
on Twitter and GitHub at chadoh

Willem here and I parted ways
with Near Inc, now Pagoda,
at the end of last year,

and founded Aha Labs.

I'm Chad O,
on Twitter and GitHub at chadoh

Willem here and I parted ways
with Near Inc, now Pagoda,
at the end of last year,

and founded Aha Labs.

We've now merged with the Pixel8 team,
and together, we're all building

I'm Chad O,
on Twitter and GitHub at chadoh

Willem here and I parted ways
with Near Inc, now Pagoda,
at the end of last year,

and founded Aha Labs.

We've now merged with the Pixel8 team,
and together, we're all building

RAEN. Find us online at raen.dev,
and follow us on Twitter at raendev. Go ahead and give all of us a follow.
Thanks. πŸ˜ƒ

In this video, we're going to talk about

Two Problems

9 / 74

two problems:
a big problem and a small problem.

1

10 / 74

The big problem is ecosystem-wide,
blockchain-ecosystem-wide,
dapp/web3/Open Web/dweb-ecosystem-wide,
and that problem is this:

1

no one knows how to build dapps

11 / 74

The big problem is ecosystem-wide,
blockchain-ecosystem-wide,
dapp/web3/Open Web/dweb-ecosystem-wide,
and that problem is this:

No one knows how to build dapps!
Ok that's not strictly true,
some people have figured out some
useful patterns. But good luck
figuring out those patterns
if you're new.
Most people don't know,
most documentation doesn't go that far,
most tooling isn't that expansive.

2

12 / 74

The small problem is with NEAR smart contracts.

2

black boxes

13 / 74

The small problem is with NEAR smart contracts.

They're black boxes.
They don't play nicely with others.
Only the author of a contract
can really dig in
and figure out how to interact with that contract.
Everyone else needs to search for the source code,
or deconstruct web app workflows,
or give up.

14 / 74

And now I assert

2

15 / 74

And now I assert

that solving the small problem

2

πŸ—

16 / 74

And now I assert

that solving the small problem

2

πŸ—

1

17 / 74

And now I assert

that solving the small problem

is key to fixing the big one.

18 / 74

And if that's true, that's great!
Because we already solved the small problem.
The solution

RAEN

19 / 74

And if that's true, that's great!
Because we already solved the small problem.
The solution

is RAEN.

20 / 74

To understand RAEN,
let's see how other people solved this problem.

Ethereum solved it with

ABI

21 / 74

To understand RAEN,
let's see how other people solved this problem.

Ethereum solved it with

an "ABI" system.
ABIs are JSON files,
generated from a smart contract,
that contract authors distribute off-chain,
using GitHub or some other system.
(Pagoda fka Near Inc are copying this system.)

WebAssembly aka Wasm

22 / 74

WebAssembly aka Wasm (NEAR's runtime VM),
are solving this same problem

WIT

23 / 74

with Wit,

WIT

WebAssembly

24 / 74

with Wit,

WebAssembly

WIT

WebAssembly Interface

25 / 74

with Wit,

WebAssembly

Interface

WIT

WebAssembly Interface Types

26 / 74

with Wit,

WebAssembly

Interface

Types.
More compact and readable
than the JSON of ABIs,
Wit fits easily into a Custom Section
of a deployed smart contract.
So that's exactly what RAEN does.

27 / 74

This leapfrogs the ABI system.

RAEN inspects your Rust smart contract
and generates Wit from it;
compiles your contract,
injects the Wit,
and compresses the whole thing,
making the end result smaller
than if you built without RAEN.

Now anyone can generate
any tooling they need
for any given smart contract.

some-contract.near

28 / 74

Just by knowing a contract's name,
You can generate

some-contract.near

β†ͺ some-contract.json

29 / 74

Just by knowing a contract's name,
You can generate

an ABI.

some-contract.near

β†ͺ some-contract.ts

30 / 74

Or Typescript.

some-contract.near

β†ͺ some-contract.rs

31 / 74

Or cross-contract calls.

some-contract.near

β†ͺ some-contract.sh

32 / 74

Or a CLI.

Inspect some-contract.near using a schema built with RAEN and stored on NEAR

33 / 74

Or an admin panel web app.

This one already exists.
It's called RAEN Admin.
You can raen build your contracts
and enjoy it
teach with it
collaborate with it

today.

Let's try it.
I'm going to follow along with

The RAEN Guide,
the friendliest way to learn Rust and NEAR.
If you have your laptop with you,
pull it out,
follow along!

How many people are going to try to follow along?
Raise your hand, so I can try to time this
in a way that let's y'all experience it, too.
Great.

36 / 74

To recap, a RAEN-maximized version of NEAR
becomes a fully-typed smart contract ecosystem,
a development platform
where all developers
can learn about
and script against
and build on top of
any already-deployed program
with confidence.

Which circles us back to

1

no one knows how to build dapps

37 / 74

the big problem.

"No one knows how to build dapps"
and what this really means
is that we're all still figuring it out
together.

New patterns are emerging,
new visions gaining salience.

38 / 74

One vision for the Open Web

39 / 74

is thin apps

40 / 74

that access open data.
Apps that read, write, interact
with data from many smart contracts,

41 / 74

some the app developers wrote themselves,

42 / 74

some that pre-existedβ€”
public infrastructure.

43 / 74

And if that's your vision
what a boon
is a fully-typed ecosystem
of public infrastructure.

We're going long on this vision.

44 / 74

RAEN, born a build tool,
will grow into a framework,
helping ambitious developers

45 / 74

compose secure, well-architected smart contracts,
yes, and more than that.
Because ambitious apps
need more than just smart contracts.

46 / 74

They need frontends,

47 / 74

indexing layers,

48 / 74

off-chain storage.
RAEN will pull these all together,
as well as yet-undiscovered architectural patterns,
and help devs keep apps fresh
with all these latest discoveries
as they emerge.

49 / 74

Here's what this will look like in practice.
Let's follow three builders,

🐊

50 / 74

Here's what this will look like in practice.
Let's follow three builders,

Ali,

🐊     πŸ

51 / 74

Here's what this will look like in practice.
Let's follow three builders,

Ali,

Bob, and

🐊     πŸ     πŸ¨

52 / 74

Here's what this will look like in practice.
Let's follow three builders,

Ali,

Bob, and

Cal.

🐊

53 / 74

Ali just switched to NEAR
from some other blockchain,
and wants to build new defi offerings.
She opens her command line,

🐊

raen generate contract amm

54 / 74

Ali just switched to NEAR
from some other blockchain,
and wants to build new defi offerings.
She opens her command line,

types "raen generate contract amm",
gets a new Automated Market Maker contract,

🐊

raen generate contract amm

raen generate contract ft

55 / 74

Ali just switched to NEAR
from some other blockchain,
and wants to build new defi offerings.
She opens her command line,

types "raen generate contract amm",
gets a new Automated Market Maker contract,

types "raen generate contract ft",
gets a new Fungible Token contract,

🐊

β”œβ”€β”€ Raenfile
β”œβ”€β”€ contracts/
β”‚ β”œβ”€β”€ amm/
β”‚ └── ft/
└── tests/
56 / 74

and starts hooking them together,
feels immediately productive
and useful
in her new ecosystem
with her new programming language.

🐝

57 / 74

Bob is a business founder frontend dev
with a product remixing data from
three existing contracts.
In his command line, he types

🐝

raen new project --use

58 / 74

Bob is a business founder frontend dev
with a product remixing data from
three existing contracts.
In his command line, he types

"raen new project --use" followed by the names
of those

🐝

raen new project --use

    contract1.near

59 / 74

Bob is a business founder frontend dev
with a product remixing data from
three existing contracts.
In his command line, he types

"raen new project --use" followed by the names
of those

three

🐝

raen new project --use

    contract1.near

    contract2.near

60 / 74

Bob is a business founder frontend dev
with a product remixing data from
three existing contracts.
In his command line, he types

"raen new project --use" followed by the names
of those

three

smart

🐝

raen new project --use

    contract1.near

    contract2.near

    contract3.near

61 / 74

Bob is a business founder frontend dev
with a product remixing data from
three existing contracts.
In his command line, he types

"raen new project --use" followed by the names
of those

three

smart

contracts.

🐝

β”œβ”€β”€ Raenfile
└── frontend/
62 / 74

Gets a project configured
with a fully-typed frontend app,
that even gives him some reasonable starting UI,

🐝

β”œβ”€β”€ Raenfile
β”œβ”€β”€ frontend/
└── subgraphs/
63 / 74

and some Subgraph code to index those three contracts,

🐝

β”œβ”€β”€ Raenfile
β”œβ”€β”€ frontend/
β”œβ”€β”€ subgraphs/
└── tests/
64 / 74

and tests to show how it's done.
he's already busy building business logic;
doesn't need to bother with boilerplate
or any reverse engineering.

🐨

65 / 74

Cal is making the switch from web2 to web3,
participating in their first hackathon.

🐨

raen new project

66 / 74

Cal is making the switch from web2 to web3,
participating in their first hackathon.

They type "raen new project",
get a tutorial appβ€”

🐨

β”œβ”€β”€ Raenfile
β”œβ”€β”€ contracts/
β”œβ”€β”€ frontend/
β”œβ”€β”€ subgraphs/
└── tests/
67 / 74

contracts, frontend, subgraphs, storage,
all hooked together.
They learn the ropes and build an app,
are proud of what they build,
continue hacking with their team after the awards ceremony,
grow the codebase easily from
proof of concept to
full-scale public infrastructure.

68 / 74

That's where we're headed.
That's how easy we want NEAR to be.
We will get there in about six months.

Help us!

69 / 74

How can you get involved?

Help us!

  • use RAEN! raen build
70 / 74

How can you get involved?

First of all,
start building your contracts with RAEN.
You saw how easy it is.
The more contracts out there using RAEN,
the more powerful all our tooling will be
as it roles out.

Help us!

71 / 74

How can you get involved?

First of all,
start building your contracts with RAEN.
You saw how easy it is.
The more contracts out there using RAEN,
the more powerful all our tooling will be
as it roles out.

Give us a quick follow. My DMs are open, if you have questions!

Help us!

72 / 74

How can you get involved?

First of all,
start building your contracts with RAEN.
You saw how easy it is.
The more contracts out there using RAEN,
the more powerful all our tooling will be
as it roles out.

Give us a quick follow. My DMs are open, if you have questions!

Contribute where you can!
We are working out in the open,
follow along,
report bugs,
contribute patches!

Help us!

73 / 74

How can you get involved?

First of all,
start building your contracts with RAEN.
You saw how easy it is.
The more contracts out there using RAEN,
the more powerful all our tooling will be
as it roles out.

Give us a quick follow. My DMs are open, if you have questions!

Contribute where you can!
We are working out in the open,
follow along,
report bugs,
contribute patches!

Fund us!
There's lots of money for branded sailboats in this ecosystem, but so far not a lot for high-quality tooling that helps NEAR leapfrog other blockchains.

Send NEAR or other fungible tokens to raendev.sputnik-dao.near and we'll put them to good use!

If you're connected to other financing streams and interested in this work, reach out!

Help us!

74 / 74

How can you get involved?

First of all,
start building your contracts with RAEN.
You saw how easy it is.
The more contracts out there using RAEN,
the more powerful all our tooling will be
as it roles out.

Give us a quick follow. My DMs are open, if you have questions!

Contribute where you can!
We are working out in the open,
follow along,
report bugs,
contribute patches!

Fund us!
There's lots of money for branded sailboats in this ecosystem, but so far not a lot for high-quality tooling that helps NEAR leapfrog other blockchains.

Send NEAR or other fungible tokens to raendev.sputnik-dao.near and we'll put them to good use!

If you're connected to other financing streams and interested in this work, reach out!

Finally, at the time of recording we were still setting up our Discord server.
Link below!

Join us!

Thanks for watching and following along!

Catch me in the hallways or at the afterparties; I'd love to chat about web3 architectures and hear about what you're building.

Watch it

2 / 74
Paused

Help

Keyboard shortcuts

↑, ←, Pg Up, k Go to previous slide
↓, β†’, Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
Esc Back to slideshow