{"id":18032734,"url":"https://github.com/sanderdlm/form-storage","last_synced_at":"2025-06-23T09:07:49.560Z","repository":{"id":134050768,"uuid":"509218285","full_name":"sanderdlm/form-storage","owner":"sanderdlm","description":"Single-file form storage in sqlite","archived":false,"fork":false,"pushed_at":"2022-06-30T20:15:30.000Z","size":2,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-20T01:08:59.452Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sanderdlm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-30T20:04:12.000Z","updated_at":"2022-06-30T20:15:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"0978804f-0b53-4441-8d86-13e259d8645e","html_url":"https://github.com/sanderdlm/form-storage","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sanderdlm/form-storage","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanderdlm%2Fform-storage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanderdlm%2Fform-storage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanderdlm%2Fform-storage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanderdlm%2Fform-storage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sanderdlm","download_url":"https://codeload.github.com/sanderdlm/form-storage/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sanderdlm%2Fform-storage/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261449798,"owners_count":23159806,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-30T10:15:37.975Z","updated_at":"2025-06-23T09:07:44.550Z","avatar_url":"https://github.com/sanderdlm.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Formspree for dummies\n\nSingle-file proof-of-concept for a self-hosted Formspree alternative. Can be used to accept all incoming POST calls and store them in an sqlite database file. Useful for forms on static sites.\n\nNOT safe, do NOT use this as-is. For this to be really useful you'd have to make the form keys unique, and enforce usage of each key by only 1 user/domain. Right now everyone can write to any key with any content/fields.\n\nExample:\n```html\n\u003cform action=\"https://yourserver.com/someRandomKey\" method=\"post\"\u003e\n    \u003clabel for=\"email\"\u003eYour Email\u003c/label\u003e\n    \u003cinput name=\"email\" id=\"email\" type=\"email\"\u003e\n    \u003clabel for=\"message\"\u003eMessage\u003c/label\u003e\n    \u003ctextarea name=\"message\" id=\"message\"\u003e\u003c/textarea\u003e\n    \u003cinput type=\"hidden\" name=\"_redirect\" value=\"https://yourstaticsite.com/thanks.html\" /\u003e\n    \u003c!-- a very basic honeypot for spam prevention --\u003e\n    \u003cinput type=\"text\" name=\"_dry\" style=\"display:none !important\" tabindex=\"-1\" autocomplete=\"false\" /\u003e\n    \u003cbutton type=\"submit\"\u003eSubmit\u003c/button\u003e\n\u003c/form\u003e\n```\n\nSubmitting this form will create a new entry in the sqlite database on your server for key \"someRandomKey\" and the entire POST body (email and message) as a JSON encoded string. You can then query this data and handle it as you please (mail it to someone, export it as a CSV, send it to Google Spreadsheets, etc..).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanderdlm%2Fform-storage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsanderdlm%2Fform-storage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanderdlm%2Fform-storage/lists"}