Building

Typeform I/O

How many of you

know about Typeform?

How many of you have ever

worked as a programmer?

The natural way of

talking to each other

A traditional form

A Typeform

The secret sauce

of Typeform

Who am I?

Disclaimer

possible nonsense

Interactions are fun!

Ask questions!

Who I am

Victor Bjelkholm

@VICTORBJELKHOLM

Developer Evangelist

What is Typeform I/O?

JSON description

of a typeform

Beautiful and user

friendly typeform

Sandbox

Contents

  • Focusing on your core strength

  • Why people and your business need an API

  • From idea to beta

  • Planning your future

Focusing on your

core strength

As simple as possible

 

Still giving power to the developer

Beauty

Simplicity

The interface of your API

is king

UX of API as

friendly as possible

Every minute saved for developers makes our

API better

Find your core strength

Why people and your business

need an API?

Why?

Expand what is possible to build

with your product

How can you make your core accessible to developers?

Allow people to tinker with your product to create your own revolution

Possible

Use Cases

Product Feedback

Asking questions about things that happens inside your platform

Product Feedback

Product delayed?

Asking questions about things that happens inside your platform

Product Feedback

Change your forms depending on the circumstances

Customer feedback survey

Database filled

with user details

Customer feedback survey

User never uses or

used Feature B

Don't ask

questions about Feature B!

No more

"If you don't have a house, skip this question"

From

Idea

to

Beta

Out buying bocadillos

"Too much work"

 

"It's complicated"

 

"Let's use views!"

“I will create

a prototype for tomorrow”

Next day

 

Functional Prototype

Next weeks

 

Work on verifying theories

Next months

 

Planning and Implementations

Startup != Resources

Working with legacy systems is hard

Try out ideas

Get feedback

Slack As A Community

Crucial features first

Getting people to

use the API as early as possible

From

idea to beta

in

five months

Before: Prototype

 

Today: Beta

 

Future: Product

How we built this?

Team Effort

Raw Willpower

Choosing Our Battles

Our own API management?

Nah

3Scale + Typeform?

Yes!

Leveraging 3Scales API

Our own testing infrastructure?

Nah

Blazemeter + jmeter?

Yes!

Write tests in Ruby

Transform to jmeter jmx

Running tests

in the cloud

Our own business logic?

 

 

Yes, yes and yes!

Focusing only on the

core of our API

Not everything around it

Splitting up responsibilities

Typeform.com

=

One Symfony 2 Application for everything

Typeform I/O

=

Completely separate application in Lotusrb

Typeform I/O

=

Lotusrb

+

Form render engine

Lotusrb

Form render engine

MySQL Views

Database

MySQL Views

Speed of development

Able to have a structure that

makes sense today

Maintainability

Hard to test

Performance issues

The Good Parts

The Bad Parts

The Good Parts

CREATE OR REPLACE VIEW logic_jump as
	SELECT * FROM `typeform_backend`.logic_jump;

Aggregation & MySQL Views

  • group_by
  • group_concat
  • count

 

Makes MySQL ignore indexes!

Fast development

Fast deployment

Early feedback

Make us focused on solving

problems people are actually having

Documentation

Clear and concise documentation that looks beautiful

Less support

 

Less time spent on onboarding

 

More engagement

Clear and concise documentation that looks beautiful

Introduction, reference and guides

Some of our

favorite tools to use

  • Jmeter + ruby-jmeter - Performance testing but you hate writing XML
  • 3Scale - Manage your API
  • ReadMe.IO - Documentation and Q&A
  • Slack - Chat for our community
  • Runscope - Your API should always reply, from anywhere

Planning your future

Tidying Up

About

technical debt

Usable & Functional API

Before

Optimized & future-proof API

The Future

Simpler, better & faster

Takeaways

Go and buy

bocadillos sometimes 

Brainstorming is good when waiting for food

Third party services are

awesome for moving forward quickly

MySQL views are good if you are very careful with the queries

The UX of the API is extremely important for developers

Stay close to the community

 

Always be shipping

 

Get real feedback

Figure out and

focus on your core strength

You want to move fast and have something usable early

Typeform I/O

Beta Launch!

typeform.io

Thank you

Questions?

HIRING

Building Typeform I/O

By Victor Bjelkholm

Building Typeform I/O

Talk for APIDays Mediterrea about what we learned from building Typeform I/O

  • 1,580