@@ -1,14 +1,14 @@
|
||||
import Image from "next/image";
|
||||
import LayoutMdx from "@/components/shared/LayoutMdx";
|
||||
import LaunchDay from "./launch react library form builder survey with multi-step form open-source.png";
|
||||
import LaunchDay from "./launch2-react library form builder survey with multi-step form open-source.png";
|
||||
import MdxTryItCTA from "@/components/shared/MdxTryItCTA.tsx";
|
||||
import Styling from "../../docs/react-form-library/style-css/HTML classes of Formbricks React Form Library to custom style surveys and forms.png";
|
||||
import CodeExample from "./v2 developer experience best react library 2023 forms and surveys open source.png";
|
||||
|
||||
export const meta = {
|
||||
title: "React Form Library launched! 🚀",
|
||||
title: "React Form Library launched! 🚀 [Updated]",
|
||||
description: "We are pumped to announce that the Formbricks React Form Library is ready to be used!",
|
||||
date: "2022-11-22",
|
||||
date: "2022-11-24",
|
||||
};
|
||||
|
||||
<Image src={LaunchDay} alt="Robin Hood Meme" className="rounded-lg" />
|
||||
@@ -27,14 +27,24 @@ We want to make forms in React more accessible. To achieve that, we work with:
|
||||
|
||||
<Image src={CodeExample} alt="Robin Hood Meme" className="rounded-lg" />
|
||||
|
||||
### What does it come with?
|
||||
### What does it come with? [Updated]
|
||||
|
||||
In version 0.1 we layed the foundation for performant, easy to build forms. The library includes:
|
||||
|
||||
- Text Input
|
||||
- Textarea Input
|
||||
- Submit Button
|
||||
- Validation
|
||||
- Checkboxes
|
||||
- Radio Buttons
|
||||
- Phone Input
|
||||
- Email Input
|
||||
- URL Input
|
||||
- Password Input
|
||||
- Search Input
|
||||
- Submit Button with Icons
|
||||
|
||||
And additional features like
|
||||
|
||||
- Validation & Error Messages
|
||||
- Tailwind Support
|
||||
- Standard CSS Support
|
||||
|
||||
@@ -42,7 +52,6 @@ In version 0.1 we layed the foundation for performant, easy to build forms. The
|
||||
|
||||
### Whats on the roadmap?
|
||||
|
||||
- All HTML input types (checkbox, phone, email, address, etc)
|
||||
- Common non-HTML question types (Slider, star-rating, NPS, toggle, etc.)
|
||||
- Easy multi-step forms
|
||||
- Easy form logic
|
||||
|
||||
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 104 KiB |
|
After Width: | Height: | Size: 49 KiB |
@@ -0,0 +1,151 @@
|
||||
import Image from "next/image";
|
||||
import LayoutMdx from "@/components/shared/LayoutMdx";
|
||||
import Button from "@/components/shared/Button";
|
||||
import HeroAnimation from "@/components/shared/HeroAnimation";
|
||||
import HeaderImage from "./weeklyupdate.png";
|
||||
import POC1 from "./POC-1.png";
|
||||
import POC2 from "./POC-2.png";
|
||||
|
||||
export const meta = {
|
||||
title: "Weekly Summary - 25th Nov 2022",
|
||||
description:
|
||||
"Every week, we’ll share an update about all things Formbricks. This week we shipped, wrote docs, talked about a feedback app built on top of snoopForms and prepped for the YC interview! 👉",
|
||||
date: "2022-11-25",
|
||||
};
|
||||
|
||||
_This week we shipped Formbricks React v0.1 and v0.2, wrote lots of docs, talked about a feedback app built on top of snoopForms and prepped for the upcoming YC interview! 🤸_
|
||||
|
||||
<Image src={HeaderImage} alt="Weekly Update" className="rounded-lg" />
|
||||
|
||||
# Highlights
|
||||
|
||||
- shipped Formbricks React 🚢
|
||||
- met devs who built a feedback solution with snoopForms 🦝
|
||||
- got invited to YC interview 🍊
|
||||
|
||||
Let's dive in!
|
||||
|
||||
##
|
||||
|
||||
# Product
|
||||
|
||||
### Launched Formbricks React Library 🥳
|
||||
|
||||
We launched v0.1 and v0.2 of the Formbricks React Library.
|
||||
|
||||
- **Why?** Make it as easy as possible to build forms in React
|
||||
- **How?** Offering all essential form functionality out of the box
|
||||
- **What?** Lots of input components, validation, easy styling, easy multi-step forms, i18n, a11y and everything else you need when building forms in React.
|
||||
|
||||
Have a look at this example:
|
||||
|
||||
```jsx
|
||||
import { Form, Text, Email, Checkbox, Submit } from "@formbricks/react";
|
||||
import "@formbricks/react/styles.css";
|
||||
|
||||
export default function WaitlistForm() {
|
||||
return (
|
||||
<Form onSubmit={({ data, schema }) => console.log("data:", data, "schema:", schema)}>
|
||||
<Text name="name" label="What's your name?" validation="required" />
|
||||
<Email
|
||||
name="email"
|
||||
label="What's your email address?"
|
||||
placeholder="you@example.com"
|
||||
validation="required|email"
|
||||
/>
|
||||
<Checkbox
|
||||
name="terms"
|
||||
label="Terms & Conditions"
|
||||
help="To use our service, please accept."
|
||||
validation="accepted"
|
||||
/>
|
||||
<Submit label="Let's go!" />
|
||||
</Form>
|
||||
);
|
||||
}
|
||||
```
|
||||
|
||||
A lot more information in the [Docs, check them out!](/docs/react-form-library/introduction)
|
||||
|
||||
### What's next for Formbricks React?
|
||||
|
||||
In the upcoming week we're not planning to add more features to it. We'll first ship a version of the Formbricks HQ to offer an end-to-end solution from form creation to submission handling to analysis 👇
|
||||
|
||||
## Formbricks HQ Demo
|
||||
|
||||
With the YC interview coming up next week, we decided to build an end-to-end demo. We're not focussing on production readiness for now. Expect to get your fingers on it the week after!
|
||||
|
||||
<HeroAnimation />
|
||||
|
||||
## Feedback tool for the State of Geneva, Switzerland
|
||||
|
||||
We were delighted to find out that a digital agency built a POC for a feedback functionality in an e-learning offer from the state of Geneva, Switzerland.
|
||||
|
||||
In the call we learned a lot about why they chose snoopForms (privacy-first), how their developer experience has been (pretty good) and what they need in the future.
|
||||
|
||||
They are working on a more comprehensive offer for forms & surveys for the Swiss market built on top of Formbricks!
|
||||
|
||||
So exciting for us to see that our product and positioning resonates so well 😊
|
||||
|
||||
<div className="md:grid md:grid-cols-2 gap-4">
|
||||
<Image src={POC1} alt="Screenshot from feedback tool built with snoopforms" className="rounded-lg" />
|
||||
<Image src={POC2} alt="SCreenshot from feedback tool built with snoopforms" className="rounded-lg" />
|
||||
</div>
|
||||
|
||||
##
|
||||
|
||||
# Community
|
||||
|
||||
Shoutout to octalpixel and Akshu from the EddieHub community for sharing feedback on the React Library. Highly appreciated 🙏
|
||||
|
||||
## Listmonk
|
||||
|
||||
We chose [Listmonk](https://listmonk.app/) as our Newsletter tool as it is a promising open-source option. So far the setup has been pretty good!
|
||||
|
||||
You can sign up to our "Build in Public" list at the bottom of this article to not miss a single one of them 😉
|
||||
|
||||
## YC Interview
|
||||
|
||||
We got invited! This is obviously very exciting so we spent some time getting our answers crisp. We're talking some alumns to learn from their experience 🤞
|
||||
|
||||
## Have a great weekend!
|
||||
|
||||
---
|
||||
|
||||
<div className="mx-auto max-w-7xl px-5 py-5 bg-white shadow-lg rounded-lg text-md text-gray-700">
|
||||
|
||||
You would like to have Formbricks "Build in Public Updates" like this in your mailbox? Subscribe to our
|
||||
newsletter 💪
|
||||
|
||||
<form method="post" action="https://listmonk.formbricks.com/subscription/form" className="listmonk-form">
|
||||
<div>
|
||||
<input type="hidden" name="nonce" />
|
||||
<div>
|
||||
<label htmlFor="email" className="block text-sm font-medium text-gray-700">
|
||||
Email
|
||||
</label>
|
||||
<div className="mt-1">
|
||||
<input type="email" name="email" required placeholder="you@example.com" className="block w-full rounded-md border-gray-300 shadow-sm focus:border-slate-500 focus:ring-slate-500 sm:text-sm" />
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<label htmlFor="name" className="block text-sm font-medium text-gray-700">
|
||||
Name (optional)
|
||||
</label>
|
||||
<div className="mt-1">
|
||||
<input type="text" name="name" required className="block w-full rounded-md border-gray-300 shadow-sm focus:border-slate-500 focus:ring-slate-500 sm:text-sm" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className='hidden'>
|
||||
<input id="e0084" type="checkbox" name="l" checked value="e0084486-8751-43e4-8cfb-58b7c3f5f318" readOnly />
|
||||
<label htmlFor="e0084">Build in public</label>
|
||||
</div>
|
||||
|
||||
<Button type="submit" className="mt-4 w-full justify-center">Subscribe</Button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
export default ({ children }) => <LayoutMdx meta={meta}>{children}</LayoutMdx>;
|
||||
|
After Width: | Height: | Size: 75 KiB |
|
After Width: | Height: | Size: 53 KiB |