{"id":342980,"date":"2026-07-30T10:11:18","date_gmt":"2026-07-30T10:11:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/explorer-portfolio-kit\/"},"modified":"2026-07-30T10:10:56","modified_gmt":"2026-07-30T10:10:56","slug":"epfolio","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/epfolio\/","author":22006040,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.2","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"EPFolio \u2013 Explorer Portfolio Kit","header_author":"msf","header_description":"A lightweight, customizable dark\/light \"explorer\" portfolio kit \u2014 theme toggle, scroll-reveal, reading-progress bar, a spam-guarded contact form, instant site search, SEO\/Open Graph, WebP image optimization and privacy-first analytics. Configure everything from Settings \u2192 Portfolio; nothing is hardcoded.","assets_banners_color":"151d36","last_updated":"2026-07-30 10:10:56","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/msf.bd","rating":0,"author_block_rating":0,"active_installs":0,"downloads":27,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"shahrear17","date":"2026-07-30 10:10:56"}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3628369,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3628369,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3628369,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3628369,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3628369,"resolution":"1","location":"assets","locale":"","width":1280,"height":800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3628369,"resolution":"2","location":"assets","locale":"","width":2874,"height":1374},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3628369,"resolution":"3","location":"assets","locale":"","width":1280,"height":800},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3628369,"resolution":"4","location":"assets","locale":"","width":1280,"height":800},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3628369,"resolution":"5","location":"assets","locale":"","width":1280,"height":832}},"screenshots":{"1":"The front end with the dark\/light toggle, hero and reading-progress bar.","2":"The Professional page: a scroll-driven timeline with playful ladybug markers, the sticky menu's current-page underline, and the floating WhatsApp chat button.","3":"The styled blog card grid.","4":"Instant search overlay deep-linking to a section.","5":"Settings \u2192 Portfolio, including one-click Starter pages and GA4."}},"plugin_section":[],"plugin_tags":[189590,173231,1005,789,8114],"plugin_category":[43],"plugin_contributors":[273818],"plugin_business_model":[],"class_list":["post-342980","plugin","type-plugin","status-publish","hentry","plugin_tags-block-patterns","plugin_tags-dark-mode","plugin_tags-google-analytics","plugin_tags-portfolio","plugin_tags-resume","plugin_category-customization","plugin_contributors-shahrear17","plugin_committers-shahrear17"],"banners":{"banner":"https:\/\/ps.w.org\/epfolio\/assets\/banner-772x250.png?rev=3628369","banner_2x":"https:\/\/ps.w.org\/epfolio\/assets\/banner-1544x500.png?rev=3628369","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/epfolio\/assets\/icon-128x128.png?rev=3628369","icon_2x":"https:\/\/ps.w.org\/epfolio\/assets\/icon-256x256.png?rev=3628369","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/epfolio\/assets\/screenshot-1.png?rev=3628369","caption":"The front end with the dark\/light toggle, hero and reading-progress bar."},{"src":"https:\/\/ps.w.org\/epfolio\/assets\/screenshot-2.png?rev=3628369","caption":"The Professional page: a scroll-driven timeline with playful ladybug markers, the sticky menu's current-page underline, and the floating WhatsApp chat button."},{"src":"https:\/\/ps.w.org\/epfolio\/assets\/screenshot-3.png?rev=3628369","caption":"The styled blog card grid."},{"src":"https:\/\/ps.w.org\/epfolio\/assets\/screenshot-4.png?rev=3628369","caption":"Instant search overlay deep-linking to a section."},{"src":"https:\/\/ps.w.org\/epfolio\/assets\/screenshot-5.png?rev=3628369","caption":"Settings \u2192 Portfolio, including one-click Starter pages and GA4."}],"raw_content":"<!--section=description-->\n<p>Want a stunning personal portfolio \u2014 academia, experience, research, blog and contact \u2014 without heavy page builders, bloated themes, or writing a single line of code? \ud83e\udd14<\/p>\n\n<p>Most portfolio solutions ship megabytes of scripts and lock you into their builder. Your visitors wait, your Core Web Vitals suffer, and your content is trapped. \ud83d\ude29<\/p>\n\n<p><strong>EPFolio \u2013 Explorer Portfolio Kit<\/strong> takes the opposite path: a <strong>lightweight, super fast<\/strong> kit built on native WordPress blocks \u2014 and your whole portfolio is ready in <strong>one click<\/strong>. \ud83d\ude0e<\/p>\n\n<h3>\u26a1 SUPER FAST &amp; TRULY LIGHTWEIGHT<\/h3>\n\n<p>No jQuery. No frameworks. No build step. No third-party libraries. Just <strong>two small static files<\/strong> (one CSS, one JS) served from your own site \u2014 the entire plugin is only ~40 KB zipped. Your portfolio stays fast, and your PageSpeed score stays green.<\/p>\n\n<h3>\ud83d\ude80 READY-MADE PORTFOLIO IN ONE CLICK<\/h3>\n\n<p>Press <strong>Create starter pages<\/strong> and the kit instantly builds your <strong>Academia, Professional, Research, Volunteering and Blog<\/strong> pages \u2014 pre-designed, pre-wired into your header menu (Blog last), and ready to edit with your own story. Existing pages are never overwritten, and nothing is created on activation. You decide what stays.<\/p>\n\n<h3>\ud83d\udcca GOOGLE ANALYTICS (GA4) \u2014 AVAILABLE OUT OF THE BOX<\/h3>\n\n<p>Paste your <strong>GA4 Measurement ID<\/strong> (<code>G-XXXXXXXXXX<\/code>) and analytics is live. <strong>No API key, no extra plugin, no configuration maze.<\/strong> The snippet loads only when an ID is set, and <strong>logged-in administrators are never tracked<\/strong>, so your own visits don't pollute your stats.<\/p>\n\n<h3>\ud83c\udf1f Top Features<\/h3>\n\n<ul>\n<li><strong>One-click starter pages<\/strong> \u2014 a complete portfolio (Academia, Professional, Research, Volunteering, Blog) generated instantly, wired into your header menu<\/li>\n<li><strong>Google Analytics (GA4) ready<\/strong> \u2014 paste one ID, done; no API key needed, admins excluded<\/li>\n<li><strong>Lightweight &amp; super fast<\/strong> \u2014 two static assets, no jQuery, no build, no external libraries<\/li>\n<li><strong>Dark \/ light theme<\/strong> \u2014 floating toggle, visitor's choice remembered, applied before paint (no flash)<\/li>\n<li><strong>Your palette<\/strong> \u2014 three accent colours drive every gradient and highlight via CSS variables<\/li>\n<li><strong>Animated timelines<\/strong> \u2014 a scroll-driven line fills as visitors read, with a glowing \"you are here\" marker \u2014 and playful <strong>ladybug markers<\/strong> on selected pages \ud83d\udc1e<\/li>\n<li><strong>Styled blog grid<\/strong> \u2014 featured image, date, title, excerpt and pagination, all left-aligned and clean<\/li>\n<li><strong>Sticky glass header<\/strong> with a sliding gradient underline on the current page<\/li>\n<li><strong>Instant site search<\/strong> \u2014 a search icon is added to your menu; a compact command-palette overlay (icon, <code>\/<\/code>, or \u2318\/Ctrl-K) indexes every page, post and heading, deep-links to the exact section, and refreshes itself on every update<\/li>\n<li><strong>Spam-guarded contact form<\/strong> \u2014 nonce + honeypot + per-IP throttling, delivered with wp_mail()<\/li>\n<li><strong>WhatsApp chat button<\/strong> \u2014 floating bubble with a hover label and optional pre-filled first message; on\/off dropdown in settings<\/li>\n<li><strong>SEO built in<\/strong> \u2014 meta description, canonical, Open Graph, Twitter Cards and JSON-LD (Person \/ BlogPosting) from your name and links<\/li>\n<li><strong>WebP image optimization<\/strong> \u2014 uploads become lean WebP sub-sizes automatically<\/li>\n<li><strong>Security headers<\/strong> \u2014 conservative no-config headers, optional WordPress-version hiding and XML-RPC off<\/li>\n<li><strong>Smooth page transitions<\/strong> \u2014 cross-fade between pages (View Transitions API, progressive)<\/li>\n<li><strong>Back-to-top button<\/strong>, scroll-reveal animations and a reading-progress bar<\/li>\n<li><strong>Editor preview<\/strong> \u2014 patterns look the same in the block editor as on the site<\/li>\n<li><strong>Mobile responsive<\/strong> \u2014 including an on-brand dark mobile menu<\/li>\n<li><strong>9 block patterns<\/strong> under \"EPFolio \u2013 Explorer Portfolio Kit\" in the inserter \u2014 build by hand any time<\/li>\n<li><strong>Every feature optional<\/strong> \u2014 switch anything off from one settings screen; nothing is hardcoded<\/li>\n<\/ul>\n\n<h3>\ud83c\udf17 DARK &amp; LIGHT, YOUR COLOURS<\/h3>\n\n<p>Dark by default, light on tap \u2014 the visitor's choice is remembered and applied before the first paint, so there is never a flash. Pick three accent colours once and the hero gradient, buttons, timeline, links and underlines all follow.<\/p>\n\n<h3>\ud83d\udcc8 TIMELINES THAT TELL YOUR STORY<\/h3>\n\n<p>Education, roles, publications and volunteering render as vertical timelines: the rail fills as visitors scroll and the entry being read glows. On selected pages the markers become gently fluttering ladybugs \u2014 a small moment of delight that makes your portfolio memorable. \ud83d\udc1e<\/p>\n\n<h3>\ud83d\udd0e INSTANT SEARCH, EVERYWHERE<\/h3>\n\n<p>A search icon appears in your header automatically. One keystroke (<code>\/<\/code> or \u2318\/Ctrl-K) opens a compact overlay that searches every published page and post \u2014 including individual headings \u2014 and jumps straight to the matching section. The index rebuilds itself whenever content or the plugin is updated.<\/p>\n\n<h3>\u2709\ufe0f CONTACT FORM + \ud83d\udcac WHATSAPP<\/h3>\n\n<p>A spam-guarded contact form (nonce, honeypot, per-IP throttling) emails submissions to any address you choose \u2014 and a floating WhatsApp button opens a chat with you in one tap, optionally pre-filling the visitor's first message. Both optional, both configured in one place.<\/p>\n\n<h3>\ud83d\udd0d SEO &amp; SOCIAL SHARING BUILT IN<\/h3>\n\n<p>Meta description, canonical URL, Open Graph and Twitter Card tags, plus JSON-LD structured data (Person on the front page, BlogPosting on posts) \u2014 generated from the name and links you set. No separate SEO plugin required for a personal site.<\/p>\n\n<h3>\ud83d\udee1\ufe0f LEAN, HARDENED, PRIVATE<\/h3>\n\n<p>Conservative security headers, optional WordPress-version hiding and XML-RPC switch-off. The plugin itself makes <strong>zero external requests<\/strong> \u2014 the only exception is Google's gtag.js, and only if <em>you<\/em> enable Analytics.<\/p>\n\n<h3>\ud83d\udc68\u200d\ud83d\udcbb DOCUMENTATION AND SUPPORT<\/h3>\n\n<ul>\n<li>Questions? Visit the plugin's <a href=\"https:\/\/wordpress.org\/support\/plugin\/epfolio\/\">Support Forum<\/a><\/li>\n<\/ul>\n\n<h3>\ud83d\udc99 LOVED EPFOLIO?<\/h3>\n\n<ul>\n<li>Rate it on <a href=\"https:\/\/wordpress.org\/support\/plugin\/epfolio\/reviews\/#new-post\">WordPress.org<\/a> \u2014 it helps more than you think \ud83d\ude4c<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin can connect to two external services. Both are optional and inactive until you configure them in Settings \u2192 Portfolio.<\/p>\n\n<p><strong>Google Analytics (Google LLC)<\/strong>\nUsed to collect visitor statistics for your own site. If \u2014 and only if \u2014 you enter a GA4 Measurement ID, the plugin loads Google's <code>gtag.js<\/code> script from <code>https:\/\/www.googletagmanager.com\/<\/code> on front-end pages, and standard analytics data (the page URL, referrer, and the visitor's IP address, browser and device information) is sent to Google on every front-end page view under your own Google Analytics account. Logged-in administrators are excluded, and nothing is loaded or sent while no Measurement ID is set.\n<a href=\"https:\/\/marketingplatform.google.com\/about\/analytics\/terms\/us\/\">Google Analytics Terms of Service<\/a> \u00b7 <a href=\"https:\/\/policies.google.com\/privacy\">Google Privacy Policy<\/a><\/p>\n\n<p><strong>WhatsApp (WhatsApp LLC)<\/strong>\nUsed by the optional floating \"Chat on WhatsApp\" button. The button is a plain link to <code>https:\/\/wa.me\/<\/code> with the phone number (and optional pre-filled first message) you configure \u2014 the plugin loads no WhatsApp script and sends no data. The visitor's browser contacts WhatsApp only if the visitor clicks the button, which opens a WhatsApp chat with you.\n<a href=\"https:\/\/www.whatsapp.com\/legal\/terms-of-service\">WhatsApp Terms of Service<\/a> \u00b7 <a href=\"https:\/\/www.whatsapp.com\/legal\/privacy-policy\">WhatsApp Privacy Policy<\/a><\/p>\n\n<h3>Privacy<\/h3>\n\n<p>The plugin itself makes no external requests. If \u2014 and only if \u2014 you enter a Google Analytics Measurement ID, the Google <code>gtag.js<\/code> script (<code>https:\/\/www.googletagmanager.com\/gtag\/js<\/code>) is loaded on the front end and analytics data is sent to Google under your GA account; logged-in administrators are excluded. If you enable this, disclose it in your site's privacy policy per your local regulations. See \"External services\" above for full details.<\/p>\n\n<!--section=installation-->\n<h4>Modern Way:<\/h4>\n\n<ol>\n<li>Go to the WordPress Dashboard \"Add New Plugin\" section.<\/li>\n<li>Search for \"EPFolio\".<\/li>\n<li>Install, then Activate it.<\/li>\n<li>Open <strong>Settings \u2192 Portfolio<\/strong>, set your brand, colours and links, then click <strong>Create starter pages<\/strong>.<\/li>\n<\/ol>\n\n<h4>Old Way:<\/h4>\n\n<ol>\n<li>Upload <code>epfolio<\/code> to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Open <strong>Settings \u2192 Portfolio<\/strong>, set your brand, colours and links, then click <strong>Create starter pages<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20use%20it%20%E2%80%94%20where%20are%20the%20settings%3F\"><h3>How do I use it \u2014 where are the settings?<\/h3><\/dt>\n<dd><p>Everything lives under <strong>wp-admin \u2192 Settings \u2192 Portfolio<\/strong>. Set your brand and features there, then use the <strong>Create starter pages<\/strong> button on the same screen to generate your portfolio pages in one click.<\/p><\/dd>\n<dt id=\"is%20it%20really%20lightweight%3F\"><h3>Is it really lightweight?<\/h3><\/dt>\n<dd><p>Yes. The plugin ships two small static assets (one CSS file, one JS file), uses no jQuery, no frameworks, no build step and no external libraries. The whole plugin is about 40 KB zipped.<\/p><\/dd>\n<dt id=\"how%20do%20i%20connect%20google%20analytics%3F%20do%20i%20need%20an%20api%20key%3F\"><h3>How do I connect Google Analytics? Do I need an API key?<\/h3><\/dt>\n<dd><p>No API key is needed for GA4 traffic analytics. In Google Analytics go to <strong>Admin \u2192 Data streams \u2192 your web stream<\/strong> and copy the <strong>Measurement ID<\/strong> (<code>G-XXXXXXXXXX<\/code>). Paste it in <strong>Settings \u2192 Portfolio \u2192 Analytics<\/strong> and save. The tracking snippet loads automatically and skips your own admin visits. An API key\/secret is only needed for server-side Measurement Protocol or the Data API, which this plugin does not use.<\/p><\/dd>\n<dt id=\"will%20it%20work%20with%20my%20theme%3F\"><h3>Will it work with my theme?<\/h3><\/dt>\n<dd><p>It's designed for block themes (e.g. Twenty Twenty-Four\/Five) and also runs without fatal errors on classic themes. It adds styles, patterns and optional pages; it does not replace your theme.<\/p><\/dd>\n<dt id=\"does%20the%20contact%20form%20need%20an%20smtp%20plugin%3F\"><h3>Does the contact form need an SMTP plugin?<\/h3><\/dt>\n<dd><p>It sends with WordPress's <code>wp_mail()<\/code>. On many hosts that works out of the box; for reliable delivery an SMTP plugin is recommended (as with any WordPress mail). If mail isn't configured, the form tells visitors honestly instead of failing silently.<\/p><\/dd>\n<dt id=\"can%20i%20turn%20features%20off%3F\"><h3>Can I turn features off?<\/h3><\/dt>\n<dd><p>Every feature \u2014 theme toggle, animations, transitions, search, contact form, WhatsApp button, SEO, WebP, security headers, analytics \u2014 has its own switch in Settings \u2192 Portfolio. Use only what you want.<\/p><\/dd>\n<dt id=\"does%20it%20send%20my%20data%20anywhere%3F\"><h3>Does it send my data anywhere?<\/h3><\/dt>\n<dd><p>No \u2014 except Google Analytics, and only if you enter a Measurement ID. In that case the standard Google <code>gtag.js<\/code> script is loaded from Google on the front end. See Privacy below.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: one-click starter pages, dark\/light theme, animated timelines with ladybug markers, styled blog grid, sticky header with current-page indicator, smooth page transitions, scroll reveal, reading-progress bar, back-to-top, spam-guarded contact form, WhatsApp chat button with hover label and pre-filled message, instant deep-linking search with a header icon, SEO + Open Graph + JSON-LD, WebP image optimization, security headers, GA4 analytics, editor-styled patterns and a mobile-responsive layout \u2014 all optional and configured from Settings \u2192 Portfolio.<\/li>\n<\/ul>","raw_excerpt":"Lightweight, super fast portfolio kit \u2014 one-click ready-made pages, dark\/light design &amp; GA4 analytics out of the box. Every feature optional.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/342980","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=342980"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/shahrear17"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=342980"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=342980"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=342980"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=342980"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=342980"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=342980"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}