
Prototyping a YC Startup Each Day - jimnotgym
https://anvil.works/blog/one-yc-startup-a-day
======
meredydd
Hi there - founder here! Happy to answer questions.

By building "imaginary prototypes" of these YC companies in an hour or two,
we're not trying to minimise how hard it is to start a business like this. But
the hard part of starting (eg) Meter Feeder _should_ be selling the service to
local governments, not wrangling the ~5 programming languages and 3-4
frameworks you need for the modern Web. We eventually got fed up of ranting
online about it, and decided to do something about the problem. Anvil was the
result :)

(Edited to add: We're hiring! If you're in the UK and this floats your boat,
check out [https://anvil.works/jobs](https://anvil.works/jobs))

~~~
sixdimensional
I have a feeling that the trend you're tapping into here is going to
accelerate, but I'm not positive.

I see a trend forming where the stacks are getting too brittle, complex and
overweight at all levels. I think it might be a result of trying to keep pace
with constant change. There has been very little period of exnovation but huge
amounts of innovation... perhaps at a cost.

A certain category of developer is suffering fatigue. People want to focus on
their business more than the technology. They want to spend more resources on
advanced technology like machine learning and analytics than the transactional
CRUD/user interfaces. They want to apply technology holistically and stop
worrying about the details (e.g. moving to cloud platforms).

For that matter, I see a lot of people trying to apply advanced tech thinking
it will alleviate or continue to greatly reduce the need for human input and
interaction. Most of the energy I see being expended out there is being spent
on advancing tech at a blistering pace more than
streamling/simplifying/solidifying ergonomics of development. There isn't a
huge focus on ease of long term support.

If the trend continues and tech continues to advance at a mad pace, I think
more and more people are going to want to outsource the problem of keeping up
so they can just easily build what they need and hopefully this time it will
scale further than previous attempts at things like 4GL.

Very interesting approach you're taking here, it will be interesting to see
where it goes, and wish you great success!

~~~
lettergram
I always follow the rule - get it delivered fast, with the technology you
know.

For me that:

* Web: Ruby (Rails), Python (Django), Golang (Revel)

* Desktop GUI: C++ (Qt)

* Embedded: C, C++

* Data Science(ish) Problems: Python

That probably covers 95% of my day job, consulting, and my startup - I deliver
a ton of work. Rails my 90% go to for web, python is data science, C is
performance. A notable mention is coffeescript/js and CSS for design, but with
partials / templates in the web frameworks I don't really need things like
React.

I think the problem you describe is a self created one. You don't need to use
the latest tech, build micro services, upgrade them independently, and use
frameworks that are well supported in what you know. Hasn't failed me yet.

~~~
meredydd
With respect, I think you are speaking from the position of someone who has
known how to use this technology for so long, he has forgotten what it was
like not to know it.

Take your "90% go to for web" stack. You'll need to know:

    
    
        * HTML
        * CSS
        * JS
        * Ruby
        * SQL (maybe)
    

And then the frameworks:

    
    
        * Rails
        * Bootstrap (or equivalent)
        * Vue (or equivalent)
        * Webpack (or equivalent)
    

And then the deployment:

    
    
        * Web server of choice
        * Database setup
        * Linux sysadmin
        * AWS
    

There was a front-end dev guide linked on the front page yesterday
([https://github.com/kamranahmedse/developer-
roadmap](https://github.com/kamranahmedse/developer-roadmap)). Just...look at
it. Count the pages. Even if you stipulate that you already know Rails, the
rest of what you need to know is still a huge wall to climb.

And sure, by now, you have all that knowledge in your head, same as I do.
(Probably better; I always hated web programming.) But asking somebody new to
scale that wall just to join in with the supposedly open web? Seems a little
much.

And I'm still pretty confident that I (with Anvil) would deploy a simple
application faster than you (with Rails). Not because you're a bad developer,
but because even with all your knowledge you're still navigating that stack -
and deploying it, and debugging it, and editing it without autocomplete
because no IDE can sensibly autocomplete a system with that many independent
layers, and so on.

~~~
bdcravens
> * Vue (or equivalent)

> * Webpack (or equivalent)

Many web apps don't require a Javascript framework.

~~~
delinka
Nor Ruby and Rails

~~~
bdcravens
True, but most require some sort of backend. Many of those apps can still
exist with little or no Javascript.

------
davidjnelson
I love this and it shows a ton of promise.

It’s missing some crucial features for non internal apps though. I kicked the
tires on it a bit and paid for a plan. Things like server side rendering for
various crawlers, deep linking, browser history support, automatic form
validation, user accessible automated database backup and restore are
currently not present. Also setting up a domain with ssl on cloudflare dns
hasn’t worked, when it works so easily on aws and heroku. Domain with ssl is
said to be officially supported though.

I’m also unsure about using python transpiled js beyond some basic use cases.
That would require some more experimentation.

There’s a ton of potential but for me at least the above need some love. At
this point due to those issues so much gets pushed to a separate server with
say Django/heroku that I am leaning towards “why not just use that?”.

------
elago
Cool tech, scary direction for a business model. Don't like the idea of only
being able to compile code as long as I'm paying rent for the compiler.

At least with the web hellscape you can download the ridiculously-large-number
of js libraries and be able to deploy your app to any server whenever you
want.

I will happily pay for tools but I won't rent tools.

~~~
maxwin
Second that. I will pay for the tool but not renting for serious work.

------
ian0
Ive been thinking about this problem for sooooo long.

Even with all the SAAS/PAAS out there a significant amount of time is
dedicated to really basic glue & CRUD code for a majority of developers. And
its a shame! Not just for the pace of application development, but for wasting
skilled developer's times on ridiculously basic (but time consuming) tasks.

Honestly, I can imagine a day where the UI editor is replaced with a UI demo.
There are UX best practices across the different platforms, which most orgs
ignore. Id rather have a bunch of my apps looking similar than half of them
implementing strange or frustrating patterns. Given the rationale for the
choice of layout and the ability to pretty it up, most PMs would have enough
ammo to push it through their org.

Congrats on what looks like an excellent product!

------
mjirv
This is super cool and I'm looking forward to giving it a try. I support our
finance team, and an easy way to create a GUI around API calls to our
different systems would be great to automate/make self-service tasks that are
really manual or that only I can do today as a programmer.

Right now I'd typically spin up a quick rails and/or react app for that, so
I'm excited to see how Anvil compares. Personally I wish it supported Ruby,
but I understand why you'd start with Python.

The number of tools that try to do something like this keeps growing (Bubble
comes to mind, or Appian in a slightly more enterprise space), and for good
reason. This space is all about execution really--I suspect within the next 5
years or so it'll become pretty easy and mainstream for semi-technical folks
to easily create a web app, and I'll be interested to see what that solution
looks like.

~~~
treis
I work using something like Appian but even more enterprisey. I've watched
non-technical users try and build something in it and they basically can't.
What you end up with is the worst of both worlds. Non-technical users can't
build in it and the features that are meant for them to use just end up
slowing down developers. Effectively, whatever you build to replace a
programming language eventually will be as complex as the programming
language.

The learning curve of programming is steep. It's like a sheer wall and then a
steady increasing line. It takes a beginner a ton of effort to produce
anything in something like Rails. But once they get passed that initial hurdle
over time they will be able to build more and more complex apps. Something
like Appian, that initial sheer wall is far less steep, but still formidable.
After you get passed that, however, you will fairly quickly find some thing
Appian doesn't provide an easy way to do. At that point, you hit the sheer
wall again and can even find yourself with something that isn't possible to
do.

I think everyone identifies that replacing excel with web apps is a huge need
with a lot of potential for monetization. The issue is that the biggest reason
that non-technical users can do stuff in excel is that they have spent years
to decades learning how. It's a tough sell for them to do the same in your app
unless it is an industry standard.

------
yodon
“Web developers who all use JavaScript have to learn too many technologies, so
all they have to do is learn Python”

It’s the modern web and mobile focused MS Access we’ve all been waiting for.
It looks awesome. And now all those JavaScript and PHP developers have to
learn a new language, and everyone who starts with this and wants to go beyond
will be unable to, because they are being taught to write front end
applications in Python.

It’s so awesome. I wish I didn’t think the choice of language mattered, but I
do (and will probably be karma pounded for not loving Python-as-a-frontend-
language-choice)

~~~
jimnotgym
I haven't tried it, but you can still write your own front end stuff in
javascript in Anvil. It is mentioned in Meredydd's comment below.

------
eganist
Concept seems useful especially for deploying internal tooling (as alluded to
here)

But I know I'm going to have to put you guys through a deep vendor assessment
to use the service, so here's my other question: do you guys have an on-prem
offering? :) I'd be down to use this for prototyping new things all the time,
but it'd make more sense if we know none of the prototypes leave our
possession.

~~~
meredydd
Yep! It's used by companies so big and secretive we can't mention their name
on the open Internet, even :)

Drop me a line at meredydd@anvil.works - I'd be happy to give you a proper
demo. The on-prem version takes just one "docker-compose" command to set up.

~~~
eganist
Done.

-Bryant

------
jimnotgym
If there is a faster way to MVP than Anvil I would be amazed to see it. I am
trialling it at the moment for something entirely different, business work-
flow apps and monitoring apps. It is really fast to generate API endpoints,
and it comes with an amazing 'uplink' tool which is a Python library that
opens a websocket to Anvil and allows communication straight through a
corporate firewall!

~~~
tmuir
I can appreciate that they are different tools, but to accept your challenge,
I submit three.js, along with the multiple websites that have boatloads of
single feature demos. In the particular venue of 3D graphics in the browser, I
contend three.js would provide more depth than anvil's breadth.

That being said, I see no reason why you couldn't combine the two, and get the
best of both worlds.

~~~
meredydd
_> I see no reason why you couldn't combine the two_

You bet! Although Anvil mostly shields you from the mudbath of the modern web
front end, we do have full HTML and JS interop. So you can call into JS from
Anvil's Python code, and into Python from JS.

Even better, once you've _built_ your (eg) three.js interface, you can package
it up as a custom component. Then you (or anyone else) can drag-and-drop it
onto their page and use it with a pure Python API.

-

I haven't finished editing the tutorial video for this, so I'm afraid I'm just
going to point you at the reference docs.

JS interop:
[https://anvil.works/doc#js_interop](https://anvil.works/doc#js_interop)

Custom components:
[https://anvil.works/doc#custom_components](https://anvil.works/doc#custom_components)

There are also quite a few examples on our user forum, if you sniff around.
Check out the "Show and Tell" section in particular.

------
maxwin
We need something like that for mobile native apps

~~~
chrisa
I've thought about doing something like that (for React Native) - and either
blogging about it, or doing a screencast for each one, etc. What would you
want to see the most out of something like that?

~~~
maxwin
I think we just need a good CRUD app building tool. They are in the right
direction but it is only for web app. There is a huge need for creating CRUD
mobile native apps quickly with drag & drop and some coding. React Native is
good enough but I feel there could be a better tool on top to make building
CRUD apps really fast.

------
phmagic
This is absolutely amazing! Looking forward to seeing more case studies,
especially around internal enterprise apps because I suspect that trying to
convince departments from a big company of an idea might be as hard as
convincing the general public (as is the case with b2c founders)

~~~
meredydd
Thanks! Is there a particular example you'd like to see?

Annoyingly, we can't really talk about the details of most of our internal-
enterprise-app-type deployments. We do have an anonymised example here:
[https://anvil.works/case-studies/building-secure-download-
po...](https://anvil.works/case-studies/building-secure-download-portal) \-
but even that is more detail than most want to share!

So if you have a suggestion for an enterprised-focused example you'd like to
see - especially for your company - drop me a line and let's make it happen!
(Email is in my profile.)

~~~
phmagic
Similar to what jimnotgym said, workflow apps are a huge timesavers but trying
to get IT to make or host one is a headache.

A big one I saw while consulting for big enterprises was document processing
(esp Excel/CSV). The lowest person on totem pole goes through 100 documents
replacing or reformatting some value. Python is great for this!

Is there a way to upload documents into Anvil?

~~~
meredydd
_> Is there a way to upload documents into Anvil?_

Absolutely! Check out this fifteen-minute demo, building a document
storage/tracking system: [https://anvil.works/blog/document-
tracking](https://anvil.works/blog/document-tracking)

For more advanced processing we have have pandas, python-xslx, and all that
good stuff ready to use :)

------
pradn
I'm surprised no one has mentioned Microsoft Office PowerApps.

Each page in the app looks like a Powerpoint slide, each piece of logic is
like an Excel formula, and the end result is that it's easy to create apps
like Visual Basic. There are tons of integrations, too.

[https://powerapps.microsoft.com/en-us/](https://powerapps.microsoft.com/en-
us/)

------
kylnew
This looks pretty neat but I’m trying to understand the target market of
Anvil. It seems like the intent is to target the market of people testing out
ideas that need more than just a landing page with an email sign up field but
the technical requirements of making an anvil site seem just technical enough
to put off anyone without the bravery to get at least a little technical. The
15 year old in me who loved tinkering with Adobe Flash sees a lot in this
project. Perfect for a hobbyist. The professional developer in me loves the
fast prototyping angle and I’d probably point people to this site if they had
a little idea they wanted to validate that seemed too costly to start any
other way. Not sure it has a personal use though.

~~~
meredydd
Our customers do include quite a few startups or startup-shaped projects.
They're typically either professional developers in a hurry, or "allied
trades" [eg data science or sysadmin] who aren't familiar with the full
Lovecraftian Web stack, but who can build things just fine if they have more
sane tools.

But there's a whole universe of companies who need to build internal tools.
(If you're in a startup/tech-co bubble, you'll be astonished how many line-of-
business Django or .NET developers are out there, and how much they are
needed. They tend to quite enjoy meeting Anvil :). Unfortunately for the
peanut gallery, their employers tend to be a little more leery of suppliers
throwing their names around, so those customers will have to remain anonymous
in HN comments...)

~~~
dalbasal
"Allied trades" widened to any people who willing/capable of programming some
and "internal tools" (a) overlap in interesting way and (b) are still
generally underserved and hence not programming enough, IMO.

In some sense, programmers with no knowledge or interest in the work that's
flowing through a workflow they are formalizing as a program... it's a lot
like managers with no knowledge or interest in the work they're managing. In
both cases the knowledge is not with the decision maker and the tools and an
accumulation of small but many & frustrating mistakes is inevitable.

Think of all the "understand your customer" and "build for yourself" advice,
it's because insider, specialist knowledge and programming ability have to get
together someplace and the advice wants to make it happen inside the
programmers head. Well... there's another head this could take place in.

------
smithmayowa
Awesome but it misses a simple fact that most startups don't know exactly what
they are building when they start out and that as a result there are a
multitude of iteration and pivoting happening behind scene.

------
monkeydust
Nice application, will test drive. Who are your competitors (apart from
Sharepoint)?

~~~
avip
ASP.net ?

------
cryptoz
> Working means....to get paid for it.

> Build time: 1 hour, 30 minutes.

Absolutely positively _no mention_ of finding customers and getting revenue in
that time allotment or at all. This whole thing is clickbait ads and demeans
the core of what startups do - get customers and scale quickly.

~~~
jimnotgym
> we're not trying to minimise how hard it is to start a business like this.
> But the hard part of starting (eg) Meter Feeder should be selling the
> service to local governments, not wrangling the ~5 programming languages and
> 3-4 frameworks you need for the modern Web.

As Meredydd said above

~~~
ec109685
It _might_ send investors the wrong idea that you need to use such a batteries
included framework to build your app. If things become technically
challenging, will you have the ability to build the team that can handle that?

