Starter App

Jump Start Your App Development

We've seen it time and again. Weeks of work just to create an application's login page. Endless discussions about frameworks and tech stacks. Worries about security and scaling. All while precious time to market is lost. No more. With Starter App, you have session management, load balancing, transactions, XSS and SQL injection protection, REST APIs, ORM, account management, signup forms, login, activation, password reset, email notifications and more worked out day one.

Hit the ground running with a distributed application architecture, working web and mobile apps, and a back-end REST API and database. All so you can get going with what's really important — your great product.

View source on GitHub

Your Design on a Working App

We can quickly re-skin the mobile and web apps by editing the Storyboard or CSS and deliver styled and working Welcome, Signup and Login screens, as well as Account maintenance and Support pages within the app. Before you know it, the basic structure of your distributed application is in place, and we can move on to the important features specific to your product.

REST API with Versioning Support

Modern applications need a robust API layer for communicating between components. We get you off to the right start with a RESTful API complete with authentication and versioning.

Our authentication model provides both security and flexibility. Session tokens can be passed via Authorization headers or cookies. Session timeouts are configurable via system properties. And device tokens or registration IDs can be provided by mobile devices to support push notifications.

Versioning is critically important for distributed applications, since mobile apps in the field may not be immediately updated when an API update is released. All our API endpoints include a version number, and we leverage tools such as Google Gson's @Since and @Until annotations to enable us to respond to clients with the version of the object they expect.

Example Request

curl \
  --data-urlencode "email=me@example.com" \
  --data-urlencode "password=mypassword" \
  --request POST "https://myapp.example.com/api/1.0/session"

Example Response

{
  "id" : 199,
  "account" : {
    "id" : 1,
    "firstName" : "Test",
    "lastName" : "User",
    "email" : "me@example.com",
    "password" : null,
    "createdOn" : "2016-06-07T03:35:28+0000",
    "lastLogin" : "2017-07-10T16:27:48+0000",
    "isAdmin" : false,
    "isActive" : true,
    "activationCode" : "fbe9e2497486cc3ee326eae7b43e1fea36b46892f04d681d48fd36d2c5dd1b1c",
    "codeGeneratedOn" : "2017-01-17T09:10:48+0000",
    "pendingEmail" : null
  },
  "deviceToken" : null,
  "sessionToken" : "127a60371bb10f7050f56108fb842b810a78d658be8b7abbf0500356ce537b73",
  "createdOn" : "2017-07-10T16:27:48+0000",
  "lastAccessedOn" : "2017-07-10T16:27:48+0000",
  "maxInactiveSeconds" : 1800
}

Enterprise Grade Tech Stack

Our server-side infrastructure features the Wildfly Application Server, a Java EE container that has key advantages over competing platforms.

  • The Java virtual machine uses compiled code that runs many times faster than scripting languages such as PHP, Python, or NodeJS.
  • As a fully compliant Java EE container, resources are pooled and shared via session beans, decreasing latency and optimizing resource allocation, as opposed to simple servlet engines like Tomcat.
  • A web application build is a single file, which can be easily deployed, tracked and managed across multiple production servers, unlike the loose collection of files used by most platforms.
  • Tasks can be performed asynchronously or in the background. Single-threaded platforms such as Node or PHP cannot do this and require using a secondary system such as cron jobs to handle batch processing or long running tasks.
  • Logs are consolidated and all entries timestamped and tagged with the logging level, making it easy to monitor your servers and know where to look when issues arise.

We employ a load-balanced, 3-tier architecture in our standard deployments, which facilitates auto-scaling and the creation of microservices.

Our "less is more" philosophy encourages performance by minimizing layers while also allowing the flexibility to add solutions when needed, such as NoSQL databases or single-page JS frameworks.

Contact Us

Technology

Java
Wildfly
JAX-RS
EJB
JPA
Jsoup
Google Gson
HTML5
JQuery
Web Sockets
Twitter Bootstrap
iOS
Swift
CoreData
Android
SQLite
Realm
PostgreSQL
NoSQL
Hadoop

Tools

Amazon Web Services
EC2
ELastic Load Balancing
Auto Scaling
S3
Cloudfront
DynamoDB
Google Cloud Platform
Pingdom
DNS Made Easy
GitHub
PayPal
Recurly
Twillio

Address

Ludewig Multimedia, Inc.
1537 Fourth St. #157
San Rafael, CA 94901

Phone

(415) 491-5024