Hello & Welcome
So you bought a Livecode mega bundle? Congrats, you are one step close to building the software project of your dreams. Livecode & The AppStarterStack, together, can help you to create an MVP of your product, and then to turn that MVP in polished, professional, production-ready software.
The AppStarterStack has 100s of features to make your application development faster, more joyful, and much less daunting.
Here is a list of some of them, unfold each section to learn more …
The AppStarterStack was designed from scratch to be a software architecture which enables us .. to build and iterate on simple or complex software projects in parallel.
- It was built so we never start from scratch and never build the same basic features twice.
- It was built to be performant and to use the Livecode Engine's strengths and avoid its ..... quirks.
- It was built to build to all platforms from one file from the start and to always be ready to be built into a standalone for testing and demoing. This enables faster feedback loops from users.
- It was built to be so flexible that we could make completely unique applications while using the same underlying architecture.
- It was created to enable a developer experience where one is making constant forward progress on the actual functions and interfaces of the software ; Almost from the very beginning.
There are many ways of building an architecture such as this, and all of them can work. This one is not perfect, but it serves its purpose well, hopefully it can same you time and effort in your software development journey.
When we designed it we focused on these attributes
- Having a robust feature set of stack functions that are common to a very wide range of applications.
- Functional integrity and indefinite uptime
- For sweeping visual changes across the entire application using code for easy theming.
The following is the architecture design .... designed to give you as much freedom as possible.
- Shared Background (Shared across all cards on the stack)
- Background Image
- Background Gradient
- Array of 1 or more Browser Widgets
- Card Content (The controls for the current tool)
- Shared User Interface (Shared across all cards on the stack)
- Navigation Icons
- Datagrids (For technical reasons, Datagrids are kept in the top level of the hierarchy of each card)
- Shared Background (Shared across all cards on the stack)
- Easily define multiple Navigation Bars and items using script
- Easily switch between different navigation bars and layouts
- Display up to 4 at one time (left,top,right,bottom)
- Navigation Items can include a Label, SVG Icon, or Image Icon
- You can make your stack look the way you need to match your style, branding and color scheme.
- You can use a background image or gradient that resize smartly to cover your stack without stretching.
- Default appearances of buttons and controls are set using code, so you can quickly make sweeping visual changes across your stack.
- You can use transparency to create interesting effects in the appearance of your stack
The AppStarterStack has a Task Scheduler which processes:
- Loading / Saving Files in Chunks
- Downloading HTTP (REST) Requests (returning Livecode array)
- Downloading Internet Files (Into memory & to File)
- S3 Object Upload / Download
There are also functions available for:
- CRUD SQLite Key/Value Database
- Blocking File Load
- Blocking File Save
You can view the history and progress of all scheduled tasks using the Grid on the Engine Info card.
Real-Time & Non-blocking
A "heartbeat" loop helps your user interface to update as soon as new data becomes available using update subscriptions.
- Easily update cards, grids, or individual controls whenever an update is available.
- Built to use concurrency, to be non-blocking, where loading and processing of data can occur while the user is navigating the stack and its various cards / tools.
The AppStarterStack has tons of helper functions to make your life easier, the stack itself contains examples and demos of all of them. You will love the one liners that can do so much.
- Alignment & Resizing of Controls
- Centering Text Vertical
- Getting File Information
- Setting Cursors
- System Shell
- Continuous Update Loop
- Easy Encrypt / Decrypt functions
- Auto File Processing on Load/Save
- Isolated & Global Flags
- Auto Text Resizing
- & lots more
- Bandges are easy really easy. They are 'registered', on a per-card basis, using a single line of code.
- They are updated just as easily with a single line of code
- Show a custom Right-Click menu anywhere, anytime
- All right-click commands are defined using code and then simply triggered by a button on the right-click menu
- With the AppStarterStack you get to customize a Right-Click menu and trigger it with a single line of code.
A Livecode "SuperGrid" is a Data-grid object that is:
- Used to display several, completeley unique datagrids
- It uses just a single "universal column"
- This helps speed up datagrid development and re-usability.
- It also helps in the performance of the Datagrid
The 3 datagrids on the Info card are an example of a Supergrid.
Easily communicate with your user by displaying an Overlay message which appears on top of every other control on your card.
- Optional action button, triggers a command you specify.
- If multiple messages are sent, one goes before the other.
- Specify the color of the overlay's background
- Specify the vertical position of the overlay message (top,center,bottom)
- Display or Update a progress bar with 1 line of code.
- The color of the progress bar goes from yellow to green.
- Set a progress bar's message and the units it uses
- Have as many progress bars as you need, as they are addressed individually
Tips & Tricks
- If you change the image "Application Logo" of the about page, you can click it, to imbed it into the stack. The same code will work on any image as long as it contains that snippet.
- Double Right Click on a navigation icon to open the card script.
- Don't create controls from scratch but copy existing ones.
- If you want to create brand new unique controls to your project, use the "ResizeCard" handler on each card to work out its size and alignment when the size of the stack changes.
- When modifying working on alignment of controls, save before you test the resize handler.
- Always create the sizing and alignment of your UI elements first. Then work on the functionality.
- Feel free to delete all the cards you do not need except for the Resources card. Its recommended to keep the "Info" card around, as it can help you to find problems. Those cards are there are examples to learn from, so while you are learning the stack, it may be helpful to keep the example cards around.
The AppStarterStack includes a custom component called "Display Canvas" which was presented at the 2022 developer conference. It is as yet undocumented and in some extreme conditions effects the stability of the Livecode engine in a really bad way.
For now, use this component at your own risk.
The developer palette is a additional stack which contains some helpers to the functions of the AppStarterStack. It is very simple and little work has been put into its appearance It is intended to help you to accomplish some of the tasks easier. But it kind of sucks.
This palette has been moved to become a AppStarterStack Developer Plugin, which can be updated and improved without affecting your code base.
I will be using the AppStarterStack for years to come, so I will definitely be updating this plugin on a regular basis to add functionality and time saving shortcuts. Perhaps even other functionality I have not thought of yet.
I will use this to improve my own and your developer experience for years to come.
What is the learning curve
To use the AppStarterStack you must have basic knowledge of Livecode.
It was built to give you more power and ability than the Livecode and an empty stack can give you.
No one should expect to use the stack without first reading the documentation, watching the available tutorials, and studying its main architectural features.
It is important to include a few hours just for the study of the stack. It will help you in the long run. Learning it and seeing how it works under the hood will make you a powerful and proficient developer. With a little patience and dedication, you can learn this stack and build your application faster and better as a result.
Who is this for?
This AppStarter Stack is for business owners and developers who are working to build professional software for any of the 5 platforms, using Livecode version 9 / 10.
- For the business owner, it saves you time to market and development cost
- For the developer it saves time and makes the work focused on the features of the specific software you are building.
The use of this product requires a competent Livecode developer who is able to learn a few concepts and follow instructions exactly to learn how to do various tasks.
Your license can include time with your developer to on-board and jump-start your project.
Why would I use this stack?
Livecode is an amazing platform for the interactive creation of multi-platform software;
BUT, there is still lots to do to make a working, production ready application for multiple devices and operating systems.
The AppStarterStack includes many of the features that ANY application needs. You no longer need to program and engineer these commands and functions, you just use them.
As fun as it is, it takes a lot of time and effort to write correct code to make fast, flexible and non blocking applications. You no longer have to do it, if you use the AppStarterStack for Livecode.
Can I change how it looks?
Yes, all of the controls of the stack are open to change and customization. You can totally make your project look on-brand and on-style. *
- You control almost every aspect of how your stack looks, its colors and esthetics*
- use #HEX colors or the "Material Design" palette (example: green,400).
*Except for controls coming from your OS. Menus, sliders, toggles, they are themed to the default of your operating system.
What do you receive when you license the AppStarterStack?
When you purchase a license for the AppStarterStack you will receive:
- The AppStarterStack Demo .livecode file (which builds to all platforms)
- Access to growing library of videos and tutorials.
- Documentation .PDF
- Access to private github where the script exports of the AppStarterStack will live. (This is the repository where we will add features, handlers and bug fixes to the code.) Each pull request will be well documented so that you are clear what has changed.
- Coming Soon "AppStarterStack Developer Plugin". This developer tool palette was previously included in the AppStarterStack, but we decided to separate it out, and create a Livecode IDE plugin which we can update and improve without affecting your codebase file in any way.
Is there a free, open source version?
We support Open-Source software innovation. We are really proud of the AppStarterStack and its features, but it is hardly anything we need to keep secret or closed.
However, there is currently no strategic advantage to open-sourcing it. It is not really for general consumption. In the future, this position may change.
We built it, so that we could complete the software projects that represent our aspirations as cosmic travelers, fellow humans and entrepreneurs.
We are offering it to help others who have specific software they are trying to build without taking too long and ending up with a production-ready MVP in lets say .... a few months, not years.
How does versioning work?
For the foreseeable future we will create 2 tracks of the AppstarterStack, one for each of the 2 current Livecode versions. We plan on maintaining only 2 versions at any given time.
- AppStarterStack 1.0 for Livecode 9
- AppStarterStack 1.0 for Livecode 10
Because Livecode is the best all-around multi-platform application development engine in the world.
Its not well known, or fancy, and it has its issues and warts (the aging IDE), but under the hood the engine is very capable, powerful and fast.
There is nothing you cannot build in Livecode in a very reasonable amount of time, now even faster with the AppStarterStack
And for that reason it is the platform of choice for our projects now and in the future.
proudly built with Livecode
How long will the AppStarterStack be supported?
We are committed to maintaining the AppStarterStack for at least this decade, 2020s and beyond.
As a software company, we are really just getting started 🙂 We will be using the AppStarterStack and Livecode to build many products in the coming years. Some will be small, some big, and maybe some will be with you.
Should anything happen to cause us to be unable to update the AppStarterStack, it won't really matter.
There is no encrypted code, there is no super complex code, you can fix anything you need to fix in the codebase should something stop working or should anything be incorrect.
We, of course, are there to help based on the license we negotiate together.
Using the stack as your starting point does not inhibit your ability to use the Livecode Engine entirely correctly to create bug free software.
The current AppStarterStack is made up of 10,000 lines of documented and human readable code.
Are there any limits to what can be built?
The AppStarterStack does not place any limit on how you are able to use the Livecode Engine. All the power is still in your hands to build the application you need.
As a licensee, you are free to build a product to sell to others. Or you can use it to make an in-house application to help with a problem somewhere.
We always hope that the AppStarterStack is used to make life better, safer and more abundant for everyone.
If you are found to use the AppStarterStack for evil, to run scams, or in any way to knowingly harm another being or to break reasonable laws where you live.
Only then do we reserve the right to terminate your license.
Low code, no code? All code.
The AppStarterStack is an all code solution. We do not avoid code in any way. In fact , with the AppStarterStack we are avoiding the Livecode IDE, but harnessing the power of its incredible engine using LC script.
You can very definitely build a simple app with the AppStarterStack or an advanced complex one as well.
It is not a great choice for building apps if you want a "drag and drop" non technical experience.
For a simpler less technical experience a tool such as Appli is perfect. (I am part of the Appli team. :D)
Is support available?
Yes, direct support for you and your project is available.
Your license will include an onboarding session where I help you to get started shaping your project using the AppStarterStack.
Your license can also include support hours from us where we can help you put together certain parts of your application.
Can we hire you to build our application?
We can definitely support you on your journey towards the completion of your software project.
- If you are searching for a developer to do the job entirely, that is also a possibility.
- We can also help you find a competent Livecode developer to help you complete your project.
In either case, please contact us.
What are the best benefits of using the stack as a starting point?
- I can focus on the user experience and functionality of my application, instead of working on 'under the hood' functions which support my application.
- My application is ALWAYS in a state where it can be built into a standalone for the purpose of demoing, testing. On all main platforms.
- I am almost always making forward progress in the usability of my application, making it a process of greater flow of inspiration.
- It is easy to pick up where you left off, because there are so many fewer things you have to think about.
- A lot of the hard stuff is already done, each and every time I start any new Livecode application.
- Each project can look unique and distinct from the others.
The vision for the community is simple. We can be a group of developers building software using the same tools and starting point.
- We respectfully help each other navigate our challenges
- We can report problems we encounter with using the stack
- and we can request features we'd like to see.
- We can also post useful changes we've made to our stacks
I, Tom, will be one of these community developers. It is the very reason I built it; To use it to build software products, which is exactly what I will be doing for years to come.
Ultimately I hope the community can help itself to overcome challenges faster and benefit from the experience of others, and to complete our respective software projects on time and on budget.
What does the AppStarterStack not include?
The AppStarterStack contains no security related features, except for simple hashing and encryption functions. But this does not mean it is insecure in some way.
It is your responsibility to ensure the security of your code / any API keys. Live code has code encryption features that can be used to increase the security of your code.
For code that must be kept as secure as possible, we recommend having an encrypted stack from which you can ask for data using a function. ie. GetSecret("API Key")
Whats the best way to learn the AppStarterStack
To learn to use the AppStarterStack you need "some" knowledge of the basics of how Livecode works.
Nothing is impossible, but if you have never used Livecode before, it will be difficult to derive the benefits of using it.
Key Concepts you must understand before working with the AppStarterStack
- The Message Path
- Variables and Custom Properties
- Scripts & Behavior Scripts
- Understand the practical difference between a function and a command
- Self-Calling Loops
- Front Scripts / Back Scripts, Library Scripts
- Livecode Controls & Custom controls
- Shared groups
- Difference between Send, Send In Time, Dispatch.
- Meaning of "Wait With Messages"
- Understand the concept of Concurrency
But that is it.
Once these concepts are understood to you, the AppStarterStack's architecture can be completely understood
Can I push changes to the community repository ?
Thats a great question.
You can create a branch of the main repository to share any changes / improvements you have made to the AppStarterStack's codebase.
What is the best way to build my idea with the AppStarterStack?
First, have a plan, go in knowing what you want to build and what it consists of.
Second, do the work of creating your different interfaces.
Interfaces are made out of different arrangements of groups of controls.
Third, write the code that represents the logic of your application and its different functions.
Put each tool (section,card)'s code into the script of the card.
Put shared code into stack "Code Library"
Is it possible to change the namespace of the codebase?
Yes you can change the variable and stack namespace of the codebase, but it is not as simple as a search/replace. Let us figure out the procedure of how to do this safely. Stay tuned.
Is the AppStarterStack Intellectual Property of MakeShyft?
Yes it is. Through your license we shared the rights to use and to alter the AppStarterStack to build software products; To sell and to distribute (standalone builds) to an unlimited number of users until the end of time.
The AppStarterStack is a only starting point for the software you will build using your ideas and your genius. The AppStarterStack is there to support the functions of your application.
Your IP is everything you add or change in the stack to create your final application.
We are confident that the freedom your license provides is sufficient for you to bring your application into reality and into the hands of your users.
We wish you all the best on your journey as you build your software project.
Standalones do not check or validate your AppStarterStack license and never will.
You are asked to place your AppStarterStack license key inside the codebase of the application(s) built with it.
The AppStarterStack plugin will have a license validation function. If this validation fails, nothing happens. It is there for customer support and authentication of our customers.
Mega Bundle Bonus
4 bi-weekly live training sessions. In these sessions, the core “skills” you need and the core concepts you need to understand to start benefiting and increase from using the AppStarterStack.
- July 5th 2022
- July 19th,2022
4+ episodes where we build a full application called “LC Benchmark”, a benchmarking tool for the Livecode Engine from start to finish.
- Sessions will be recorded and made available afterwards, just click the links.
- All sessions will by in Eastern Standard Time
Terms of License
The license you receive as part of this special mega-bundle deal is as follows:
- Lifetime license to use the AppStarterStack “.livecode” file to create new software applications
- Lifetime license to modify any part of the AppStarterStack codebase to create and maintain the functionality your application needs. (The AppStarterStack has no encrypted code)
- $499 bundle:
- (1) One commercial (distributed and sold to others or used as as part of a SAAS) application
- (1) One in-house (something you built for yourself or your team) application
- Unlimited applications that are distributed for free
- (1) One commercial (distributed and sold to others or used as as part of a SAAS) application
- $999 bundle:
- Unlimited commercial applications
- Unlimited in-house applications
- Unlimited applications that are distributed for free
- You can sell / distribute your standalone builds to an unlimited number of users
- Lifetime access to the Github repository where updates and fixes will live
- Lifetime access to growing library tutorials and ever more complete documentation
- Bug fixes and updates to AppStarterStack version 1, which will have LTS (long term support) until at least the end of 2025
- You can share your application’s stack (not the AppStarterStack) with direct members of your team
- Your single license applies to you and/or your team as one entity
- You are responsible to ensure your team does not violate this license
- We accept NO liability over the content, functions, performance and security of the software you publish
- Correct and complete testing of your software is your responsibility
- To be valid, the AppStarterStack license requires a valid Livecode license for at least 1 of the supported platforms
License does NOT permit
- To modify the AppStarterStack into another “template product”.
- Distribution or sale of the original or modified “.livecode ” file.
- To post the AppStarterStack or any derivative in a public code repository
- Open-sourcing what you built with the AppStarterStack, (if you want to open source your software, do not use the AppStarterStack)
- To use its components, handlers and functions in codebases not based on the AppStarterStack
- To sell or transfer this license to someone else, except in the event your company is being acquired, or the distribution rights of your software (built on AppStarterStack) are being sold. In this event, the same license terms apply to the new owner.
- If you need an alternation to your license, or a custom one, you can always reach out to us, and we can work with you to make things work.
Your licensed can be revoked if ...
- You break the terms of license
- You are found to have used the AppStarterStack to scam or attack or hurt others in any way.
- You post the AppStarterStack stack or code in a public repository
- You are using the AppStarterStack to break reasonable laws in your country / region
- We are committed to fixing any bugs found or reported in the AppStarterStack v 1.0 series until the expiry of LTS (end of 2025)
- AppStarterStack v 1.0 series will be updated to work with Livecode 10 stable releases, and a new stack will be posted to the repository along with the changes to its scripts.
- We are committed to continued effort to improve documentation until all features are documented
- Community support will be available within the Github repository
- Paid and professional support is available for problem sol
- You received a stack that boots correctly, and has working examples of 100s of functions.
- When things stop working, loading, resizing, it very likely means that you made a mistake and did not correctly follow its conventions
- Always check the existing documentation, list of tutorials, FAQ, to see if your question has already been answered.
- When someone asks a question and we answer it, we will post the question and the answer in one of the FAQs
- Its may not be possible to attend to the individual issues of every license holder, so please be reasonable with the volume of your support requests and questions.
- When submitting a request for support, please record a video of your problem and explain what it is. Your videos are confidential.