Skip to content

Your landing page and leads manager out-of-the-box with Node.js+Express

License

Notifications You must be signed in to change notification settings

massierc/TinyLanding

 
 

Repository files navigation

TinyLanding

standard-readme compliant airbnb-style FOSSA Status License: MIT Dependency Status Maintainability Build Status codecov CII Best Practices

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.

Demo - tinylanding.site

Table Of Contents

FOSSA Status

Features

  • 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

Getting Started

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 

Installing

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 

Setup

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.

Customizing

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.

HTML

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.

Mail Template

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.

Using

For running the system use npm start command.

Manage TinyLanding

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

Deployment

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.

Deploy on Docker (Under Construction)

You can create docker container:

  1. Build

  2. Run

You can use docker-compose for run TinyLanding in production

Roadmap

  • 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

Maintainers

Pasqualino de Simone @pasalino

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Versioning

We use SemVer for versioning. For the versions available, see the Tags.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

About

Your landing page and leads manager out-of-the-box with Node.js+Express

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • JavaScript 58.8%
  • CSS 34.1%
  • HTML 7.1%