Select the right starter file
Starter files give an instant boost to your development. Our starter files provide the basis for your development. Yet, there are different starter files. How they might differ is described in this post.
What is a starter file?
Use a starter file to begin your next FileMaker project. It is a shortcut to your solution, as it begins with a set of functions for your ultimate goal. You do not need to start with an empty file, but can start with a proven set of functions, thus skipping probably months of development time. A starter file gives you the expertise of someone else, to start your next FileMaker project with ease.
Which approach do you prefer?
A starter file is not magic. It is solid work, put together for developers like you. Yet, what a starter file actually is, highly depends on how you look at it. We noticed there are two sorts of starter files, which differ in approach:
- More is more
- Less is more
The first option seems a quick fix to your software needs, as it provides a seemingly complete solution. But, apart from the attractive approach to put in as many functions as possible, it is quite possible that your business needs differentiation in areas the “More is more” solution is not fitted for. That usually requires significant effort. The second option does not start with a final result, but rather with a starting ground for you to work with. This also requires significant effort to arrive at a usable solution. However, you can build up, and don’t have to break down. If you need to make substantial effort anyway, the second option might be more efficient, as you can exactly build what you need.
Because of these differences in approach, it is important to look at more details, before you decide what is “cheaper” or “quicker”.
Type 1: More is more
Ready-to-go starter solutions
These solutions follow the concept: The more functions, the merrier. These are not starting points, but present themselves as close to an outcome as possible. That might suggest it is a quick solution, which, of course, sounds attractive. But this only works, if you need not change any important parts, which is highly unlikely for most businesses.
PRO: If you need no change of functionality, it can be a fantastic fit.
CON: If you need a change, this is where it quickly turns into a lot of work. Think of removing unneeded elements, replacing or adding new elements, or reconsidering already implemented workflows.
Type 2: Less is more
Basic functionality and high configurability
These solutions follow the concept: Create a sound basis for development, not an end point. Less is more because: Who knows the end goal, if not only the client? It is impossible to create functionality for something you do not know. This concept leads to more basic functionality, intended to help you build your solution from the ground up. To not offer everything is a bold and useful concept if you look to make amendments, changes anyway. It is a cleaner start
PRO: Efficient tools, structures and modules you need for almost any FileMaker project.
CON: No suggestion of “having it all” instantly shows that work is inevitable.
Questions to ask
Let’s say you work internationally, then you might need multilingual features, multiple currencies and the like. To retroactively build that into a single-language and single-currency solution requires not only skill, but also a crazy amount of work. The more functionality you have, the more work it takes to implement those features. Thus, it is important to choose your starter file wisely, considering future developments.
To decide which starter file serves your purpose best, try to figure out:
- What skills you have
- What skills you miss
- What you want to achieve
- Which workflows need to be implemented.
Ask more questions to enable better answers.

Concepts of our starter files
We create starter files, not “do-it-all”-solutions. Intentional limitations are what improves the basis. The more you define as a final result, the more limited it is. Let’s assume you make a small tool to scan and capture barcodes along a process line, there is no benefit of starting with a business starter file. Yet, you will need generic things like a navigation, probably a project structure and some other functions. We found that less is more, as a simple basis can be used for many purposes.
Some of the concepts we follow rigorously:
- Less is more (if it is done better)
- Separate settings from functionality
- Make settings available in regular layouts
- Create a dashboard for the developer only, to combine all settings of the application
- Think modular and keep it simple
- Provide a clear project structure
- Instead of rules, use structures. This makes you less dependent on a certain developing style.
We developed two starter files with different purposes in view. Let’s compare these two products:
FM Starter
FM Starter is a generic starter file with basic functionality working for you “behind the scenes”. It’s a lightweight solution for almost any project, relieving you from basic requirements.
- Dynamic and global navigation
- Multilingual with automated DeepL-translations
- User account management
- Simple project structure
- Modular approach
- Developer dashboard for easy configuration
- Many more basic modules included
- Great for international projects.
FrankCRM
FrankCRM builds on FM Starter, but was enhanced to give you a solid start with a real application as well. Basic requirements for addresses, contacts, products and sales are included.
- Based on FM Starter
- Modules: Addresses, Contacts, Sales documents, Products
- Extensive VAT-handling
- Multi-currency with automated updating
- Highly configurable, as configuring is simpler than developing
- Perfect for developing international business solutions
The right starter file
Selecting the best starter file for your upcoming project is an important step to succeed. Whichever solution you choose, be prepared to invest substantial effort to create the software you need. Especially if you require a cheap solution, it’s helpful to not only consider the initial cost, but also the costs to make it work the way you want.
A new start for fmstarter.com
The website fmstarter.com was started over a decade ago. It accumulated debris over time, became slow and at times unresponsive. It had to be improved. What are the changes now?
It was not just the content that became a lot. Images were missing the appropriate quality required today. Some topics no longer were important. FileMaker has improved, and some tools became obsolete. By providing a setup with 3 supported languages, much complexity had been added. Some of these things mattered once, but no longer matter today.
A fresh start
Some bold decisions were taken:
- Delete all posts
- Get back to a single language
- Rebuild everything (product descriptions, downloads, freebies, videos).
All of this has been happening during the last two months.
Orders and purchases remained
While most content has been replaced or removed, your orders were kept safe. You will find your complete history in your account.

Standardization
To simplify both the website and our work, all tools have been updated and upgraded and now minimally require FileMaker Pro 20. For years, we supported solutions for older systems back to FileMaker 12 as well, but no longer. Simplifying requires bold decisions, also about a standardization of offerings.
Updates and upgrades
Important improvements have been made for all our products and new versions have been made. Whatever is online today already have these improvements. New versions for products and all freebies included. If anything is still missing today, it might just be in a state of advanced progress for a next update.
Looking forward
Once the heavy lifting on this new site has been completed, more regular posts can be expected. Thank you for appreciating and using our services.
FormatAmount
The formatting of numbers in FileMaker can be tricky. Why doesn’t something work as you expect? This article and the accompanying sample file might clarify some points for you. The internal notation of FileMaker and the local settings of your system and probably even FileMaker can differ. According to Murphy’s law, whatever can go wrong, will go wrong. This is how to fix it.
Number Formatting in FileMaker
FileMaker has a split personality when it comes to numbers. Internally, it always uses a dot as decimal separator — but what you see on screen depends on your OS locale and field display settings. That gap between internal notation and visual display is where things get both interesting and tricky.
The trouble starts when you reference a number field in a script or calculation. FileMaker doesn’t simply hand you the raw value — it renders it, applying locale-specific formatting along the way. What you get may not be what you expect, and it may not even be consistent across different systems.
Take this file. It was made with a European style locale, and only one of the available ones. The results you see in the US, in Asia or elsewhere, might slightly differ. Yet, the processing should resemble something useful. That was the aim. In our testing, it holds up, but these are exactly the pitfalls you’ll encounter in solutions that need to work worldwide.
How to avoid the locale
“GetAsNumber()” seems like an obvious fix, but it has the same problem in reverse: it interprets the value according to the current locale before stripping it down, so you’re still at the mercy of the system settings.
Custom functions add another layer of complexity. Pass them a locale-formatted string and any internal numeric operation may silently produce wrong results. How do you get a better grip on these things?
The solution turns out to be surprisingly simple, once you understand the problem. Use a text field for input, so the value is stored exactly as the user typed it. Detect the decimal separator directly from that raw string. Then normalize it to a dot using `Substitute()` before passing it anywhere that does math. From that point on, everything behaves consistently — regardless of what locale the system is running.
Use the sample file to test and build what you need. The file highlights the single steps needed to interpret a number. It also shows parts of a number to create the proper output for your project. These might be numbers, amounts, or other results. Understand, then create the output you want. Note, that you can import the custom function from this file into your project.

Custom Function and FileMaker sample file to format any number to required specifications. This sample file also explains the pitfalls across different local settings and how to deal with it.
Minimal requirements: FileMaker Pro 20.
Card Windows in FileMaker
Card windows are one specific variety of windows in FileMaker. They appear like an overlay and indeed are an extra layout. Yet they usually appear over another layout, which brightness is dimmed. Card windows therefor offer a new layout over another layout, making it clear in which context it appears.
Context is everything
If you like to present more information about a specific set of data, you can show that data in a card window. There are multiple benefits:
- a different layout
- a different table (if needed)
- a different set of data (if needed)
- a function or representation of data
- a central dashboard
- a selection of kind (like: print options)
- a search form or any other form
These and many more functions are perfectly possible with card windows. To create a card window, simply create a new window and set the type of window to “Card Window”. You then can select a layout, search for any data to display and do what you can do in FileMaker. The sample file presented here will show you different options for using card windows creatively in FileMaker.
Example: A card window can be an overlay for a list of records, where the card windows allows to edit that record.
Example: A card window can also be used to explain something step-by-step.
Typical usages
- showing data
- editing data
- collecting data (in multiple steps)
One example is the free addon «GetHelp» on this site. It uses a card window to display a help text from a help text table.
Card windows
A card window is alway related to the layout it is opened from. While the underlying layout will not change, the card window can change.
- Opening a card window is actually comparable to creating a darker dimmed overlay and the size of the card window is a cutout in that scenery. This means that you can move from one card layout to the next, for example by a button, whereas the cutout of the page remains the same. One only needs multiple card layouts of the same size.
- There can only be one card window open at the same time. If you need a second overlay, use a dialog. But if you do so, would a different solution with fewer options not be simpler and thus, better?
- Instead of opening multiple layers, use a script to close the currently open card window, then open a next card window. As this is a new window, it can have a different size. Thus, the perceived effect for the user is, that the card window expands.
Start exploring
Developers use card windows in FileMaker to create menus, dashboards, and guide users through multiple steps to a final result. There is no right or wrong here, just what fits you best. The sample file shows a number of options.

Sample file to show how card windows can be used in FileMaker.
FilePath Basics
How to create file paths in FileMaker? What seems a simple question is not simple at all. There are good solutions to many questions, but if you are confronted with non-working scripts, what should you do? To our best knowledge, sample file can highlight the basics, isolate questions and techniques to find better solutions.
Filepaths are depending on platforms. That is why there are absolute paths, formatted with the requirements of the active platform. There are also FileMaker paths, results from script steps and relative paths.
Beside these differences, one should be able to build paths, enhance it with file names and the like, in order to export content to files, import files or folders. What is the best approach in each of the cases you need to solve?
It’s all about finding the right connections to make file paths work.

Sample file explaining how to create valid file paths for your FileMaker workflows.
BOM characters
BOM stands for “Byte Order Mark”. BOM characters can be put at the start of a text file to describe the text encoding. These characters are invisible, yet in FileMaker might determine if a file can be read or not. This is a stumble block when recreating JSON files from addons.
Editing JSON-files from addons
When creating an addon-package, FileMaker also creates JSON-files in that package. These JSON files contain descriptions about the addon. When editing JSON-files from addons, you need to read and write that information. You might notice that if you use a regular text editor, or FileMaker for that reason, to read the information, all looks good. However, if you write the information, it might break the addon. FileMaker no longer recognizes the information as valid.
Why is that?
The JSON-files from an addon have a Byte Order Mark (BOM) character at the beginning of the text. This character defines the text encoding and FileMaker expects the BOM-character to be present. When you edit the JSON, you will recreate the text, but skip writing the BOM-character. FileMaker will no longer appreciate your effort and cannot read your addon. You will have to recreate the BOM character.
Invisible
This is the content of a JSON file:
The text does not show a BOM character. However, if you open the file with a HEX editor, invisible things are made visible.
BOM encoding
Let’s start with a JSON-file in a container field. You extract the text, edit the text and want to write it back to the container field before exporting the result.
The sample file shows you the text to be encoded first. To include the BOM character, HEX-encode the text field, put the HEX-value of the BOM character before the text and decode the total of information into the container field.
Once you have the updated result, it already has the BOM character included. Just export the field.
This sample file shows you how to restore the BOM character when writing from FileMaker to a desktop file.
Drill down in lists
Searching for data is always an option. Sometimes, though, a simpler and more intuitive way to find data is needed. Think of clicking your way from generic categories down to the data you need. This will not always work, but where it does, it is neat and clean. This is a technique on how to achieve that.
Structured data
This option is only applicable if you have multiple records with some kind of categories involved. Look at the screen below to see what that could be:
What happened to the body part?
The final records have the detailed information you look for. This is usually the body part of a layout. To exclude that information or layout part, and only reveal it later, you have to use three things:
- Use subsummary layout parts (which need a field to relate to)
- Move the fields from the body part to the subsummary reserved for that final information.
- Sort.
Now sort according to any subsummary field, but leave out the subsummary part where the body fields are displayed. The sorting will now hide the subsummary part where the body fields are listed. Enhance the sorting with that very part, and the body information will show.
Sorting or not sorting, that is here the question. By sorting, you create different list views. You can hide certain parts or hide subcategories, by excluding those parts from the sorting.
This technique is shown step by step in the sample file. From a simple sorting, through the sorting of different categories, finally a drill-down-concept is shown, in which the layout stays the same, but the sorting reveals more or less information. In combination with some design-changes for each part, it will look like categories are expanding or collapsing.
Selecting by clicking
A clever list layout has multiple subsummaries. Each part can have a button and a script attached, which sorts to more fields, and thus expands the view. Selecting by clicking is an intuitive way to show users of your solution where they are and how to select a group of data or even a single record. For complex data, this is probably not the way to go. It can also be a help to get search parameters set.
Explore the options. Happy FileMaking!

Sample file to show how subsummary parts in FileMaker can be used to open/close parts of a list and how to drill-down in list views.
Requires FileMaker Pro 20 or newer.
RandomGenerator
Random data is very useful to test your FileMaker solution. There are several free random generator websites out there. One can even let AI create random data. While that all sounds easy, it does not mean you can easily mold the results you get. But with this test file you can. RandomGenerator shows you how to use FileMaker when creating random data.
Make it random, but manageable
Create random data yourself, with the help of FileMaker. That was the idea behind this little tool. It shows you how you can create random addresses, which you build from the specific information and languages you need. Adapt if you need to adapt. Create new options, as you have a need for it. You can manage, edit, create random data at wish. This might not be the fastest option, but who cares? You need good examples, fitting your needs. That’s what this file is about.
Create building blocks, then randomize
The concept is quite simple: Create building blocks as a basis for variety. Think of countries, genders, languages. Then you can create more complex building blocks, like “female english first names” or “german street names”. Once you have lists in the desired languages, you can randomize the data from these lists, while you build a set of random data.
ZIP Codes
One of the building blocks is about the ZIP codes. You create the structures you need for each country you need. Whatever kind of ZIP Codes you need to make, setup a structure and it will be filled with random data.
Age range
When creating addresses, a random birthday will be set. You can now create an age range, within which the random birthday will be generated.
Adapt this to your needs
We do not know where you live, what languages you speak or need and what it takes to create a perfect set of random data. For example: Each countries has districts, provinces, states or similar. In each state there are cities and villages. We have filled out some information for a few countries, but you know best what is needed for you. If you want to create your own set of data, build it step by step. We have filled out some data to get you up and running. Now adapt the solution to your needs by adding missing parts or optimizing the scripts.
It’s like magic.
Email does not work?
We are happy to send out free content but sometimes require you to provide a valid and personal email address. This excludes free, gibberish, or discardable email addresses. Usually a business address works well, as long as it is personal and not a generic address (like info@ or tech@, which are considered unsafe). We will then send you the download link. Enjoy your free software.
DateFormatting
Dates in FileMaker rely on a local setting, the “locale”. This setting is added when a file is created or when an empty clone is generated for the first time. Which setting is used is dependent on your system settings. This has quite important consequenses for the way calendar dates are handled. This file shows you how you deal with it. Save the date!
The locale
The locale in any FileMaker file describes how certain information is used, saved and displayed. The result numbers or dates might create unexpected results in calculations and display.
The locale is set when you create a new file or open an empty clone.
The locale can be removed by saving a file as an empty clone. It will be reset when that file is opened.
The locale gives FileMaker a fixed point to relate to. That makes sense, as some settings differ widely across the world. To make a FileMaker solution work across the world, this file shows you what to look for.
Date as Number
FileMaker has a function to get a date as a number (SetField (text or number field): GetAsNumber (Date field) ). This overcomes the limitations of any locale, as it gives the number of days since the dawn of time, so to say. That “dawn of time” is the first of January of the Year “1”. It is easy to use that number for calculations or to recreate a date from it (use the function: GetAsDate).
Experiment
Use the files of this example to understand how it works, then apply to your solution(s).

Sample file for FileMaker Pro 20 or newer to explain date formatting in FileMaker and the use of functions to overcome limitations of any locale.
GetHelp
The GetHelp addon is a help system for your Filemaker solution. Instantly added, it helps you to create help texts which are visible and can be used anywhere in your solution.
Purpose
The GetHelp addon is a help function you can use anywhere in your FileMaker solution. Add he addon, then add your help texts to a table and display the text with a single script and parameter. Simple, useful, exactly where you users need your help.
Add the addon to FileMaker
The GetHelp addon must be imported first.
- Download the addon from fmstarter.com
- Unzip the archive
- double-click the fmaddon-file. This file will install the addon for you.
- Restart FileMaker. This will reload available addons and make GetHelp accessible.
- Open any file, switch to layout mode
- In the left panel, select the Addons tab.
- At the bottom of that tab, click on “+” to add an addon. Select GetHelp and confirm.
- This will load the complete addon to your solution, including layouts and scripts.
The addon is now available to use.
How it works
The GetHelp addon is simple to use:
- Add your help texts to the GetHelp table
- For each record a serial number will be added to an extra field.
- Load the GetHelp into a global repetition field (Load-button)
- Each record will be saved into the repetition with the serial number of the record.
- Create a button, link to the script “GetHelp show” and add the serial number of any record as a script parameter.
- A card window will show and display the proper repetition of the global repetition field.
Alternative approach
When using a card window, it would be possible to make that card window layout to be based on the GetHelp table. The referencing script could be searching for the proper record and display that. That would work as well. The solution to load all help texts into a global variable is fast, and no searching is needed. It all boils down to a choice. If you’d like to add images to your Help function, the search option might be easier. What you prefer is up to you. The current solution is simple, neat and easy to implement. Get results instantly.
Email does not work?
We are happy to send out free content but sometimes require you to provide a valid and personal email address. This excludes free, gibberish, or discardable email addresses. Usually a business address works well, as long as it is personal and not a generic address (like info@ or tech@, which are considered unsafe). We will then send you the download link. Enjoy your free software.
























































































