A frontend to create email templates and share them with others via standard browser or mailto links. It also supports contact data backends. An example of the template creator can be found on actnow.email and an example integration of backend data on actnow.email/meps.
The app uses sql.js: contact databases are fetched from a server but all queries are run locally. This makes the service easy to host as no database backend service needs to be deployed.
Features:
- Create email templates
- Quickly share templates via URL, QR code, or social media integration
- Supports contact data backends
- Multi-language support
- You need to install npm.
- Clone and navigate into this repository
- Run
git submodule sync
andgit submodule update
to initialise the git submodules - Run
npm install
to install the npm dependencies - (optional) Run
./update_db.sh
to scrape and build the backend data - Build the app
npm run build
. Files will be put intodist/
. - Run the app on a local webserver by running
npm run start
.
The default setup creates short links using https://actnow.link.
Said service is powered by YOURLS.
You may change the service by replacing the corresponding URLs in src/consts/urls.ts
and updating the client src/shortLinkClient.ts
and the corresponding client calls in other files.
If you also decide to use YOURLS, then note that an initial credential retrival call to
credentials.php
is made,
the content of which is as follows:
<?php
$signature_token = <ADD_TOKEN_HERE>;
$hash_type = "sha512";
$timestamp = time();
$signature = hash($hash_type, $timestamp . $signature_token);
$result = (object) [
"signature" => $signature,
"timestamp" => $timestamp,
"hash" => $hash_type
];
header("Content-type: application/json");
echo json_encode($result);
?>
Contributions are very welcome.
Please follow the existing code structure and patterns.
Note that though integrating new contact data backends should be moderately straightforward,
a few places (e.g. the footer) are currently assuming that only
the European parliament (actnow.email/meps) is supported.
The search form FormMepsSelect.tsx
may be abstracted in certain places when integratin a second backend.