WordPress Theme ยท Built for Solo Devs

Your portfolio,
finally done right.

A handcrafted WordPress theme built for solo developers and freelancers. Zero plugins. Zero jQuery. Zero compromises โ€” just clean, fast, beautiful code ready to show off your best work.

0
Pages built
0
Post types
0
Plugins needed
ES6+
Vanilla JS
๐ŸŽจ Tailwind CSS v3โ€ข โšก Zero jQueryโ€ข ๐ŸŒ™ Flash-Free Dark Modeโ€ข ๐Ÿ“‹ Kanban Pipeline Boardโ€ข ๐Ÿ™ GitHub API Integrationโ€ข ๐Ÿ”’ CSP Nonce Enforcedโ€ข โ™ฟ Accessibleโ€ข ๐Ÿ“ฌ AJAX Formsโ€ข ๐Ÿƒ 3D Tilt Cardsโ€ข ๐Ÿ” Live Search & Filterโ€ข ๐Ÿ“Š Animated Countersโ€ข ๐Ÿ“ฆ 4 Custom Post Typesโ€ข ๐ŸŽ›๏ธ Deep Customizer Controlโ€ข ๐Ÿข Organization Schemaโ€ข ๐Ÿ–ฅ๏ธ Admin Dashboard Widgetโ€ข
๐ŸŽจ Tailwind CSS v3โ€ข โšก Zero jQueryโ€ข ๐ŸŒ™ Flash-Free Dark Modeโ€ข ๐Ÿ“‹ Kanban Pipeline Boardโ€ข ๐Ÿ™ GitHub API Integrationโ€ข ๐Ÿ”’ CSP Nonce Enforcedโ€ข โ™ฟ Accessibleโ€ข ๐Ÿ“ฌ AJAX Formsโ€ข ๐Ÿƒ 3D Tilt Cardsโ€ข ๐Ÿ” Live Search & Filterโ€ข ๐Ÿ“Š Animated Countersโ€ข ๐Ÿ“ฆ 4 Custom Post Typesโ€ข ๐ŸŽ›๏ธ Deep Customizer Controlโ€ข ๐Ÿข Organization Schemaโ€ข ๐Ÿ–ฅ๏ธ Admin Dashboard Widgetโ€ข

Why SoloDev

Built different.
In all the right ways.

Every feature exists because a solo developer actually needed it. No bloat, no dependencies, no compromises.

Zero Plugin Dependencies

Everything โ€” forms, post types, dark mode, pagination, widgets, social sharing, PWA tags, unified RSS feed, enforcing CSP with per-request nonce โ€” is built directly into the theme. No bloat, no plugin conflicts, no update chaos.

Self-contained No conflicts

Flash-Free Dark Mode

Three-way default: system preference, always light, or always dark โ€” set in the Customizer. User toggle persists in localStorage with zero flash on load. A pageshow listener re-syncs the colour scheme when the page is restored from the browser back-forward cache (bfcache); the handler is a named function with a paired pagehide cleanup listener so it never accumulates across navigations.

3-way toggle localStorage bfcache-safe

AJAX-Powered Forms

Contact, quote, and SEO audit forms all post via fetch() with inline messaging. Contact and SEO audit forms auto-initialise via [data-ajax-form] HTML attributes โ€” no separate wrapper scripts needed. Nonce-verified, sanitized, honeypot-protected, rate-limited, HTML email notifications with branded table layout. Each fetch uses an AbortController; the request is aborted on pagehide so handlers never fire on navigated-away pages.

3 forms Nonce verified

Live GitHub Showcase

Pull up to 200 repos from the GitHub REST API with language filter, real-time search, and client-side pagination. Cached 12 hours, token stays server-side only. A daily WP-Cron event proactively refreshes the cache so visitors never hit a cold-cache delay.

GitHub REST API Daily cron refresh

Kanban Project Pipeline

Show clients exactly what you're working on. Idea โ†’ In Progress โ†’ Near Completion โ†’ Shipped. Server-rendered board with live JS filtering by type and stage.

4 stages Live filter

Deep Customizer Control

Hero copy, stats, pricing plans, hero CTA anchor (hero_cta_primary_anchor), 404 quote URL (error_404_quote_url), dark mode default, pagination counts, logo initials, GitHub credentials, and social sharing toggle โ€” all tweakable from the Customizer. All text and number settings use postMessage transport for instant live preview without a page reload, powered by customize-preview.js (43 bindings). GitHub API token is masked as a password input.

No code postMessage preview 43 live bindings

SEO & Schema.org

Automatic JSON-LD for every page type. Homepage emits WebSite with a SearchAction for Sitelinks Searchbox eligibility. BreadcrumbList JSON-LD added on pages with 2+ breadcrumbs. Standalone Organization schema (with sameAs) links to the Person node via worksFor. Person schema queued globally on every page. BlogPosting includes wordCount, articleSection, and keywords. Feed autodiscovery links emitted for all three RSS channels. OG images validated to 1200ร—630 minimum before output. og:image:alt and twitter:image:alt use descriptive content (excerpt/SEO description) rather than page title. Sitemap taxonomy entries include <lastmod> dates.

JSON-LD Organization schema BreadcrumbList SearchAction

Admin Dashboard Widget

A SoloDev Overview widget on the WP admin dashboard shows project count, download count, and the 5 most recent inquiries with colour-coded type and status badges โ€” at a glance, without leaving the dashboard.

Dashboard Inquiry feed

Block Editor Templates & Starter Content

Project and Download CPTs register default block editor templates so new posts open with a useful starting structure. Starter content pre-fills sample pages, menus, and theme mods for an instant first impression on a fresh install.

Block templates Starter content

Complete Template Set

12 pages.
Every one a banger.

From hero to case study, every page is fully designed and ready to fill with your real content. Just activate and go.

๐Ÿ 
Homepage
index.php

Hero with animated blobs, filterable project grid, pricing plans, testimonials, and contact CTA โ€” all in one scroll.

Projects grid Pricing Testimonials
๐Ÿ—‚๏ธ
Projects
page-projects.php

Paginated archive of completed projects with server-side type filter. Filter buttons are dynamic โ€” only types with completed projects appear. Pretty URLs (/projects/javascript/ etc.) โ€” bookmarkable, SEO-friendly, and pagination-aware.

Pagination Type filter
๐Ÿ‘ค
About
page-about.php

Bio paragraph, three stat cards, tech stack pill grid, and a work-together CTA. All content controlled via Customizer โ†’ About Page.

Customizer-driven Section Header
๐Ÿ› ๏ธ
Services
page-services.php

Three service cards, a four-step "How I work" process grid, and a quote CTA. Both card content and process steps are fully Customizer-driven.

Customizer-driven Section Header
๐Ÿ“‹
Project Pipeline
page-board.php

Kanban board with Idea, In Progress, Near Completion, and Shipped columns. Filter by type and stage live.

Kanban Live filter
๐Ÿ“ฅ
Downloads
page-downloads.php

Filterable, searchable product grid. Client-side pagination, category pills, live name search โ€” all without a page reload.

Search Filter Paginated
๐Ÿ’ฌ
Testimonials
page-testimonials.php

Featured client feedback with star ratings, avatars, roles, and snapshot stats. Let your happy clients do the talking.

Star ratings Stats
๐Ÿ“
Blog
page-blog.php

Paginated post archive with featured card, category sidebar, read time, and category-aware fallback images when no thumbnail is set.

Pagination Sidebar
๐Ÿ™
Open Source
page-open-source.php

Live GitHub repo showcase. Fetches up to 200 repos, language filter, real-time search, animated star/fork counters.

GitHub API Live search
๐Ÿ’ธ
Get a Quote
page-get-a-quote.php

Detailed project intake form with budget, timeline, complexity sliders, and range inputs. AJAX submission, no reload.

AJAX Range sliders
๐Ÿ“ฌ
Contact
page-contact.php

Clean name/email/message form with sidebar info cards. AJAX submission with inline success/error messaging.

AJAX Sidebar
๐Ÿ”
SEO Audit Request
page-seo-audit.php

Site URL, theme, SEO plugin, schema types, and primary concern fields. Perfect for lead capture around your audit offering.

Lead capture AJAX
๐Ÿ“ฐ
Blog Post
TOC, read time, sidebar, reading progress bar, copy-to-clipboard code blocks, Customizer-controlled social sharing bar
๐Ÿ”ญ
Project Case Study
Overview, stack, timeline, gallery, related projects
๐Ÿ“ฆ
Download Detail
Tabs: overview, quick setup, file tree, changelog

Custom Post Types

Your content,
properly structured.

Four custom post types replace what would normally require multiple plugins. All built-in, all secure, all yours.

๐Ÿงฉ
Projects
solodev_project

Full portfolio pieces with 16 meta fields. Type, stack, kanban stage, progress percentage, highlights, features list, tech stack pills, timeline, gallery, and related projects.

16 meta fields Gallery Kanban stage 3D tilt card Quick-view modal
๐Ÿ“ฅ
Downloads
solodev_download

Distributable products with full metadata โ€” version, license, file size, browser support, ZIP/GitHub/preview/docs links, changelog, setup guide, file tree, and an AJAX download counter.

Versioning Changelog AJAX counter Tabbed detail page
๐Ÿ’ฌ
Testimonials
solodev_testimonial

Client quotes with avatar, role, company, star rating (1โ€“5), and a featured flag to promote your best reviews to the top of the testimonials page. Display-only โ€” no standalone front-end URLs (public => false). Aggregate rating cached in a 1-day transient, busted on save/trash/delete.

Star rating Featured flag Avatar Display-only
๐Ÿ“ฉ
Inquiries
solodev_inquiry

Private form submissions from contact, quote, and SEO audit forms. Non-public, no public URL, non-deletable by non-admins. Manage status (New / Reviewed / Replied) from the WP admin.

Private Status tracking Admin-only delete

JavaScript Features

Rich interactivity.
Zero jQuery.

Every interactive feature is pure ES6+ vanilla JavaScript. Fast, dependency-free, and readable.

๐Ÿƒ
3D Tilt Cards
Mouse-tracking perspective tilt on project cards
๐Ÿ”ญ
Quick-View Modal
Project highlights and links without leaving the page; focuses the close button on open for safe keyboard entry
๐Ÿ“Š
Animated Counters
Count-up animation triggered by IntersectionObserver
๐Ÿ”
Live Download Search
Real-time name filtering on the downloads grid
๐Ÿ“‘
TOC with Active Tracking
IntersectionObserver highlights current blog section; sets aria-current="true" on the active link for screen readers
๐Ÿ“‹
Copy to Clipboard
One-click copy on all code blocks with "Copied!" feedback
๐Ÿ—„๏ธ
Tabbed Download Detail
Overview / Quick Setup / File Tree / Changelog tabs
๐ŸŒŠ
Scroll Reveal
Elements fade and slide up on viewport entry
โฌ†๏ธ
Scroll-to-Top Button
Fades in after 300px, smooth scrolls to top
โฌ‡๏ธ
AJAX Download Counter
Increments on ZIP click via wp_ajax, no page reload
๐ŸŽš๏ธ
Range Slider Binding
Live value display for complexity, design, pages sliders
๐Ÿ—‚๏ธ
Project Grid Filtering
Instant category filter with empty state on homepage

Design System

Consistent.
Beautiful.
Yours.

A full design token system with custom colors, shadows, animations, glassmorphism utilities, and component classes โ€” all built on Tailwind v3.

Brand Blue Palette
50 ยท #eef7ff
100
200
400
Primary
500 โ˜…
600
700
900
Buttons
Ghost Button
Badges & Pills
JavaScript PHP WordPress CSS Tool Featured
Custom Shadows
glow
panelLight
panelDark
๐Ÿซง
float
7s ease
๐ŸŒŠ
float-slow
11s ease
SHIMMER
shimmer
3s linear
โฌœ
pulsegrid
10s pulse
โžก๏ธ marqueeโžก๏ธ marquee
marquee
26s linear

Security & Hardening

Locked down.
Out of the box.

Security isn't an afterthought here โ€” it's baked into every form, AJAX handler, and data output from day one.

  • โœ“
    All output escaped โ€” esc_html(), esc_attr(), esc_url(), wp_kses_post()
  • โœ“
    Nonce verification โ€” on all forms and AJAX handlers
  • โœ“
    All inputs sanitized โ€” sanitize_text_field, sanitize_email, absint
  • โœ“
    GitHub token server-side only โ€” never exposed to the browser
  • โœ“
    Inquiries locked down โ€” non-public, non-deletable by non-admins
  • โœ“
    ABSPATH guard โ€” defined('ABSPATH') || exit at top of all inc/ files
  • โœ“
    Rate limiting โ€” transient-based limit (3 per IP / 60 s) on all AJAX form handlers
  • โœ“
    Honeypot spam protection โ€” hidden field on all three forms; bot submissions silently rejected server-side
  • โœ“
    Referer origin validation โ€” each AJAX handler rejects requests whose HTTP Referer does not start with the site URL (403)
  • โœ“
    Private post noindex โ€” private and password-protected posts marked noindex, nofollow via wp_robots
  • โœ“
    HTML email notifications โ€” branded table layout for all inquiry emails; Reply-To set to visitor's address
  • โœ“
    Enforcing Content-Security-Policy โ€” per-request nonce on every inline script; no unsafe-inline; admin and login pages excluded; img-src narrowed to https://secure.gravatar.com
  • โœ“
    Notification email address โ€” form handlers use solodev_get_contact_email() instead of raw admin_email

Get Started

Three steps.
Ship your portfolio.

1

Download & Install

Download the zip, upload to WordPress via Appearance โ†’ Themes โ†’ Add New โ†’ Upload Theme, then activate.

# Build CSS (optional)
npm install && npm run build
2

Create Your Pages

Create pages with these slugs and the theme auto-applies the right template:

projectsProjects Archive
aboutAbout Page
servicesServices Page
boardPipeline Board
downloadsDownloads Grid
open-sourceGitHub Page
get-a-quoteQuote Form
contactContact Form
3

Customize & Publish

Head to Appearance โ†’ Customize and tweak to your heart's content:

  • โ†’ Hero copy, stats, and CTA text
  • โ†’ Pricing plan names and features
  • โ†’ Default color scheme (light/dark/system)
  • โ†’ GitHub username and API token
  • โ†’ Pagination counts per page
Free & Open Source

Ready to launch
your portfolio?

Download SoloDev, install it in five minutes, and start showing the world what you've built. No license fees. No subscriptions. Just your work, beautifully presented.