Andrew from TakeShape here! The primary author of this library. We tired a number of different form libraries before settling on writing our own. You can check out a full talk I gave on ShapeForm (https://www.youtube.com/watch?v=iplY8Le1zK0) or you can just read my slides (https://shape-form-talk.netlify.com/) from the talk.
ShapeForm has several nice features that make it perfect for our use case, and may yours:
JSON Schema validation - Easily share the same form validation frontend and backend
️ Fast - Pure components for fast rendering even with large forms
Redux / Standalone state management - Choose your own adventure
Custom widgets - Widgets are simply React components
Form reducers - Useful for async validation, data normalization, the sky's the limit.
If you find ShapeForm useful or want to make it more useful I'd love for you to contribute to the project!
This is why TakeShape also provides a built-in static site generator[0] using Nunjucks templating (think Django, Twig, Swig, etc). If you are trying to build a simple site this is a great option. The great part of a Headless CMS is that you can choose whatever frontend you want and your solution can evolve with your product.
Seriously though, you should read "Lost and Founder"[0] by Rand Fishkin of Moz for some insight on what's in store. VC's expect very high multiples on their return 10x is not even close, even small seed funds look for 40x+. That said I am not totally convinced of either model something like TinySeed[1] looks like a step in the right direction. At the end of the day it's about the fit for your business you're not going to escape burnout based on how you are funded.
Odd that they hide their FAQ in the shop page and hidden below the fold on a 13" screen. I looked everywhere but there. You'd think you most customers would want their questions answered before buying.
How did you decide when it was time to stop bootstrapping and raise a round? Was there a magic number traction-wise (total users, MRR, etc) or was it motivated by the desire to staff up a team and execute on your product vision?
There is a static renaissance happening as people realize it doesn't make sense to serve content that rarely changes from a database. Think of the millions of Wordpress blogs that could benefit from the speed, reliability and security of a static frontend. Here is more in-depth argument for static:
I'll be honest it takes a bit of prodding at first and it's hard to do after the fact. I have found that it helps to ask for input from day one. For example if a user is setting up a dev environment for the first time set them up with your setup doc and tell them to take notes about any issues they have or things that should be clarified. The biggest incentive is knowing that your organization values employee feedback and will be receptive to changes they suggest.
Never underestimate the value of engineer training. Document your best practices and coding style. Diagram your software at a high level to show how different components interact. If you have any internally developed frameworks add documentation or at least an FAQ explaining why certain design decisions were made and examples of how to complete common tasks with the frameworks. It might sound like a big investment up-front but it doesn't have to be, start small and your materials will grow with your organization. Encourage your engineers to contribute if they had to figure things out on their own. Being able to point to these materials will help on-boarding and free up your time for high level tasks.
Back in 2003 my fundamentals of CS course heavily relied on the interactions window of DrScheme (now DrRacket https://racket-lang.org/). It was a extremely powerful educational tool. When I started doing web development I found myself frequently putting snippets like `javascript:alert('abc'.substr(1)` into the URL bar. With the advent of the Firebug console it became even easier to try out new snippets. Now a days the Chrome console tab even has autocomplete. I'd be interested to know how these simple interactions contributed to the widespread adoption of JS and other languages.
ShapeForm has several nice features that make it perfect for our use case, and may yours:
JSON Schema validation - Easily share the same form validation frontend and backend
️ Fast - Pure components for fast rendering even with large forms
Redux / Standalone state management - Choose your own adventure
Custom widgets - Widgets are simply React components
Form reducers - Useful for async validation, data normalization, the sky's the limit.
If you find ShapeForm useful or want to make it more useful I'd love for you to contribute to the project!