Contact form (ask.chaipat.cc)
Component
The contact form, api/mail.js, is the server side of the site's Mail page: a serverless function on Vercel that saves a message and forwards it to his inbox through the Resend email API, with the sender as the reply-to address.
It sends no confirmation to the sender, because that would let anyone use the form to send mail to any address. Spam is kept out by a hidden field that bots fill in and by a limit of five messages an hour from one address. Messages are also kept in the database, so none is lost if forwarding fails.
In the knowledge graph
Contact form and the 3 things it is linked to. Open any dot for its page, or explore it in the full graph.
As data
Everything on this page is read from triples in the knowledge graph. These are the 10 it states about Contact form, and 2 more its ontology implies; the console runs SPARQL over the whole graph, here in your browser.
@prefix id: <https://ask.chaipat.cc/id/> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix cj: <https://ask.chaipat.cc/ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . id:SiteMail a cj:Component ; rdfs:label "Contact form (ask.chaipat.cc)" ; cj:shortLabel "Contact form" ; cj:componentOf id:ThisSite ; cj:sourceFile "api/mail.js" ; cj:integrates id:Resend ; cj:uses id:Vercel ; cj:description "Saves messages sent through the site's Mail page and forwards them to his inbox." ; cj:article "https://ask.chaipat.cc/wiki/SiteMail"^^xsd:anyURI ; cj:implementationDigest "sha256:dcee08de781e64231089c523244f73adf9da1531b91d739c0eae309fda5ff654" .