백엔드 없이 동작하는 양식
정적 사이트의 양식에 속성 하나만 붙이면 모든 제출 내용이 대시보드로 들어옵니다. JavaScript도, 삽입 위젯도, 외부 서비스도 없고, 양식을 채우는 사람이 가입할 것도 없습니다.
<form harvis-form="contact"> <input name="email" type="email" required> <textarea name="message"></textarea> <button>Send</button> </form>
세 단계, 그중 하나는 다시 배포하기
익혀야 할 양식 빌더도, 복사해 넣을 엔드포인트도 없습니다. 이 속성이 설정의 전부입니다.
- 01
속성 붙이기
HTML의 아무 양식에나 harvis-form을 씁니다. 사이트에 양식이 여러 개면 이름을 지어 주세요. action과 method는 빼도 됩니다 — 페이지가 전송될 때 채워집니다.
- 02
다시 배포하기
폴더를 다시 끌어다 놓거나 npx harvis를 실행하면 됩니다. 설정할 것도, 붙여 넣을 키도, 대시보드에서 먼저 켜야 할 스위치도 없습니다.
- 03
들어온 내용 읽기
제출 내용은 대시보드의 사이트 아래에 최신순으로 쌓입니다. 행을 열면 전문을 읽을 수 있고, 전체를 CSV로 받아 갈 수도 있습니다.
전부 합쳐 속성 두 개
harvis는 양식이 서버를 빠져나가는 길에 고쳐 씁니다. 그래서 당신이 쓴 페이지는 당신이 쓴 페이지 그대로 남습니다.
<form harvis-form="contact"
data-harvis-redirect="/thanks.html">
<input name="email" type="email" required>
<button>Send</button>
</form><form harvis-form="contact"
data-harvis-redirect="/thanks.html"
action="/__harvis/form/contact" method="post">
<input type="hidden" name="_harvis_redirect" value="/thanks.html">
<input type="text" name="_harvis_hp" tabindex="-1" aria-hidden="true" style="…">
<input name="email" type="email" required>
<button>Send</button>
</form>두 가지 속성
- harvis-form
- 그 양식을 수집 대상으로 표시합니다. 값이 이름이 되어 한 사이트의 여러 양식이 섞이지 않습니다. 값을 비워 두면 “default”로 수집됩니다.
- data-harvis-redirect
- 선택 사항. 제출 후 사람들을 보낼 내 사이트의 페이지입니다. 사이트 밖을 가리키는 주소는 무시됩니다.
이런 것들이 따라옵니다
아래 항목은 모두 기본으로 켜져 있습니다. 어느 것에도 설정 페이지는 없습니다.
JavaScript 없음
양식은 HTML이 늘 해 오던 방식 그대로 전송합니다. 스크립트가 차단돼 있어도, 느린 휴대폰에서도, 텍스트만 그리는 브라우저에서도 동작합니다.
스팸은 걸러집니다
모든 양식에는 사람 눈에 보이지 않는 미끼 항목이 함께 전송되고, 그걸 채운 제출은 알리지 않고 버립니다. 요청 제한이 방문자 한 명과 사이트 하나가 한 시간에 보낼 수 있는 양을 묶어 둡니다.
양식은 얼마든지
이름을 붙이세요 — 같은 사이트의 문의 양식과 가입 양식은 각자 목록을 유지하고, 따로 걸러 보고 따로 내보낼 수 있습니다.
직접 만든 감사 페이지
양식이 직접 작성한 페이지를 가리키게 하면 제출 후 사람들이 그곳에 도착합니다. 지정하지 않으면 간단한 확인 페이지가 대신 보입니다.
언제든 내보내기
버튼 하나로, 지금까지 누군가 보낸 모든 항목이 열로 들어간 CSV를 받습니다. 중간에 질문이 하나 늘어난 양식도 하나의 표로 열립니다.
아무도 따라다니지 않습니다
추적 스크립트도, 쿠키도, 페이지 안의 제3자도 없습니다. 방문자의 주소는 저장 전에 해시 처리되며, 그것도 요청 제한이 두 제출을 구분하기 위해서일 뿐입니다.
제한
문의 양식에는 넉넉하고, 사이트를 겨눈 스크립트가 받은편지함을 채우지는 못할 만큼은 빠듯합니다.
- 제출당 항목 수
- 30개
- 항목 하나의 길이
- 5,000자
- 제출 하나의 크기
- 64 KB
- 사이트당 제출
- 시간당 60건
- 방문자당 제출
- 시간당 20건
- 사이트당 보관
- 1,000건, 최신순
질문
정적 사이트에 양식을 올리기 전에 사람들이 묻는 것들.
정적 양식이 뭔가요?
자기 서버가 없는 사이트에 놓인 양식입니다. 보통은 양식이 보낼 곳이 없다는 뜻이고, 그래서 정적 사이트는 대개 외부 양식 서비스를 빌려 씁니다. harvis는 이미 사이트의 모든 페이지를 전송하고 있으니, 지나가는 길에 제출을 대신 받을 수 있습니다.
코딩할 줄 알아야 하나요?
HTML 한 줄에 단어 하나를 넣을 수 있으면 됩니다. 사이트를 AI가 썼다면 양식에 harvis-form 속성을 붙여 달라고 하세요 — harvis가 AI 어시스턴트용으로 공개한 안내에 그렇게 적혀 있어서, AI는 방법을 알고 있습니다.
JavaScript를 꺼도 동작하나요?
네. 오히려 그러라고 이렇게 만들었습니다. 양식은 평범한 HTML 전송을 하고 브라우저가 그 뒤에 리디렉션을 따라갑니다. JavaScript가 있기 전 양식이 동작하던 방식 그대로입니다.
제 엔드포인트나 다른 양식 서비스를 계속 써도 되나요?
됩니다 — 속성을 붙이지 않으면 그만입니다. harvis-form이 없는 양식은 action까지 포함해 쓴 그대로 전송됩니다. 속성이 붙은 양식에서는 harvis가 action을 바꿉니다. 속성을 붙이는 것이 제출을 어디로 보낼지 말하는 방법이기 때문입니다.
파일을 첨부할 수 있나요?
아직은 안 됩니다. 수집 대상 양식에서도 파일 입력은 방문자에게 정상적으로 보이지만, 파일은 저장되지 않습니다 — 텍스트 항목만 남습니다.
사이트를 삭제하면 제출 내용은 어떻게 되나요?
같이 사라집니다. 제출 내용은 배포가 아니라 사이트에 속하므로, 다시 배포하면 유지되고 사이트를 삭제하면 완전히 없어집니다. 남기고 싶다면 먼저 CSV로 내보내세요.
사이트를 하나 올려서 직접 해 보세요
공개는 무료이고 2초쯤 걸립니다. 양식에 속성을 붙이고 다시 배포한 다음, 자기 자신에게 테스트 메시지를 보내 보세요.