정적 사이트에는 폼을 받을 서버가 없으므로 문의 폼에는 보통 타사 서비스, 스크립트, API 키가 필요합니다. Lobsite에서 폼에 필요한 것은 action뿐입니다. /_lobsite/forms/<name>으로 지정하고 배포하세요. 메시지는 스팸을 걸러 대시보드의 제출 내용 페이지와 이메일로 들어옵니다.
<form action="/_lobsite/forms/contact" method="POST">
<input name="email" type="email" required>
<textarea name="message" required></textarea>
<button>Send</button>
</form>
작동 방식
- 폼을 Lobsite로 지정하세요.
action="/_lobsite/forms/contact"와method="POST"입니다. 경로의 마지막 부분이 폼 이름입니다:contact,newsletter,quote. - 배포하세요. 배포가 HTML을 읽어
/_lobsite/forms/로 전송하는 모든 폼을 기록합니다. 직접 등록할 것이 없습니다. - 대시보드의 제출 내용 페이지, 이메일(Reply-To는 보낸 사람으로 설정)에서 메시지를 읽거나
lobsite forms export contact --csv로 내보내세요.
위 상자는 문의 페이지로 시작합니다. 게시하면 공개 사이트에서 폼을 볼 수 있으며, 사이트가 계정에 유지되면 메시지를 받습니다.
내장 스팸 방지
페이지가 제공될 때 Lobsite는 각 폼에 숨겨진 허니팟 입력란과 서명된 타임스탬프를 추가합니다. 허니팟을 채우거나 페이지 로드 후 2초 안에 도착한 제출은 스팸으로 분리되며, 연속으로 너무 많이 보내는 방문자는 거부됩니다. 이를 위해 캡차나 스크립트를 추가할 필요가 없습니다.
검사, 감사 페이지, JavaScript
각 폼은 lobsite.toml에 섹션을 가질 수 있으며 배포와 함께 이동합니다.
[forms.contact]
required = ["name", "email", "message"]
types = { email = "email" }
redirect = "/thanks"
- **
required와types**는 서버에서도 확인됩니다. 실패한 제출은 저장되지 않으며 방문자에게 고칠 내용이 표시됩니다. - **
redirect**는 전송 후 직접 만든 페이지를 표시합니다. 없으면 방문자는 돌아가기 링크가 있는 감사 페이지를 봅니다. fetch로 전송하면 방문자가 페이지에 머뭅니다.Accept: application/json과 함께new FormData(form)을 전송하면 응답은{"ok": true}또는 통과하지 못한 입력란입니다.- 프레임워크는 폼이 빌드된 HTML에 있으면 작동하며, 사전 렌더링과 정적 내보내기가 이를 생성합니다(Astro, Eleventy,
output: "export"의 Next.js,prerender의 SvelteKit).
전체 예제(뉴스레터, 견적 요청, fetch 스크립트)는 폼 문서에 있습니다.
각 플랜에 포함된 것
| 계정 없음 | Free | 유료(곧 제공) | |
|---|---|---|---|
| 제출 받기 | 사이트를 가져온 후 | 예 | 예 |
| 사이트당 월 제출 수 | — | 25 | 상한 없음 |
| 이메일 알림 | — | 계정 이메일 | 인증된 모든 주소 |
| 서명된 웹훅 | — | 아니요 | 예 |
| 보관 기간 | — | 90일 | 1년 |
미리보기 URL은 제출을 받지 않으며, 폼의 파일 업로드는 아직 지원되지 않습니다.
폼의 대상을 /_lobsite/forms/contact로 지정하세요. 스팸 필터링이 포함됩니다.
리디렉션, 헤더, 폼은 lobsite.toml에 있으며 각 배포와 함께 이동합니다.
공개 전에 미리 보세요. 리디렉션까지 포함해 클릭 한 번으로 롤백합니다.
모든 한도가 공개되어 있고, 모든 오류는 다음에 할 일을 알려 줍니다.
모든 사이트는 첫 배포부터 HTTPS가 적용된 *.lobsite.app 주소를 받습니다.
파일은 해시로 저장됩니다. 변경되지 않은 사이트를 다시 배포하면 0바이트가 업로드됩니다.
Lobsite 폼, 폼 서비스, 자체 백엔드
| Lobsite 폼 | 폼 백엔드 서비스 | 자체 백엔드 | |
|---|---|---|---|
| 페이지에 추가할 것 | action |
서비스 엔드포인트, 흔히 키나 스크립트 | 내 엔드포인트 |
| 관리할 계정 | 사이트가 있는 계정 | 두 번째 계정 | 서버 또는 함수 호스트 |
| 스팸 필터링 | 내장 | 서비스와 플랜에 따라 다름 | 직접 구축 |
| 사이트와 함께 롤백 | 예: 설정이 lobsite.toml에 있음 |
아니요 | 경우에 따라 다름 |
| 무료 제공량 | 사이트당 월 25건 | 서비스에 따라 다름 | 호스팅 비용 |
| 웹훅 | 유료 플랜, 곧 제공 | 보통 있음 | 예 |
지금 월 수백 건의 제출이나 파일 업로드가 필요하다면 유료 플랜이 출시될 때까지 전용 서비스가 더 적합합니다. 작은 사이트의 문의 폼이라면 action이면 충분합니다.
자주 묻는 질문
Lobsite 폼에 JavaScript가 필요한가요?
아니요. 일반 HTML 폼이 그대로 작동합니다. JavaScript는 페이지를 떠나지 않고 메시지를 표시하기 위한 선택 사항입니다.
폼 메시지가 스팸으로 분류된 이유는 무엇인가요?
대부분 폼이 브라우저의 JavaScript로 렌더링되어 Lobsite가 페이지 제공 시 추가하는 숨겨진 스팸 입력란을 잃었기 때문입니다. 폼을 빌드된 HTML에 유지하고, 제공된 폼을 브라우저가 제출하게 하세요.
다른 이메일 주소로 메시지를 받을 수 있나요?
무료 플랜에서는 알림이 계정 이메일로 갑니다. 인증된 모든 주소는 곧 제공될 유료 플랜에 포함됩니다.
계정 없는 사이트가 폼 메시지를 받나요?
아직은 아닙니다. 배포는 경고와 함께 작동하며, 사이트를 무료 계정으로 가져오면 폼이 메시지를 받기 시작합니다.
한 사이트에 폼을 여러 개 둘 수 있나요?
네. 이름마다 자체 메시지와 설정을 가진 별도의 폼입니다. /_lobsite/forms/contact와 /_lobsite/forms/newsletter는 제출 내용 페이지와 내보내기에서 분리됩니다.