<header class="flex items-center">

<NuxtImg src="logo.png" class="w-18" alt="Dywan Dev - Digital tools & templates" format="webp" quality="80" loading="lazy" />

<Item><nuxt-link href="/">Home</nuxt-link></Item>

<Item><nuxt-link href="/about">About</nuxt-link></Item>

<Item><nuxt-link href="/works"> Portfolio</nuxt-link></Item>

<Item><nuxt-link href="/contact_me"> Contact</nuxt-link></Item>

<a href="/contact-me" title="Get in touch with Dywan Dev"> Contact </a>

<themeswitch class="moon">Dark/Light</themeswitch>

<langswitch class="en">en/fa</langswitch>

</header>

<initilizecontent class="content">Hello World - Dywan Dev</initilizecontent>

<myname is="Dywan Dev" />

<jobtitle is="Digital tools · Templates · Case studies" />

<portfolios are="ready" number="8" />

<experience years="more than 6" />

<birthdate year="1998" month="july" day="11" />

<skills :list="['NUXT', 'Vue', 'React', 'Next', 'Javascript','Responsive Design', 'i18n', 'TypeScript]" />

<contactDetails :list="['contact@dywandev.com', 'linkedin.com/in/dywan-dev', 'github.com/dywan-dev']" />

Dywan Dev
Blog
From Zero to Launched: How to Build and Sell a Web Template as a Solo Developer
9m

From Zero to Launched: How to Build and Sell a Web Template as a Solo Developer

Introduction

Nobody talks about the part before the launch.

They show you the clean landing page, the satisfied customers, the revenue screenshot. They don't show you the 11pm debugging sessions, the three rebuilds, the moment you almost deleted the entire project because you couldn't figure out why the RTL layout was breaking on Safari.

This is that story.

I'm a solo fullstack developer based in Morocco. I built Savoura Dywan — a multi-variant restaurant website template with three distinct styles, multilingual support, PWA capability, and a fully config-driven architecture — alone, with no funding, no team, and no guarantee anyone would buy it.

This is everything I learned. The process, the decisions, the mistakes, and what it actually takes to go from an idea to a product you can sell.

1. It Started With a Real Problem, Not an Idea

The worst templates I've seen were built by developers who asked "what should I build?" The best ones were built by developers who asked "what does this specific client actually need?"

Savoura Dywan started with a client. A restaurant owner who needed a website. Not a generic website — a website that felt like their brand. Elegant for a luxury dining experience. Casual and warm for a neighbourhood restaurant. Fast and direct for a pizzeria.

I realized while building it that I was essentially building three websites with one codebase. And if I needed this once, someone else would need it again.

That's where the template idea came from. Not creativity. Observation.

The lesson: Build templates that solve a problem you've already seen in the real world. Real problems have real buyers.

2. Architecture First — Everything Else Second

The biggest mistake developers make when building templates is starting with design. Design is visible. Architecture is what makes the template sellable.

A beautiful template with hardcoded content is not a product. It's a demo.

I built Savoura Dywan around a single principle — everything configurable, nothing hardcoded. All branding, content, colors, social links, SEO metadata, and feature toggles live in one central file: siteConfig.js.

A client or developer buying the template changes one file. The entire site updates. No hunting through components. No breaking changes. Just configuration.

Here is a simplified version of how that central config is structured:

export const siteConfig = {
  variant: 'luxury', // 'luxury' | 'casual' | 'pizzeria'
  branding: {
    name: 'Le Jardin',
    logo: '/logo.png',
    primaryColor: '#c9a84c',
    tagline: 'Fine dining in the heart of the city'
  },
  seo: {
    title: 'Le Jardin — Fine Dining Restaurant',
    description: 'Award-winning cuisine in an intimate setting',
    ogImage: '/og-image.jpg'
  },
  contact: {
    phone: '+212 6XX XXX XXX',
    email: 'contact@lejardin.ma',
    address: '12 Rue Mohammed V, Casablanca'
  },
  features: {
    enableReservations: true,
    enableWhatsApp: true,
    enablePWA: true,
    enableNewsletter: false
  },
  social: {
    instagram: 'https://instagram.com/lejardin',
    facebook: 'https://facebook.com/lejardin'
  }
};

This is what makes a template a product. The buyer doesn't need to understand your component structure. They fill in their details and launch.

The lesson: Design for the person who will configure it, not just the person who will view it.

3. The Tech Stack Decisions That Saved Me Time

Every technology choice in a template has a multiplied cost. A bad decision in a personal project costs you hours. A bad decision in a template costs every developer who buys it hours.

Here is what I chose for Savoura Dywan and why:

  • React 19 + Vite — Fast build times, modern ecosystem, familiar to the widest developer audience. Buyers can extend it without learning a new paradigm.
  • Tailwind CSS — Utility-first styling means buyers can customize visually without touching component logic. No CSS file hunting.
  • Framer Motion — Smooth, professional animations with minimal code. The kind of motion that makes a template look premium and justifies a higher price point.
  • i18next — Multilingual support including Arabic RTL out of the box. This alone differentiates the template in the MENA market where almost no competitors offer this.
  • Vite PWA Plugin — Offline support and installability in one plugin. A feature clients perceive as high value but costs minimal implementation time when built in from the start.

The lesson: Choose technologies that add perceived value to the buyer, not just technical elegance for you.

4. The 90% Problem

I need to be honest about something.

I finished Savoura Dywan to 90% three times before I finished it to 100%.

The first 90% was the core layout and variants. Then I added multilingual support — 90% again. Then PWA, animations, config architecture — 90% again.

Each time I reached 90%, something new felt necessary. A new feature. A refinement. A better way to structure the config. And each addition reset the feeling of completion.

This is the most dangerous phase of building a solo product. Not the beginning when motivation is high. Not the middle when the architecture is being solved. The end — when the product is essentially done but perfectionism masquerades as quality control.

The question that finally broke me out of it was simple:

Would a paying customer notice the difference between what I have now and what I'm about to add?

If the answer is no — ship it.

Perfection is not a feature. It's a delay.

The lesson: Define done before you start building. Write a list of launch requirements on day one. When that list is complete — launch. Everything else is version two.

5. Pricing a Template as a Solo Developer

Pricing is where most solo developers undervalue their work significantly.

The instinct is to price low to attract buyers. The reality is that low prices signal low quality. A restaurant owner choosing between a $15 template and a $300 template does not think the $15 one is a bargain. They think it's a risk.

Here is the framework I use for pricing:

Cost of the alternative: What would a restaurant owner pay a local agency to build a custom website? In Morocco, between 3,000 and 8,000 MAD. Internationally, between $1,500 and $5,000. Your template at $300 is not competing with other templates. It's competing with custom development. Price it accordingly.

Tiers create perceived value: Offering one price is a yes or no decision. Offering three tiers is a choice between options. A template-only tier, a template plus setup tier, and a template plus full customization tier covers three different buyer types and increases average revenue per sale.

The lesson: Price against the alternative your buyer would otherwise pay for, not against other templates.

6. Selling It — The Part Nobody Prepares You For

Building the template was the part I was trained for. Selling it was the part that humbled me.

The first approach I tried was cold DMs to local restaurants. 31 DMs in one week. One reply. One ghost.

The problem was not the product. The problem was the channel and the message. A restaurant owner receiving a cold DM from an unknown developer has no reason to trust you, no social proof to reference, and no urgency to act.

What actually works is different:

Show the work publicly. Every project you complete is content. A screen recording of the template variants switching. A before and after of a restaurant website. A technical breakdown of the config system. Put it where your audience lives — LinkedIn for local businesses, Twitter/X and Instagram for international creatives.

Write about what you built. This blog is an example. Someone searching "how to build a web template" who reads this and finds it valuable will visit Dywan Dev. Some of them will buy. Content is the most scalable sales channel available to a solo developer with no marketing budget.

Let the first buyer create the proof. One real testimonial from a satisfied client is worth more than a thousand cold DMs. The artist portfolio I built before Savoura Dywan gave me my first testimonial. That testimonial is now the foundation of every sales conversation I have.

The lesson: You cannot sell what nobody has seen. Visibility is not vanity. It is infrastructure.

7. What I Would Do Differently

If I started Savoura Dywan today, I would change three things:

  • Ship at 80%, not 100%. The market gives you better feedback than your own perfectionism. Launch with the core features, collect real reactions, build version two based on what buyers actually ask for.
  • Document while building, not after. Every architectural decision I made during development was fresh in my mind while making it. Writing about it immediately would have produced better, more authentic content than reconstructing it from memory later.
  • Define the buyer before writing one line of code. I built Savoura Dywan for restaurant owners but the people most likely to buy it first are developers who need to deliver a restaurant site quickly. Those are different buyers with different objections and different decision processes. Knowing that earlier would have shaped both the product and the marketing.

Conclusion

Building and selling a web template as a solo developer is not a passive income strategy. It is a product business — with all the complexity, frustration, and reward that implies.

The developers who succeed at it are not necessarily the most technically skilled. They are the ones who finish, ship, and iterate. The ones who treat visibility as seriously as code quality. The ones who understand that a product nobody can find is not a product at all.

Savoura Dywan is not finished. No product ever is. But it is launched. It is real. And every improvement from this point forward is informed by the market, not by assumptions made alone at a desk at midnight.

That is the difference between building and shipping.

Savoura Dywan is available now — a production-ready restaurant website template in three variants, with multilingual support, PWA capability, and full configuration from a single file. View the template on Dywan Dev.

Continue Reading

View allView all
WhatsApp