Hacker News new | past | comments | ask | show | jobs | submit login
Prototyping a YC Startup Each Day (anvil.works)
206 points by jimnotgym on April 1, 2018 | hide | past | favorite | 59 comments



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)


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!


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.


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). 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.


I agree with your premise, but not your conclusion. Its not that navigating the stack that introduces the slowdown, its that making your own choices as to what that stack will be leads to a very specific stack that not many are using. Because of that the tooling for that specific stack is most likely non-existant meaning that you have to context switch a lot to perform common tasks (now, if you're good at context switching, it might not be a problem). Its the same problem of working in a high level vs low level programming language. If you're trying to do something that the high level language was designed for, you'll have a good time, but if not, you might just be shit out of luck.


> * Vue (or equivalent)

> * Webpack (or equivalent)

Many web apps don't require a Javascript framework.


Nor Ruby and Rails


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


> And I'm still pretty confident that I (with Anvil) would deploy a simple application faster than you (with Rails).

Did you build the anvil.works site using your tool?


That was something that was pretty neat about bubble.is. Even though their offering is very very low code (plugins).


I completely agree with you. Use the tech you know, and learn new tech with time. Staying on the bleeding edge is fun but doesn't have the payoffs people think it does.

My stack is pretty much 100% JavaScript. I can do PHP, I can do Go, but I can build full-stack apps very quickly in JS.


If (1) is an indication - its about a hospital management system built using visual tools, with a first version done in 6 months - the current attempt at 4GL scales better.

(1)https://www.outsystems.com/blog/introducing-sapphire-hospita....


Hi. This is Dan, CTO of Meter Feeder (YC W16). Nice experiment. For comparison, Jim (my co-founder) and I built the MVP of Meter Feeder in a weekend back in Oct '14.

We spent a lot of time working on the business requirements that we got from our first potential customer.


Finally! I've been wanting something approaching this for modern development since NeXT dropped EOF (enterprise objects framework) in the '90's.

See this Steve Jobs demo [1] from the 90's creating a DB driven app in a fewminutes. It's 2018 and we're just getting back to that level of productivity now.

[1] 23 Minutes in. https://www.youtube.com/watch?v=gveTy4EmNyk


Are you targeting Anvil as a competitor to Django/Ruby on Rails? I'd love to find something better than Django, but closed-source + small community + the pricing model all suggest that I'm not quite the demographic.

I feel like most people who need a website to "take orders for your new widget, or keep track of your customers, or schedule your local football league" are best off just contracting it out. I'm not sure how this moves the value needle to make an average person want to learn web development.


What struck me is how similar your Meter Feeder prototype is to parking application deployed in Prague, which then has added feature that the enforcement happens through streetview-style cars which read registration plates by machine vision. Somewhat non-typically for what is effectively government project the thing seems to mostly run on AppEngine.


Hi can I add tiny feedback? For this kind of product, adding github login would make much sense IMO.


> we're not trying to minimise how hard it is to start a business like this

Yet the post is still titled "How We're Building One Y Combinator Startup a Day" instead of "How We're Building One WebApp Prototype a Day"

Your service is really nice but the current title sounds really clickbait.


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?”.


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.


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


> Cool tech

I don't want to be a downer, but I think what they show is the kind of product that people expect from IT departments. I.e., bring a bunch of services together with some plumbing with a database below it, and a nice UI on top. This is all pretty standard. And with today's tools you can do that all in one day (see hackatons). Of course, when you start using the product, and the real requirements become clear, that one initial day seems like nothing.


I posit that this is largely due to your frame of reference. I will assume from your presence on hacker news that you already have learned programming. You are already familiar with its utility. You have found over your career that tools that sacrifice expressiveness for ease of expression are nearly always crutches, that if depended on too heavily, will foster reliance, and give no incentive to actually learn more advanced tools.

Yet, like all crutches, the provide a superior alternative to certain groups of people. People with broken legs use crutches, but only for the purpose of self sufficiency until their leg heals.

Perhaps this is where the flaw in the business model is revealed. Anvil is largely incentivized to get its users to depend on its crutch. But users are still able to utilize the crutch to ease the learning process, and perhaps explore something that might interest them enough to seek out more traditional development workflows.

Rental of goods exists as a viable service, because there is demand for its supply. When you fly somewhere distant, at least in the US, your first order of business is to pick up your rental car. This is not a bad business practice. You are making the correct judgement that given your limited resources, renting something in the short term is more prudent than purchasing it.


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!


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.


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.


Thanks! Yes, that kind of "wrap an API call in 5 minutes" thing is a great way to get started with Anvil :)

> 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)...

This is an interesting comparison. Those tools focus on building apps without code. That's great for simple things, but once you get more complicated, you end up writing something that's kinda-sorta a program, in a language not really built for the purpose.

I think there's room for both. But as far as we're concerned, when you're telling a computer what to do, there is nothing better than writing actual code. And so Anvil is unapologetically built around a real, industrial-strength programming language, with a solid ecosystem of libraries and tools. We've had startups scale into the millions of dollars of revenue with products built on Anvil, with serious technical heft on the back end. We work quite hard at the architecture so it can grow with even the most demanding applications.


Bubble seems cool for non programmers, but I'm not convinced it will be faster for people who can code. Have you had a chance to play with it?

Appian looks really nice and has $90 and $180 plans, which is great. It's so weird though, you can't just give them money. They make you wait 3+ days for a human to say "ok fine, we'll take your money", if you ever get a response. So far, I've tried twice and they still have never responded / activated an account. I get it with the mendix/outsystems/salesforce super enterprise stuff in terms of lead qualification but at the low appian price points, I do not get it. Have you had a chance to try appian? It looks very promising albeit perhaps a bit over complicated.


“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)


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.


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.


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.


Done.

-Bryant


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!


Uplink is really, really well executed.


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.


> 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

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.


We need something like that for mobile native apps


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?


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.


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)


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... - 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.)


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?


> 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

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


I would love to see more workflow apps, so we don't have to do this in Sharepoint. Things like expense approval.

fill out expenses > attach scan > send to approver > approver ticks (auditable) > send api call to ERP

similar things are price/quote approval, invoice approval, that kind of thing


A lot of huge non-tech companies use Sharepoint for internal sites. Sharepoint sucks major ass. If you can demonstrate how Anvil can replace Sharepoint both better and cheaper (and if you can offer their level of support), then you might be able to get some customers.


I am really excited about using this for internal enterprise apps, but I (and I guess most) would not be able to share them. I guess tipping the Anvil guys off about a generic version of an app similar to yours might allow them to blog about it.

Two weeks ago I was waiting for someone who was late for a meeting, and in that 30 minutes I wrote and deployed a little system monitor for an invisible API/EDI broker service! In another hour the next day I added some more features so the app started to become a control panel for the app. It would take me longer than that to set up the hosting normally.


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/


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.


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...)


"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.


Are you familiar with Node Red? It is an IBM project that is a self hosted website you can run on a raspberry pi, or a traditional PC or server.

The tool allows you to graphically build Node.js applications, through some key abstractions. Node you drag into the canvas has inputs and or outputs which can be connected to other nodes, by simply clicking and dragging between them.

As an embedded developer, I was far more interested in determining the viability of an implementation than learning node.js. To me, Node Red is the superior evolution of node.js. But I can certainly appreciate that people who learned node.js to any degree, before finding out about Node Red, see far less utility in it than I do.

For a mirror image of this phenomenon, Arduino allows novices to circumvent the traditional learning curve required to develop embedded systems, through its key abstractions. Yet, every embedded developer I know immediately attacks the downsides of Arduino. Its not really teaching its users much. At least in its infancy, much of the underlying code was cowboy spaghetti. You would never use Arduino in a production environment.

Yet somehow, Arduino is flourishing. I'll admit that since it's open source, that is a key distinction. But Adafruit.com, and Sparkfun.com are literally printing money with Arduinos and the ecosystem they facilitated. Each is a private company, but each has revealed at least one year of revenue exceeding $30,000,000. Each also provides schematics, datasheets, and tutorials for every single product they sell, if it is within their rights to provide such information.


Thanks, that’s an interesting and relatable analogy.


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.


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


ASP.net ?


> 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.


> 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


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?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: