Your multi landing page and leads manager out-of-the-box with Node.js+Express.
Create you landing page system infrastructure in 30 second. TinyLanding is the easy out-of-the-box system for store your leads in sqlite database and manage it. Use your HTML for create landing and don't worry about anything else. TinyLanding is write in Node.js + Express and is ready to use for all javascript developer in easy way.
- Create landing page in simple way by HTML and CSS
- Create multi landing page in one system
- Out-of-the-box leads system
- Export leads in CSV
- Send email to admin each lead form reached
- Use CsrfToken for security
- Compress the output in minified mode
- Use sqlite
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
Clone this repository to your destination and edit.
git clone git@github.com:pasalino/TinyLanding.git
Use npn
or yarn
to install it. Go to project folder, use install command There is post install scripts that runs after install dependences.
npm install
After install all dependences, the post-install script crate and execute all migrations on sqlite db.
The database file is placed in app/data
folder. You can change all db connection properties in config file app/config/database.json
. Use development key for use in development and production key when you are ready to switch TinyLanding it in production mode.
Copy app/config/email_dist.json
and rename it in app/config/email.json
. Change all configuration with all yours email configuration. In same way of db config file, use development and production keys respectively in develop and production mode.
In this version the email password setting isn't crypted. Remember to use an email other than yours or to hide this file from prying eyes.
TinyLanding is the best way for frontender and webdesigner to create in rapid way a landing page in HTML with lead form contact. The system use mustache view engine system. You use your HTML, css and script directly in mustache file.
Change file app/views/landing_anem/index.mustache
with your HTML for create your personal web page.
- (Under construction) Include template form.mustache in landing page
- (Under construction) Include JQuery and main.js scripts
- (Under construction) Include main.css
- (Under construction) Errorfile
In app/public/landing_name
folder there is all public asset for landing. This file is reached from root url. In this folder you include all CSS, scripts, images, other assets used in your landing.
For each leads form sended, TinyLanding send to admin (configured in email.json) a recap email of lead.
If you want personalized message for this mail, change app/templates/lead.mustache
file. This file use the same view engine of HTML: mustaches.
Remember to use absolute URL for image and embedded CSS style for this file.
For running the system use npm start
command.
TinyLanding use out-of-the-box system for store leads in db. The only choose at moment is use Sqlite db. For read all leads stored you can use script manager.
Use bin/manage.js
for mange landing and leads
- (Under construction)
Use bin/manage.js --help
to show commands list
For use TinyLanding in production use this command:
NODE_ENV=production PORT=80 npm start
In this mode, TinyLanding use optimized settings:
- Compress with gzip and minify all response
- Recording error log in
/app/data/log
- Using caching system
- Using standard 80 http port
If you change listen post use different
PORT=[port_number]
argument when run the script.
Remember to use process manager for production mode e.g. PM2
A process manager is a “container” for applications that facilitates deployment, provides high availability, and enables you to manage the application at runtime.
You can create docker container:
-
Build
-
Run
You can use docker-compose for run TinyLanding in production
- Istruction for create PM2 Services
- Provisioning on Heroku
- Documentation for edit template
- Documentation for run in docker
- Create config system
- Adding Test
- Add linter for javascript client-site
- Add linter for css
- Add linker for html
Pasqualino de Simone @pasalino
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
We use SemVer for versioning. For the versions available, see the Tags.
This project is licensed under the MIT License - see the LICENSE.md file for details