How to use the slides:
Also, here's the source
tooling for ambitious Open Web apps
@raendev
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:
a big problem and a small problem.
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
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.
The small problem is with NEAR smart contracts.
black boxes
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.
And now I assert
And now I assert
that solving the small problem
π
And now I assert
that solving the small problem
π
And now I assert
that solving the small problem
is key to fixing the big one.
And if that's true, that's great!
Because we already solved the small problem.
The solution
And if that's true, that's great!
Because we already solved the small problem.
The solution
is RAEN.
To understand RAEN,
let's see how other people solved this problem.
Ethereum solved it with
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
WebAssembly aka Wasm (NEAR's runtime VM),
are solving this same problem
with Wit,
WebAssembly
with Wit,
WebAssembly
WebAssembly Interface
with Wit,
WebAssembly
Interface
WebAssembly Interface Types
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.
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.
Just by knowing a contract's name,
You can generate
βͺ some-contract.json
Just by knowing a contract's name,
You can generate
an ABI.
βͺ some-contract.ts
Or Typescript.
βͺ some-contract.rs
Or cross-contract calls.
βͺ some-contract.sh
Or a CLI.
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.
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
no one knows how to build dapps
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.
One vision for the Open Web
is thin apps
that access open data.
Apps that read, write, interact
with data from many smart contracts,
some the app developers wrote themselves,
some that pre-existedβ
public infrastructure.
And if that's your vision
what a boon
is a fully-typed ecosystem
of public infrastructure.
We're going long on this vision.
RAEN, born a build tool,
will grow into a framework,
helping ambitious developers
compose secure, well-architected smart contracts,
yes, and more than that.
Because ambitious apps
need more than just smart contracts.
They need frontends,
indexing layers,
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.
Here's what this will look like in practice.
Let's follow three builders,
Here's what this will look like in practice.
Let's follow three builders,
Ali,
Here's what this will look like in practice.
Let's follow three builders,
Ali,
Bob, and
Here's what this will look like in practice.
Let's follow three builders,
Ali,
Bob, and
Cal.
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
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
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/
and starts hooking them together,
feels immediately productive
and useful
in her new ecosystem
with her new programming language.
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
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
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
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
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/
Gets a project configured
with a fully-typed frontend app,
that even gives him some reasonable starting UI,
βββ Raenfile βββ frontend/ βββ subgraphs/
and some Subgraph code to index those three contracts,
βββ Raenfile βββ frontend/ βββ subgraphs/ βββ tests/
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.
Cal is making the switch from web2 to web3,
participating in their first hackathon.
raen new project
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/
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.
That's where we're headed.
That's how easy we want NEAR to be.
We will get there in about six months.
How can you get involved?
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.
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!
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!
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!
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.
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 |