Description
Foliocast is made for artists, designers, photographers, architects and studios who already show their work on a WordPress site and want an Instagram feed that keeps up, without spending their evenings on it.
The plugin reads the projects of your portfolio (posts, pages or the project post type of your theme), prepares the Instagram posts for you and publishes them at the planned time, straight from your site. Your computer can stay off.
What the free plugin does
- Reads your portfolio: finds your published projects and their images (featured image and galleries), whatever your theme.
- Plans the feed: a weekly rhythm (new project, close-up, signature image) spread over the coming weeks, which you review before anything is scheduled.
- Formats the visuals: crops each image to Instagram’s 4:5, 1:1 or 9:16 formats around a point of interest, on your own server (Imagick or GD).
- Single images and carousels, with no monthly limit.
- Captions and hashtags: hooks, credits, calls to action and hashtag sets in French or English, editable by hand. Credits and place written on the project page (“Photo: …”, “Architect: …”, “Location: …”) are added to the caption automatically.
- True colors: photos in Adobe RGB, ProPhoto or Display P3 are converted to sRGB, so they don’t look washed out on Instagram.
- Grid preview: see your profile as it will look, drag a post to move it, the dates follow.
- Automatic publishing at the planned time through the official Instagram API, with retries, alerts and a clear status for every post.
- Statistics: reach and engagement of each published post, and visits to your site coming from Instagram (counted on your own site, without storing any IP address or fingerprint; a technical cookie with no identifier, deleted by the browser after one hour, avoids counting the same visit twice).
- Email alerts when a post is published or fails, and a daily summary.
- Grow the account: a link page for your Instagram bio with your latest projects, a weekly suggestion to bring a project that did well back in the spotlight (as a draft to approve), and a first comment for each post, where your hashtags can go.
- Your own videos: publish a video you upload as a Reel (optional Cloudinary account to crop it to 9:16 on shared hosting).
- Help screen: an installation check that tells you what to fix, with no password, token or key shown.
The interface is available in French and English (it follows your WordPress profile language, or your choice).
Foliocast Pro
Foliocast Pro is a separate, paid plugin that replaces this one and keeps your schedule and settings. It adds Reels made automatically from your images (with music), grid banners (one wide image split across 3 or 6 posts) and automatic tuning of posting times and hashtags from your statistics. Nothing in this free plugin is locked or limited: it is complete on its own.
Requirements
- A professional Instagram account (Creator or Business, free to switch in the Instagram app).
- A WordPress site reachable on the internet (Instagram downloads the images from your site, or from Cloudinary if you connect it).
- For publishing exactly on time, a cron job at your host that calls your site every minute (the exact command is shown in the plugin). Without it, WordPress’s built-in scheduler is used, which runs only when someone visits your site.
External services
This plugin connects to the following third-party services. Nothing is sent before you connect an account or enable the feature.
Instagram API (Meta)
Used to publish your posts and read your account details and post statistics. Requests go from your site to graph.instagram.com.
- When: when you connect your Instagram account, when a post is published, when the app shows your live Instagram grid or checks whether a published post still exists, when the access token is renewed (about every 50 days) and when the statistics of a post are refreshed (during its first 30 days: every 3 hours at first, then every 12 hours, then every 2 days).
- What is sent: your Instagram access token and account ID, the public addresses of the images or videos to publish, the caption and the alternative text of each image.
- Instagram Terms of Use: https://help.instagram.com/581066165581870
- Meta Privacy Policy: https://www.facebook.com/privacy/policy/
Foliocast Connect (foliocast.fr)
Used only for the “Connect with Instagram” button: it lets you log in on Instagram’s official page without creating your own Meta developer app. It is run by the author of this plugin.
- When: only when you click “Connect with Instagram”. The plugin first checks that the service is available (a request to
foliocast.fr/connect/healthwith no data from your site; a positive answer is remembered for one day, a failure for one hour, and in the meantime no new check is made), then opens the service’s login page. Opening the setup assistant sends nothing. - What is sent: the address of your site and a one-time security code. Instagram sends your access token to the service, which hands it straight to your site; it is kept encrypted for 5 minutes at most for that handover, then deleted.
- Tester invitation: while Meta reviews the Foliocast app, only accounts invited as Instagram testers can connect. If you fill in the “Request my invitation” form shown after clicking “Connect with Instagram”, the plugin sends the e-mail address and Instagram account name you typed, your site’s host name and the interface language to
foliocast.fr/connect/invite, so that the team can invite your account and e-mail you the steps. Nothing is sent if you do not fill in the form. - Terms: https://foliocast.fr/cgu.html
- Privacy policy: https://foliocast.fr/privacy.html (in French: https://foliocast.fr/confidentialite.html)
You can also connect Instagram without this service, by pasting an access token from your own Meta app in Settings.
Cloudinary (optional)
Only if you enter your own Cloudinary credentials in Settings. Cloudinary then hosts the images and videos at publishing time, and converts videos to the 9:16 Reel format when your server cannot.
- When: when you save your Cloudinary credentials (a check of the credentials), when a post is published (upload, then deletion of the copy once Instagram has it), and when you import a video while Cloudinary is connected.
- What is sent: the image or video file, signed with your Cloudinary API key.
- Cloudinary Terms of Use: https://cloudinary.com/tos
- Cloudinary Privacy Policy: https://cloudinary.com/privacy
Credits
- Demo images (assets/demo, used only by the live preview): original artworks created for the Foliocast demo, GPL-2.0-or-later.
- Instrument Sans font (used to write the optional brand band on images), Copyright 2022 The Instrument Sans Project Authors, SIL Open Font License 1.1 (fonts/OFL.txt).
- Anton font (interface headings), Copyright 2020 The Anton Project Authors, SIL Open Font License 1.1 (assets/app/fonts/OFL.txt).
- Archivo font (interface text), Copyright 2019 The Archivo Project Authors, SIL Open Font License 1.1 (assets/app/fonts/OFL.txt).
- IBM Plex Mono font (interface figures and codes), Copyright © 2017 IBM Corp. with Reserved Font Name “Plex”, SIL Open Font License 1.1 (assets/app/fonts/OFL.txt).
Source code
All JavaScript and CSS in this plugin is shipped unminified and human-readable; nothing is obfuscated, and there are no minified files.
assets/app/style.css,assets/app/shim.js,assets/admin.jsandassets/admin.cssare written by hand and are their own source (no build step).assets/app/app.js(the app on the Foliocast admin page) is written by hand too, in several files shipped with the plugin inassets/app/src/(i18n.js,app.js,reels.js,learn.js,system.js,ui.js,onboard.js,help.js,growth.js). It is not transpiled, bundled or minified: it is these files put end to end, in this order. To rebuild it, run this command inassets/app/src/:cat i18n.js app.js reels.js learn.js system.js ui.js onboard.js help.js growth.js > ../app.js(see alsoassets/app/src/README.md).- No third-party JavaScript or CSS library is bundled. The only third-party files are the fonts listed under Credits (SIL Open Font License 1.1, license texts in
assets/app/fonts/OFL.txtandfonts/OFL.txt); nothing is loaded from another site.
Screenshots





Installation
- Install and activate the plugin from Plugins Add New, or upload the zip file.
- Open Foliocast in the admin menu. The setup assistant guides you through the three steps: connect Instagram, choose the projects of your site, validate the plan.
- In Settings Automatic publishing, copy the cron command and add it to your host’s cron jobs (every minute). The status turns green within two minutes.
FAQ
-
Does my Instagram account need to be professional?
-
Yes. Instagram only lets applications publish for professional accounts (Creator or Business). Switching is free and reversible in the Instagram app: Settings Account type and tools.
-
Where are my data stored?
-
On your own site: schedule, visuals and settings. The Instagram access token is stored encrypted. Removing the plugin keeps your data, unless you tick “Delete all data on uninstall” in Settings Maintenance Advanced options.
-
How do I protect the Instagram token with my own encryption key?
-
Foliocast stores your secrets (the Instagram access token and, if you use it, the Cloudinary API secret) encrypted in your database. By default the encryption key is a random key created once and kept in the database too. To keep the key out of the database, so that a copy or backup of the database alone is not enough to read your token, add this line to
wp-config.php, above the line “That’s all, stop editing!”:define( 'FOLIOCAST_ENCRYPTION_KEY', 'a-long-random-string-of-at-least-32-characters' );Use your own random value (for example a password generator, 32 characters or more) and keep it safe: if the constant is changed or removed later, the stored secrets can no longer be read. After adding it, connect Instagram again (and re-enter your Cloudinary secret if you use it), because secrets saved before cannot be read with the new key.
-
My posts are published late.
-
Without a cron job at your host, WordPress only checks for posts to publish when someone visits your site. Add the command shown in Settings Automatic publishing as a cron job that runs every minute, or use a free external service such as cron-job.org.
-
Does it work with my theme?
-
Foliocast reads any public post type with a featured image or galleries: regular posts, pages, or the “project” or “portfolio” type of your theme. You choose the post type in the setup assistant.
-
Can I use Foliocast on several sites?
-
Yes. Each site publishes to its own Instagram account. On a multisite network, activate the plugin site by site.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Foliocast – Portfolio Post Scheduler” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Foliocast – Portfolio Post Scheduler” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
2.9.2
- Live preview: clearer demo (sample studio with a job and a city in captions, no misleading “sent automatically” or “feed unavailable” messages, a note on the Settings and Help pages).
2.9.1
- Instagram connection: while Meta reviews the Foliocast app, only invited tester accounts can connect. The plugin now explains it and lets you request your tester invitation from a short form.
- Live preview: try Foliocast on WordPress.org without installing it (demo mode, nothing is published).
2.9.0
- Languages: Foliocast now speaks Spanish, German, Italian, Brazilian Portuguese and Dutch (interface, e-mails, captions, hashtags).
- Translations: every other language can be translated on translate.wordpress.org; installed language packs are used automatically.
2.8.1
- Wording: “early access” replaces “beta” in the licence screen, help and diagnostics.
2.8.0
- Overview: a “Your last 30 days” card shows posts published and visits from Instagram.
- Alert two weeks before your schedule ends, with a button to extend it.
- Simpler labels in New post.
2.7.1
- More varied schedule: the same project no longer appears twice in a week.
- Settings: reconnect Instagram in one click; technical fields are folded away.
- Instagram search line: you can set the profession shown.
- Link-in-bio page: WordPress’s default tagline is no longer shown.
2.7.0
- Instagram search: captions can start with your profession and the project location; image alt text mentions the location.
- Link-in-bio page: the latest post is featured, Reels are marked, and the most opened projects are counted.
2.6.6
- “This week” screen: the week dates now read correctly in English.
2.6.5
- New option: post the project link as the first comment (“Full project here: link”) under every post.
2.6.4
- New Foliocast logo in the app, the WordPress menu and the browser tab icon.
2.6.3
- Visit counting no longer stores any IP address or fingerprint on the server: a technical cookie with no identifier (“foliocast_seen”, value 1), deleted by the browser after one hour, avoids counting the same visit twice. Fingerprints left by 2.6.2 are deleted at update.
- The suggested privacy policy text has been updated accordingly.
2.6.2
- Visitors can object to the counting of visits from Instagram at any time: new [foliocast_opposition] shortcode (link to stop or resume being counted), added to the suggested privacy policy text.
- The fingerprint used to avoid counting a visit twice is only kept for the current hour and is deleted as soon as the hour ends.
2.6.1
- Visits from Instagram are no longer counted when the visitor’s browser sends Global Privacy Control or Do Not Track. The suggested privacy policy text describes the counting precisely.
- The link page for the bio loads its styles the WordPress way (no inline style tag).
- The free edition ships only readable JavaScript (no minified file); the readme lists every source file of the app.
2.6.0
- New “Grow the account” section in Settings.
- Link page for your Instagram bio: one click creates a page on your site with your latest published projects, each tile leading to the project. Visits from it are counted as Instagram visits.
- Your best projects back in the spotlight: once a week, Foliocast can suggest a new post for a project that did well a few months ago, with different images when possible. It arrives as a draft: nothing goes out without your OK.
- First comment: write one per post (editor, Options), or move your hashtags to the first comment to keep captions clean. If Instagram refuses, the option turns itself off and the hashtags go back into the caption.
2.5.4
- Setup prepares three projects at a time: about 40 % faster on large portfolios (36 s instead of 61 s for 60 projects in our tests).
- A video placed on a project page (from your Media Library) now becomes that project’s Reel, as is.
- Invite up to 3 accounts as collaborators on a post (editor, Options): if they accept, the post also shows on their profile.
- Three more fields recognised from your site: landscape and gardens, jewelry, product design (hashtags, caption wording and alt texts).
- Instagram limits updated (Reels from 3 seconds to 15 minutes, videos up to 300 MB). When Instagram can’t fetch an image, the message now suggests Cloudinary.
- The grid preview shows your account or site name instead of a placeholder.
- Lighter interface script (minified; the readable source stays in the plugin).
- After your first published post, a single card presents Foliocast Pro. “Not now” hides it for good.
2.5.3
- Instagram refusals are explained in plain words, with what to do (image not reachable, format, size, daily limit, expired connection), instead of Instagram’s raw English message.
- Image alt texts now describe your field (“an architecture project”, “a handmade piece”) instead of a generic category.
- A post that missed its time is shown “To approve”, with a “Publish now” button right on the line.
- The first post goes out on the first slot after setup (often the next day), not the following week.
- Clearer editor: one save button, the reason of a failure shown first, no invented “likes” in the preview.
- Keyboard: Escape closes the editor, focus stays in open windows and is always visible. Missing labels and alt texts added.
- Phone: week and month views fit the screen, larger tap targets and labels.
- Week headings now read Monday to Sunday; file fields and wording (“images” rather than “renders”) are clearer.
2.5.2
- Images pasted in a project page as HTML (imports, page builders) are now found in the media library, including resized copies.
- HTML tags in a project title no longer end up in the caption.
- Setup assistant: “wedding” alone no longer makes a wedding photographer an event agency.
- End of the setup assistant: the number of Reels to be made right away is now accurate (those of the next 10 weeks).
2.5.1
- Sites whose security plugin restricts the REST API to logged-in users: the automatic-publishing check (/tick) now gets through when it presents its key; every other address stays restricted.
- Ready for PHP 8.5: no more deprecation notices (image, file-type and cURL handles are freed the PHP 8 way).
- Tested with WordPress 6.0, 6.6 and 7.1 on PHP 8.3 and 8.4.
- Setup assistant: finds where your projects live (posts, pages, a “Project” or “Portfolio” type, WooCommerce products) and suggests your field for the starting hashtags; you can change both.
- Projects whose images are stored in fields (ACF galleries, WooCommerce product galleries) now bring all their images.
- Captions start with the presentation sentence written on the project page, and describe the work done according to your field.
- Multilingual sites (Polylang, WPML): each project is planned once, in the site’s main language.
- A project published between installing Foliocast and finishing the setup assistant no longer leaves the other projects unchecked.
2.5.0
- Internal changes shared with Foliocast Pro (redesigned Reel layouts, music library in Pro). No visible change in the free version.
- Uninstall with “delete data” now also removes the settings added since 2.2.
2.4.0
- Internal changes shared with Foliocast Pro (new Reel layouts and music styles in Pro). No visible change in the free version.
2.3.0
- Photos in Adobe RGB, ProPhoto or Display P3 are converted to sRGB when they are formatted: no more dull, washed-out colors on Instagram.
- Credits and place read from the project page (“Photo: …”, “Architect: …”, “Location: …”, definition lists, common custom fields) and added to the caption; a street address is never used.
2.2.2
- Assets enqueued the WordPress way: the app page’s accent color and settings are added with wp_add_inline_style() and wp_add_inline_script() (no style or script tag printed by the plugin).
- Uploads (images and videos) go through WordPress’s file uploader, wp_handle_upload(), with the same file-type checks and limits.
- The Foliocast menu now takes WordPress’s default position, after the core menus.
- Source code notes: the JavaScript sources of the app are shipped in assets/app/src/, with the command that assembles assets/app/app.js (see “Source code”).
- In-app title: Foliocast – Portfolio Post Scheduler.
2.2.1
- New plugin name: Foliocast – Portfolio Post Scheduler.
- Code review fixes for WordPress.org: error messages escaped, WordPress file and HTTP APIs used everywhere (Cloudinary uploads of large videos are now sent in parts, with no size limit of their own).
2.2.0
- Internal rename of the code prefix for WordPress.org; automatic migration of settings and data.
2.1.0
- Redesigned interface, with its fonts bundled in the plugin (no request to another site).
- One status vocabulary everywhere: to prepare, to approve, scheduled, published, failed.
- “This week” overview: posts waiting for your approval with an “Approve all” button, the week’s lineup, 7-day totals.
- Planner in list, week or month view: drag a post onto another day to change its date.
- The post editor adapts to the post: one main action, date at the top, live posts are read-only.
- Settings: status at a glance, accent color taken from your logo or theme, automatic-publishing key hidden on screen.
- Phone layout with a bottom tab bar; nothing overflows the screen anymore.
2.0.0
- First version on WordPress.org: the complete free plugin (unlimited posts and carousels, captions, hashtags, schedule, grid preview, automatic publishing, statistics).
